A comprehensive personal finance management REST API built with Spring Boot that enables users to track income, expenses, and manage their financial transactions.
- 🌐 Live Demo: https://fza-moneymanager.netlify.app/
- 💻 Frontend Repository: https://github.com/fikriupm/moneymanager-react
Note: The backend API is deployed on Render's free tier and may experience inactivity suspensions. Please allow a moment for the service to spin up on first use (or suspended already).
- 🔐 Authentication & Authorization - JWT-based secure authentication
- 💰 Income Management - Track and manage income sources
- 💸 Expense Tracking - Record and categorize expenses
- 📊 Dashboard Analytics - View financial summaries and insights
- 🔍 Advanced Filtering - Filter transactions by date, amount, and keywords
- 📂 Category Management - Organize transactions with custom categories
- 👤 User Profiles - Personalized user accounts
- 📧 Email Notifications - Stay informed about important events
- 📤 Excel Export - Export financial data to Excel format
- Java 17+
- Spring Boot 3.x
- Spring Security with JWT
- Spring Data JPA
- PostgreSQL
- Maven
- Lombok
- Docker (optional deployment)
- Java JDK 17 or higher
- Maven 3.6+
- PostgreSQL 12+
- (Optional) Docker & Docker Compose
git clone <repository-url>
cd moneymanagerCreate a PostgreSQL/MySQL database:
Edit src/main/resources/application.properties:
./mvnw clean install./mvnw spring-boot:runjava -jar target/moneymanager-0.0.1-SNAPSHOT.jardocker build -t moneymanager .
docker run -p 8080:8080 moneymanagerThe API will be available at http://localhost:8080/api/v1.0
All endpoints except authentication are secured with JWT tokens. Include the JWT token in the Authorization header:
Authorization: Bearer <your-jwt-token>
- Development:
application.properties - Production:
application-prod.properties
Run with specific profile:
./mvnw spring-boot:run -Dspring-boot.run.profiles=prod