FinTrack is a full-stack web application that helps users manage personal finances through income and expense tracking, budget monitoring, financial analytics, automated reporting, and scheduled notifications.
๐ Frontend: https://fintrack-app-iz6p.onrender.com
โ๏ธ Backend API: https://fintrack-v1-kayy.onrender.com/api/v1.0
๐ Swagger Documentation: https://fintrack-v1-kayy.onrender.com/api/v1.0/swagger-ui/index.html
Tracking personal finances often involves managing income, expenses, budgets, and spending habits across multiple categories. FinTrack was built to provide a centralized platform that simplifies financial tracking while offering meaningful insights through analytics, reporting, and automated notifications.
- JWT-based authentication with email verification
- Dashboard with financial summaries and visual analytics
- Monthly budget tracking with spending indicators
- Income and expense management
- Custom categories with emoji support
- Transaction filtering and sorting
- Excel report generation and email delivery
- Scheduled financial summary notifications
- Profile image management using Cloudinary
- Swagger API documentation
- Unit testing with JUnit and Mockito
The dashboard provides a consolidated view of financial activity, including:
- Monthly budget utilization
- Income, expense, and remaining balance overview
- Recent transactions
- Recent income and expense records
- Pie chart visualization of financial distribution
- Budget threshold indicators
When spending approaches the configured monthly budget limit, the application highlights the budget status to improve spending awareness.
Users can generate financial reports for income and expenses.
Reports can be:
- Downloaded as Excel files
- Delivered directly through email
The application also includes a scheduled notification service that generates and sends daily financial summaries through email using Spring Scheduler. This functionality was implemented and tested in local environments.
| Layer | Technologies |
|---|---|
| Frontend | React, Vite, Tailwind CSS |
| Backend | Spring Boot, Spring Security, JWT |
| Database | TiDB Cloud / MySQL |
| Integrations | Brevo SMTP, Cloudinary |
| Documentation | Swagger OpenAPI |
| Testing | JUnit 5, Mockito |
| Deployment | Render |
FinTrack follows a client-server architecture where a React frontend communicates with secured Spring Boot REST APIs using JWT authentication. Financial data is stored in TiDB Cloud, while Brevo SMTP is used for email verification, report delivery, and scheduled notifications. Cloudinary is used for profile image management, and Swagger provides interactive API documentation.
- Register an account and verify email.
- Log in securely using JWT authentication.
- Configure income and expense categories.
- Record financial transactions.
- Monitor budgets and financial activity through the dashboard.
- Filter and review transaction history.
- Download or email financial reports.
- Receive automated financial summaries through scheduled notifications.
git clone https://github.com/matlanidimple26/FinTrack.gitcd fintrackfrontend
npm install
npm run devcd fintrackbackend
./mvnw spring-boot:runConfigure the following environment variables before running the application.
# Database
spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USERNAME}
spring.datasource.password=${DB_PASSWORD}
# Mail
spring.mail.host=${MAIL_HOST}
spring.mail.port=${MAIL_PORT}
spring.mail.username=${MAIL_USERNAME}
spring.mail.password=${MAIL_PASSWORD}
spring.mail.properties.mail.smtp.from=${MAIL_FROM}
# JWT
jwt.secret=${JWT_SECRET}
# Cloudinary
cloudinary.cloud-name=${CLOUDINARY_CLOUD_NAME}
cloudinary.api-key=${CLOUDINARY_API_KEY}
cloudinary.api-secret=${CLOUDINARY_API_SECRET}
# URLs
money.manager.frontend.url=${FRONTEND_URL}
app.activation.url=${BACKEND_URL}- TiDB Cloud / MySQL
- Brevo SMTP
- Cloudinary
Unit tests were implemented using JUnit 5 and Mockito.
Covered modules include:
- Category Service
- Income Service
- Notification Service
- Month-over-Month Income & Expense Comparison
- Spending Trend Analytics
- Financial Goal Tracking
- Recurring Transaction Management
- Budget Forecasting
- PDF Report Generation
- Personalized Financial Insights
- Spring Security and JWT Authentication
- REST API Design and Documentation
- Database Integration using TiDB Cloud
- Financial Data Modeling
- Email Automation using Brevo SMTP
- Cloudinary Integration
- Excel Report Generation
- Unit Testing with JUnit and Mockito
- Cloud Deployment on Render
Dimple Matlani
Computer Engineering Student | Full-Stack Developer







