A modern React-based personal finance tracking application with dark/light theme support and responsive design.
- 📊 Financial Overview: Track income and expenses with detailed reports
- 🌓 Dark/Light Theme: Toggle between themes with preference persistence
- 📱 Responsive Design: Mobile-first design that works on all devices
- ⚡ Modern UI: Clean, professional interface with smooth animations
- 💾 Local Storage: Theme preferences saved automatically
- 🎨 Modern Styling: CSS Grid, Flexbox, and CSS custom properties
- Frontend Framework: React 18.2.0
- Build Tool: Vite 7.1.5 - Fast development and optimized builds
- Routing: React Router DOM 6.14.2
- HTTP Client: Axios 1.12.1
- Type Checking: PropTypes 15.8.1
- Development:
@types/react
and@types/react-dom
for TypeScript definitions@vitejs/plugin-react
for React integration with Vite
- Utilities: UUID 9.0.1 for unique identifiers
- Node.js 16.0 or higher
- npm or pnpm package manager
-
Clone the repository
git clone https://github.com/yourusername/fintrack.git cd fintrack
-
Install dependencies
npm install # or pnpm install
-
Start the development server
npm run dev # or pnpm dev
-
Open your browser Navigate to
http://localhost:5173
(or the URL shown in your terminal)
# Development server with hot reload
npm run dev
# Build for production
npm run build
# Preview production build locally
npm run preview
src/
├── components/ # React components
│ ├── FormComponents.jsx # Transaction form
│ ├── Transaction.jsx # Transaction list
│ ├── ReportComponent.jsx # Financial reports
│ ├── ThemeToggle.jsx # Theme switcher
│ └── ... # Component-specific CSS files
├── contexts/ # React contexts
│ └── ThemeContext.jsx # Theme management
├── Data/ # Data management
│ └── DataContext.jsx # App-wide data context
├── styles/ # Global styles
│ └── ThemeToggle.css # Theme-specific styles
├── App.jsx # Main application component
├── main.jsx # Application entry point
├── App.css # Application styles
└── index.css # Global styles
- Add income and expense transactions
- Real-time calculation of totals
- Visual reports and summaries
- Transaction history
- Dark and light theme support
- System preference detection
- LocalStorage persistence
- Smooth theme transitions
- Mobile-first approach
- Grid-based layouts
- Adaptive navigation
- Touch-friendly interactions
This project doesn't require environment variables for basic functionality. Create a .env
file in the root if you need to add API endpoints or configuration:
VITE_API_URL=your_api_url_here
npm run build
The built files will be in the dist/
directory.
- React best practices with hooks
- Modern ES6+ JavaScript
- CSS custom properties for theming
- Responsive design principles
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is for learning purposes. Feel free to use it as a reference for your own projects.
Happy tracking! 🎉