FinTrack is a modern, responsive personal finance management application built with React, Vite, and Tailwind CSS. It helps users track income and expenses, manage budgets, monitor savings goals, analyze spending patterns, and organize their financial data through a clean and intuitive dashboard.
Get a quick overview of your financial situation from a centralized dashboard.
- Total balance
- Total income
- Total expenses
- Savings overview
- Recent transactions
- Quick transaction creation
- Financial summary cards
- Responsive dashboard layout
Keep track of your financial activity in one place.
- Add income and expense transactions
- Categorize transactions
- View transaction history
- Search transactions
- Filter transactions
- Delete transactions
- Income/expense classification
- Transaction dates
- Persistent transaction data
Understand where your money goes through visual analytics.
- Income vs. expense analysis
- Expense category breakdown
- Spending distribution
- Savings rate
- Financial summary cards
- Top spending categories
- Interactive charts
- Financial insights
Set spending limits and monitor your financial habits.
- Create budgets
- Assign budgets to categories
- Track spending against budgets
- Monitor budget progress
- Identify overspending
- Visual progress indicators
Set financial goals and track your progress.
- Create savings goals
- Set target amounts
- Track current savings
- Calculate completion percentage
- Monitor goal progress
- Goal completion states
- Visual progress cards
Customize your FinTrack experience.
- Profile settings
- Currency selection
- Theme preferences
- Notification preferences
- Data management
- Import data
- Export data
- Reset application data
- Persistent settings
FinTrack supports multiple theme preferences:
- 🌙 Dark
- ☀️ Light
- 🖥️ System
Theme preferences are persisted so they remain after refreshing the application.
Financial values are formatted dynamically based on the selected currency.
Currently supported:
| Currency | Code |
|---|---|
| 🇮🇳 Indian Rupee | INR |
| 🇺🇸 US Dollar | USD |
| 🇪🇺 Euro | EUR |
| 🇬🇧 British Pound | GBP |
FinTrack is designed to work across different screen sizes.
- Desktop layouts
- Tablet layouts
- Mobile layouts
- Responsive sidebar
- Mobile navigation
- Adaptive dashboard cards
- Responsive charts
- Mobile-friendly forms
- React
- JavaScript
- JSX
- Vite
- Tailwind CSS
- Responsive utility classes
- Custom UI components
- React Router
- React Icons
- Lucide React
- Recharts
- React Context API
- React Hooks
- Browser LocalStorage
FinTrack follows a component-based React architecture designed to keep UI, state management, and pages separated.
FinTrack/
│
├── public/
│
├── src/
│ │
│ ├── components/
│ │ ├── analytics/
│ │ │ ├── AnalyticsCard.jsx
│ │ │ ├── ExpenseChart.jsx
│ │ │ ├── IncomeExpenseChart.jsx
│ │ │ └── FinancialInsights.jsx
│ │ │
│ │ ├── dashboard/
│ │ │ ├── SummaryCard.jsx
│ │ │ ├── RecentTransactions.jsx
│ │ │ └── EmptyState.jsx
│ │ │
│ │ ├── forms/
│ │ │ ├── TransactionModal.jsx
│ │ │ └── GoalModal.jsx
│ │ │
│ │ ├── goals/
│ │ │ └── GoalCard.jsx
│ │ │
│ │ ├── layout/
│ │ │ ├── Layout.jsx
│ │ │ └── Sidebar.jsx
│ │ │
│ │ └── settings/
│ │ ├── SettingsSection.jsx
│ │ ├── SettingRow.jsx
│ │ └── DataManagement.jsx
│ │
│ ├── context/
│ │ ├── TransactionContext.jsx
│ │ ├── BudgetContext.jsx
│ │ ├── GoalContext.jsx
│ │ └── SettingsContext.jsx
│ │
│ ├── data/
│ │ └── mockData.js
│ │
│ ├── pages/
│ │ ├── Dashboard.jsx
│ │ ├── Transactions.jsx
│ │ ├── Analytics.jsx
│ │ ├── Budgets.jsx
│ │ ├── Goals.jsx
│ │ └── Settings.jsx
│ │
│ ├── utils/
│ │ └── currency.js
│ │
│ ├── App.jsx
│ ├── main.jsx
│ └── index.css
│
├── package.json
├── vite.config.js
├── README.md
└── ...
FinTrack uses React Context to share financial data between different parts of the application.
┌─────────────────┐
│ FinTrack │
│ App │
└────────┬────────┘
│
┌──────────────┼──────────────┐
│ │ │
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Dashboard │ │Transactions│ │ Analytics │
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
└──────────────┼──────────────┘
▼
┌─────────────────┐
│ Context / State │
└────────┬────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
Transactions Budgets Goals
│ │ │
└───────────────┼───────────────┘
▼
LocalStorage
This allows updates made in one part of the application to be reflected throughout the application.
For example:
Add Transaction
↓
Transaction Context
↓
LocalStorage
↓
┌─────┼─────────┐
↓ ↓ ↓
Home Analytics Budgets
The FinTrack dashboard provides a quick overview of your financial health, including balance, income, expenses, savings, and recent transactions.
Manage your income and expenses with detailed transaction history, categories, dates, and transaction actions.
Visualize spending patterns, income versus expenses, category breakdowns, and overall financial performance.
Create spending limits for different categories and monitor your progress throughout the month.
Set savings targets and track your progress toward important financial goals.
Customize application preferences, currency, appearance, and manage your financial data.
Make sure you have installed:
- Node.js
- npm
- Git
Check your versions:
node --version
npm --version
git --versiongit clone https://github.com/YOUR_USERNAME/FinTrack.gitcd FinTracknpm installnpm run devVite will provide a local development URL, usually:
http://localhost:5173
Open it in your browser.
To create a production build:
npm run buildTo preview the production build locally:
npm run previewFinTrack currently uses LocalStorage for client-side persistence.
This means application data can remain available after:
- Page refreshes
- Browser navigation
- Closing and reopening the application
Data is stored locally in the user's browser rather than on a remote server.
React Application
↓
Context API
↓
LocalStorage
No external database is required to run the current version.
FinTrack is currently a client-side application.
No financial data is intentionally sent to a remote backend in the current architecture.
Because data is stored in browser LocalStorage:
- Data is tied to the browser/device
- Clearing browser storage can remove application data
- There is currently no cloud synchronization
- There is currently no multi-device account system
Users should not treat the current version as a production banking or financial service.
| Module | Description |
|---|---|
| Dashboard | Financial overview |
| Transactions | Income and expense tracking |
| Analytics | Financial visualization |
| Budgets | Spending limit management |
| Goals | Savings goal tracking |
| Settings | Application preferences |
| Data Management | Import, export and reset |
This project demonstrates practical usage of:
- Functional components
- React Hooks
useStateuseEffectuseContext- Context API
- Component composition
- Controlled forms
- Conditional rendering
- Dynamic lists
- React Router
- Reusable components
- LocalStorage integration
- Responsive UI design
A typical FinTrack workflow looks like:
1. Open Dashboard
↓
2. Add income / expenses
↓
3. Review transactions
↓
4. Create budgets
↓
5. Set savings goals
↓
6. Analyze spending
↓
7. Adjust financial habits
↓
8. Export financial data
Provides an overview of:
- Balance
- Income
- Expenses
- Savings
- Recent transactions
Provides detailed transaction management.
Provides visual representations of financial activity.
Allows users to create and monitor spending limits.
Allows users to create and track savings targets.
Provides application customization and data management.
Before a release, the application should be tested for:
✓ Dashboard navigation
✓ Transaction creation
✓ Transaction deletion
✓ Transaction persistence
✓ Budget creation
✓ Goal creation
✓ Goal progress
✓ Analytics calculations
✓ Theme persistence
✓ Currency switching
✓ Import / Export
✓ Reset data
✓ Responsive navigation
✓ Mobile layout
✓ Invalid routes
✓ Production build
- Dashboard
- Transaction management
- Budget management
- Savings goals
- Financial analytics
- Settings
- Local data persistence
- Import / Export
- Multi-currency formatting
- Theme preferences
- Responsive navigation
- Final QA and release polish
Future development may include:
- 🔐 User authentication
- ☁️ Cloud database
- 🔄 Multi-device synchronization
- 👤 User accounts
- 📊 Advanced financial analytics
- 🤖 AI-powered financial insights
- 🔔 Smart notifications
- 📅 Recurring transactions
- 💳 Subscription tracking
- 📱 Progressive Web App support
- 🔒 Improved server-side security
FinTrack was created as a practical React project focused on building a complete frontend application rather than a simple static interface.
The main goals are to demonstrate:
- Modern React development
- Component-based architecture
- State management with Context API
- Responsive UI development
- Data visualization
- Client-side persistence
- Reusable components
- Real-world application structure
- Clean and maintainable code
- Practical frontend engineering skills
Contributions, suggestions, and improvements are welcome.
git forkgit checkout -b feature/your-featuregit add .
git commit -m "Add your feature"git push origin feature/your-featureThen open a Pull Request.
This project is available under the MIT License.
See the LICENSE file for more information.
Mannat
Built as a portfolio project to explore modern React development, frontend architecture, state management, data visualization, and responsive UI design.
If you find FinTrack useful or interesting, consider giving the repository a ⭐ on GitHub.
It helps support the project and encourages further development.





