WeSplit is a full-stack expense sharing application inspired by Splitwise. Designed to make managing shared expenses, group balances, and settlements easier, it's ideal for roommates, travel groups, or anyone who splits costs regularly.
-Frontend repository: https://github.com/Shaurya-GitH/WeSplit-Frontend
- Secure user registration and login using Spring Security and JWT tokens.
- Add expenses, assign participants, and split amounts evenly or unevenly.
- Create and manage groups to organize shared expenses among multiple users.
- Cash flow minimization algorithm
- Automatically settle expenses through payments or creating expenses
- Real-time tracking of who owes whom and how much.
- External API integration for automatic currency conversion while settling balances
- Clean and modular APIs built with Spring Boot and validated thoroughly.
- Follows RESTful principles with DTO projections and proper layering.
- Efficient relational data handling with eager loading, DTO projections, and prevention of N+1 query issues.
- Used NoSQL database Redis for caching of data which require heavy SQL queries and accessed frequently reducing time to as low as 10ms
- API rate limiting using Redis
- Integrated Swagger UI for easy visualization and testing of endpoints.
- Activity Feed using Kafka
- Notification System for expenses & settlements using websockets
- Test Coverage using JUnit & Mockito
- Backend: Java, Spring Boot, Spring Security, Spring Data JPA, MySQL, Redis
- Tools: Swagger, Postman, IntelliJ IDEA, Maven
- Version Control: Git, GitHub