Skip to content

bunnysunny24/RoomiePay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

213 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏠 RoomiePay 🏠

RoomiePay Dashboard

Split expenses, not friendships!

Features β€’ Screenshots β€’ Technologies β€’ Installation β€’ Project Structure β€’ Database Schema β€’ API Endpoints β€’ Contributors β€’ License


🌟 Overview

RoomiePay is a modern expense management and settlement application designed specifically for roommates, friends, and groups who share expenses. Stop worrying about who owes whom and how much - let RoomiePay handle the math!

"Living together is already complicated enough. Splitting the bills shouldn't be."

β€” RoomiePay Team


✨ Features

πŸ’° Easy Expense Tracking

  • Add expenses quickly
  • Categorize and describe each expense
  • View transaction history

πŸ‘« Group Management

  • Create groups for different living arrangements
  • Invite roommates with a unique code
  • Track shared expenses within each group

βš–οΈ Smart Settlement System

  • Automatic calculation of who owes what
  • Optimize transactions to minimize payment count
  • Configurable settlement periods

πŸ’Έ Seamless Payments

  • Integrated payment processing
  • Payment confirmation system
  • Complete payment history

πŸ”” Real-time Notifications

  • Get alerts when you need to pay someone
  • Receive notifications when you get paid
  • Stay updated on group activity

πŸ“Έ Screenshots

Login Screen
Login Screen
Registration Screen
Registration Screen
User 1 Dashboard
User 1 Dashboard
User 2 Dashboard
User 2 Dashboard
Create Group
Creating a New Group
Join Group
Joining an Existing Group
User Settlements
Settlement Summary
Payment Success
Successful Payment

πŸ› οΈ Technologies Used

Frontend Backend Database
  • React
  • Tailwind CSS
  • Framer Motion
  • Axios
  • FastAPI
  • SQLAlchemy ORM
  • Pydantic
  • JWT Authentication
  • MySQL
  • Relational Schema
  • Transaction-safe

πŸš€ Installation

Backend Setup

# Navigate to backend directory
cd backend

# Install required packages
pip install -r requirements.txt

# Set up environment variables for database connection
# Edit .env file with your database credentials

# Run the FastAPI server
uvicorn backend:app --reload

Frontend Setup

# Navigate to frontend directory
cd frontend

# Install dependencies
npm install

# Start development server
npm start

πŸ“‚ Project Structure

RoomiePay/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ backend.py                # Main FastAPI server implementation
β”‚   β”œβ”€β”€ database.py               # Database connection configuration
β”‚   β”œβ”€β”€ models.py                 # SQLAlchemy ORM models
β”‚   β”œβ”€β”€ schemas.py                # Pydantic validation schemas
β”‚   └── security.py               # Auth and security functions
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ public/                   # Static assets
β”‚   β”‚   └── index.html            # HTML entry point
β”‚   β”‚
β”‚   └── src/                      # React application source
β”‚       β”œβ”€β”€ App.js                # Main React application component
β”‚       β”œβ”€β”€ index.js              # JavaScript entry point
β”‚       β”œβ”€β”€ index.css             # Global styles
β”‚       β”‚
β”‚       β”œβ”€β”€ components/           # React UI components
β”‚       β”‚   β”œβ”€β”€ Dashboard.js      # Dashboard view
β”‚       β”‚   β”œβ”€β”€ Group.js          # Group management 
β”‚       β”‚   β”œβ”€β”€ Login.js          # Authentication
β”‚       β”‚   β”œβ”€β”€ Notifications.js  # User notifications
β”‚       β”‚   β”œβ”€β”€ PaymentPortal.js  # Payment processing
β”‚       β”‚   β”œβ”€β”€ Settlements.js    # Settlements management
β”‚       β”‚   └── SettlementConfig.js # Settlement settings
β”‚       β”‚
β”‚       └── services/
β”‚           └── api.js            # API client for backend communication

πŸ“Š Database Schema

Entity Relationship Diagram

Key Tables

Users Table

Group Members Table

Settlements Table

Notifications Table


πŸ“‘ API Endpoints

Endpoint Method Description
/register POST Register a new user
/token POST Get authentication token
/groups POST Create a new group
/groups GET Get user's groups
/groups/{group_id}/expenses GET Get group expenses
/expenses POST Create an expense
/groups/{group_id}/balances GET Get group member balances
/groups/{group_id}/finalize-splits POST Calculate and create settlements
/settlements/{settlement_id}/process-payment POST Process settlement payment
/notifications GET Get user notifications

πŸ’‘ Smart Settlement Algorithm

RoomiePay uses an optimized debt-simplification algorithm to minimize the number of transactions needed to settle all debts within a group.


πŸ”’ Authentication Flow

  1. Registration: Users create accounts with email and password
  2. Login: Users receive JWT token for authentication
  3. Protected Resources: All API endpoints (except registration and login) require valid JWT token
  4. Token Expiry: Tokens expire after a set period for security

🌈 UI/UX Features

  • Responsive Design: Works on mobile, tablet, and desktop
  • Intuitive Interface: Easy-to-understand expense tracking
  • Real-time Feedback: Instant notification of actions
  • Gradient Animations: Smooth color transitions for visual appeal
  • Modern Components: Clean, intuitive form elements and cards

πŸ“± Mobile View

RoomiePay is fully responsive and works perfectly on mobile devices!


πŸ‘¨β€πŸ’» Contributors


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

Copyright (c) 2025 RoomiePay Team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

RoomiePay β€” Making shared living expenses simpler since 2025

Β© 2025 β€’ RoomiePay Team

About

Smart expense sharing and settlement platform that simplifies group finances through automated debt optimization, secure payments, real-time notifications, and collaborative expense management.

Topics

Resources

License

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors