Beginner · 2–3 weeks
Personal Expense Tracker API
Build a REST API where users register, log in, and track daily expenses by category. Supports monthly summaries, budget limits per category, and filtering by date range. A complete portfolio piece demonstrating CRUD, auth, and SQL aggregations.
Why this project
Interviewers love expense trackers — everyone understands the domain. You can discuss entity relationships, JWT auth, validation, and SQL GROUP BY in depth.
Tech stack
Java 17Spring Boot 3Spring Security + JWTSpring Data JPAPostgreSQLFlywayJUnit 5MockitoTestcontainersDocker
Skills demonstrated
- REST API design
- JPA relationships
- Authentication
- SQL aggregations
- Layered architecture
Interview talking points
- Why you chose OneToMany between User and Expense
- How you prevent users from accessing another user's expenses
- How monthly summary query works and which index you added
- Trade-off between soft delete vs hard delete for expenses
Problem statement
People routinely spend more than they realize because they lack visibility into where their money goes. This API gives them a private, secure place to record every expense, tag it with a category, set monthly budgets, and see clear comparisons of actual vs. planned spending.