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! π