SpendMetra is a modern web application designed to help users manage their personal finances effectively. With features like transaction tracking, goal setting, and detailed reports, SpendMetra provides a comprehensive solution for financial management.
- Email/Password Authentication: Secure user registration and login.
- Google OAuth Integration: Sign in with Google accounts.
- Forgot Password: Password reset functionality with email verification.
- Email Change: Update email with verification and provider linking.
- Summary Cards: Overview of income, expenses, and balance.
- Recent Transactions: Quick access to the latest transactions.
- Quick Actions: Add transactions, categories, or goals directly from the dashboard.
- Add/Edit/Delete Transactions: Manage income and expenses.
- Categorization: Assign categories to transactions for better organization.
- Set Financial Goals: Define savings or spending targets.
- Track Progress: Monitor goal completion over time.
- Expense Breakdown: Visualize spending by category.
- Trends: Analyze income and expense trends over time.
- Export Data: Download reports as CSV or PDF.
- Fully responsive UI optimized for mobile, tablet, and desktop.
- React: Component-based UI development.
- React Router: Client-side routing.
- Tailwind CSS: Utility-first CSS framework for styling.
- Chart.js: Data visualization with charts.
- Firebase Authentication: Secure user authentication.
- Cloud Firestore: Real-time NoSQL database for storing user data.
- Firebase Analytics: Track user interactions.
- Vite: Fast build tool for modern web apps.
- ESLint: Code linting for consistent style.
-
Clone the repository:
git clone https://github.com/your-repo/FinanceTracker.git
-
Navigate to the project directory:
cd FinanceTracker -
Install dependencies:
npm install
-
Set up environment variables:
- Create a
.envfile in the root directory. - Add the following variables:
VITE_FIREBASE_API_KEY=your_firebase_api_key VITE_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain VITE_FIREBASE_PROJECT_ID=your_firebase_project_id VITE_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket VITE_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id VITE_FIREBASE_APP_ID=your_firebase_app_id VITE_FIREBASE_MEASUREMENT_ID=your_firebase_measurement_id
- Create a
-
Start the development server:
npm run dev
-
Build for production:
npm run build
FinanceTracker/
├── src/
│ ├── components/ # Reusable UI components
│ ├── contexts/ # Context providers for global state
│ ├── pages/ # Application pages (Dashboard, Reports, etc.)
│ ├── utils/ # Helper functions and Firestore utilities
│ ├── App.jsx # Main application component
│ └── index.jsx # Entry point
├── public/ # Static assets
├── tailwind.config.js # Tailwind CSS configuration
├── vite.config.js # Vite configuration
└── package.json # Project metadata and dependencies
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are welcome! Please fork the repository and submit a pull request for any improvements or bug fixes.
For any inquiries, please contact ai.omar.rehan@gmail.com.