This repository contains the backend code for expense manager.
Please find the frontend code here: https://github.com/dStrange6/expense-manager-ui
- Backend : Java 21, Spring Boot, Spring Data JPA, Flyway
- Frontend : React, TypeScript, Tailwind, Vite
- Database : PostgreSQL
Pre-requisites:
- Java 21, Node.js, and Docker installed on your machine.
To run the application, follow these steps:
- Clone the repository and navigate to the project directory.
- Start the PostgreSQL database using Docker: docker compose -f deployments/docker-compose/infra.yml up -d
- Postrges starts on port 15432, database name is expense_db, username and password are postgres
- Run the backend application: ./mvnw spring-boot:run
- Backend application runs on localhost:8080
API Endpoints:
- POST /api/expenses: Save a single expense.
- GET /api/expenses?month=2026-03: Get Expenses for a month
- GET /api/expenses/suggest-category?vendor=Swiggy: Category suggestion based on vendor name
- POST /api/expenses/upload: Upload a CSV file
- GET /api/dashboard/summary?month=2026-03: Dashboard summary for a month