Expensia is a full-stack Expense Management Application that allows users to track their income and expenses securely, view financial summaries, and manage their personal finances with ease.
- Frontend: React + TypeScript + Bootstrap
- Backend: Spring Boot + Spring Security + JPA + MySQL
- Authentication: JWT-based login system
- API Testing: Postman
- Build Tools: Maven
- 🔐 User Registration, Login, and Logout (JWT Auth)
- 📊 Dashboard showing total income, expenses, and balance
- 🧾 Add, Edit, Delete, and View expenses
- 🗂️ Categorize expenses and filter by date/category
- 📈 Responsive UI with Bootstrap and chart visualization
- ✅ Protected routes and secure API access
- Navigate to the backend folder:
cd RestApi - Add your DB credentials in
application.properties - Run:
mvn spring-boot:run
- Navigate to the frontend folder:
cd "Expensia Front/WebApp"
- Install dependencies:
npm install
- Run the app:
npm start
Configure your MySQL and JWT secret in application.properties:
spring.datasource.username=YOUR_USERNAME
spring.datasource.password=YOUR_PASSWORD
jwt.secret=YOUR_SECRET_KEY
Create a .env file in the frontend root:
REACT_APP_API_URL=http://localhost:8080
You can find the organized Postman collection in the Postman/ folder (if available). It contains:
- Auth APIs
- Expense CRUD
- Dashboard Summary
- Filters by category/date
📁 Expensia
├── 📁 RestApi # Spring Boot Backend
├── 📁 Expensia Front/WebApp # React Frontend
└── 📄 README.md
- Export expenses to CSV
- Add income tracking
- Dark mode toggle
- Notifications or email reports
This project was built while following the course:
"Java Full Stack: React and Spring Boot 3 [Expense App]"
by Bushan Sirgur.
All code in this repository was written by me as part of the learning journey along with my own modifications.
This project is licensed under the MIT License.