Effortless group expense tracking and bill splitting made easy for trips, roommates, and beyond.
A full-featured expense-sharing app with a Spring Boot backend and Flutter frontendβintuitive for users, powerful for power users!
- User authentication: Sign up/in, Google SSO
- Email verification on signup (pending)
- Groups: Create/manage groups (e.g., trips, roommates)
- Expenses: Add, edit, delete shared expenses in groups
- Splitting logic: Even/uneven splits, settle-up calculations
- Activity feed: Who paid what, notifications
- Balances: Who owes whom and how much
- Security: JWT for APIs, encrypted sensitive data
- Attachments: Image upload for receipts (Cloudinary, S3, etc.)
- Real-time updates: WebSocket for instant notifications
- User registration and authentication
- Google SSO integration
- Profile management
- Create and manage expense groups
- Invite members via email
- Admin and member roles
- Group activity feeds
- Add, edit, and delete expenses
- Multiple splitting methods (even/uneven splits)
- Receipt attachment support
- Expense categories and descriptions
- Smart settlement calculations
- Settlement requests and confirmations
- Payment tracking
- Balance optimization
- Live notifications
- Activity feed updates
- Group member updates
- Settlement status changes
- Receipt image uploads
- Document attachments
- File validation and security
- Storage management
- Track expense activity
- Track Group activity
- Track Settlement activity
src/main/java/com/dasa/splitspends/
βββ entity/ # JPA entities
βββ repository/ # Data access layer
βββ service/ # Business logic
βββ controller/ # REST endpoints
βββ config/ # Configuration classes
lib/
βββ models/ # Data models
βββ services/ # API services
βββ screens/ # UI screens
βββ widgets/ # Reusable widgets
βββ utils/ # Utility functions
- Framework: Spring Boot 3.5.4
- Language: Java 17
- Database: PostgreSQL
- Security: Spring Security + JWT
- Documentation: Swagger/OpenAPI
- Build Tool: Maven
- Framework: Flutter
- Language: Dart
- State Management: Provider/Bloc
- HTTP Client: Dio
- Local Storage: SharedPreferences/Hive
- Version Control: Git
- IDE: VS Code, IntelliJ IDEA
- API Testing: Postman
- Database: PostgreSQL
- Deployment: Docker, Railway/Heroku
- Java 17+
- Flutter SDK
- PostgreSQL
- Maven
- Git
cd backend
mvn clean install
mvn spring-boot:runThe backend will be available at http://localhost:8080
cd frontend
flutter pub get
flutter run- Install PostgreSQL
- Create database:
splitspends_db - Update
application.propertieswith your database credentials
cd backend
mvn testcd frontend
flutter test| Home Screen | Groups | Expenses | Settlements |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Nagasagar Dasa
- GitHub: @nagasagar
- Email: [email protected]
- Spring Boot community for excellent documentation
- Flutter team for the amazing framework
- All contributors who help make this project better
- β Backend API development
- β Database design and implementation
- β Authentication system
- β Group management
- β Expense tracking
- β Settlement system
- π§ Frontend development (in progress)
- π§ Real-time notifications
- π§ Mobile app testing
- π§ Deployment setup
- π οΈ Email verification on signup (pending)
Made with β€οΈ for better expense sharing



