Create a modern budget tracking application using Next.js, TypeScript, and Tailwind CSS with the following features and specifications:
-
Dashboard Overview
- Total Balance card with dynamic gradient backgrounds
- Monthly Income card with green gradient
- Monthly Expenses card with red gradient
- All cards should have hover animations and transitions
-
Transaction Management
- CRUD operations for transactions
- Add new transactions with:
- Title
- Amount
- Date
- Type (Income/Expense)
- Edit existing transactions
- Delete transactions with confirmation
- Real-time updates to balance calculations
-
Internationalization
- Support for multiple languages:
- English
- Hindi
- Bengali
- Currency format support for:
- Indian Rupee (₹)
- US Dollar ($)
- Euro (€)
- Support for multiple languages:
-
Settings & Preferences
- Language selection
- Currency preference
- Theme selection (Light/Dark/System)
- Week start day preference
- Notification preferences:
- Push notifications
- Email alerts
- Budget alerts
-
Frontend Framework
- Next.js 14+ with App Router
- TypeScript for type safety
- Tailwind CSS for styling
-
UI Components
- Custom Card component
- Modal component for transactions
- Form components with validation
- Interactive buttons and inputs
-
State Management
- React Context for settings
- Local state for transactions
- Persistent storage using localStorage
-
Styling
- Gradient backgrounds for cards
- Responsive design
- Dark mode support
- Smooth transitions and animations
-
Code Organization
- Component-based architecture
- Separate utility functions
- Type definitions
- Modular CSS
-
Colors
- Use gradient combinations for cards
- Consistent color scheme throughout
- Proper contrast for accessibility
-
Layout
- Responsive grid system
- Clean and modern interface
- Proper spacing and alignment
-
Typography
- Clear hierarchy
- Readable font sizes
- Consistent font families
-
Interactions
- Hover effects on cards
- Smooth transitions
- Clear feedback on actions
-
File Structure
- Organized component directory
- Separate contexts
- Utility functions
- Type definitions
-
Components
- Reusable UI components
- Form components
- Modal dialogs
- Navigation elements
-
Features
- Real-time calculations
- Data persistence
- Language switching
- Theme toggling
-
Error Handling
- Form validation
- Type checking
- Fallback UI
-
Performance
- Optimized renders
- Memoized calculations
- Efficient state updates
-
Accessibility
- ARIA labels
- Keyboard navigation
- Screen reader support
-
User Experience
- Intuitive interface
- Clear feedback
- Smooth transitions