Skip to content

Secure Bill Splitting App - PaySplit is a robust backend-driven application designed to simplify and secure the process of managing shared expenses. Whether you're splitting rent with roommates, planning a trip with friends, or organizing group purchases, PaySplit ensures fairness, transparency, and data security for every transaction. This projec

Notifications You must be signed in to change notification settings

dramaticme/PaySplit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦧PaySplit – A Secure Bill Splitting App

PaySplit is a robust backend-driven application designed to simplify and secure the process of managing shared expenses. Whether you're splitting rent with roommates, planning a trip with friends, or organizing group purchases, PaySplit ensures fairness, transparency, and data security for every transaction.

This project focuses on showcasing professional backend development practices, including user authentication, password encryption, role-based access, OAuth2 login (Google), and detailed Swagger API documentation. MySQL is used as the database to ensure data consistency, relational structure, and high performance.


Features 🍹

  1. User Registration & Login: Secure signup and login system with password hashing using BCrypt.

  2. Google OAuth2 Authentication: Users can log in using their Google accounts for added convenience and security.

  3. Role Management: Supports ADMIN and MEMBER roles, which can be expanded for authorization-based access control.

  4. Swagger UI Integration: REST APIs are fully documented and testable through Swagger's interactive interface.

  5. CORS Configuration: Cross-origin access is enabled and secured for integration with frontend clients.

  6. MySQL Integration: Stores user data securely using Spring Data JPA with automatic table mapping and constraint enforcement.

  7. Security Best Practices: CSRF disabled for Swagger testing, cookie handling, and secure HTTP headers are configured.


Technology Stack 🎱

Backend (☆▽☆)

  • Java 17 – Modern language features and enhanced performance.
  • Spring Boot 3 – Simplifies application setup and production-ready APIs.
  • Spring Security – Handles authentication, password encryption, and OAuth2.
  • Spring Data JPA – Simplified database interaction and ORM mapping.
  • MySQL – Relational database used for consistent and normalized data storage.
  • Swagger (SpringDoc) – Generates dynamic REST API documentation.

Development Tools and Libraries🔥

  • Lombok – Reduces boilerplate with annotations like @Getter, @Setter, and @Builder.
  • BCrypt – Provides secure password hashing.
  • Postman – Used for API testing during development.
  • Visual Studio Code ^ – Used for development and debugging.
  • Maven – Dependency management and project build tool.

Learnings and Challenges 🏹

Building PaySplit provided hands-on experience with:

  1. Setting up a secure backend from scratch using Spring Boot and Spring Security.
  2. Managing encrypted password storage and secure login flows.
  3. Integrating OAuth2 login with Google and managing API permissions.
  4. Handling common production errors like CORS issues, bean conflicts, and Swagger integration.
  5. Debugging deep Maven and configuration issues to get the application running smoothly.

🍀🥤 About the Author

Sakshi Bhojraj Sonkusare

Aspiring backend developer passionate about building secure and scalable software. Strong interest in Spring Boot, RESTful APIs, and software architecture.


Contributions and Support ❤️

If you find this project helpful, consider giving it a ⭐ on GitHub.
Pull requests for enhancements, bug fixes, and feature suggestions are always welcome!


About

Secure Bill Splitting App - PaySplit is a robust backend-driven application designed to simplify and secure the process of managing shared expenses. Whether you're splitting rent with roommates, planning a trip with friends, or organizing group purchases, PaySplit ensures fairness, transparency, and data security for every transaction. This projec

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages