expense-splitter-pwa

Expense Splitter PWA

A Progressive Web App for splitting expenses among friends with a Python Flask backend and SQL Server database.

Features

Live Demo

🚀 Try the Live Demo

Screenshots

Add Transaction View Transactions Balances & Insights

Setup Instructions

1. Database Setup

  1. Open SQL Server Management Studio (SSMS)
  2. Connect to your SQL Server instance (SUMANTH\SQLEXPRESS)
  3. Run the database_schema.sql file to create the database and tables
  4. The script will create:
    • ExpenseSplitter database
    • Users table with 5 users: venkat, aria, kiran, sai, sumanth
    • Transactions table for storing expense records
    • Transaction_Splits table for split details

2. Python Backend Setup

  1. Clone the repository:
    git clone https://github.com/sumanth2525/expense-splitter-pwa.git
    cd expense-splitter-pwa
    
  2. Install Python dependencies:
    pip install -r requirements.txt
    
  3. Make sure you have the ODBC Driver 17 for SQL Server installed

  4. Run the Flask application:
    python app.py
    
  5. The app will be available at http://localhost:5000

3. Using the App

  1. Add Transaction Tab:
    • Enter merchant name (e.g., “McDonald’s”)
    • Enter the total amount
    • Select the date when the expense occurred
    • Select who paid for the expense
    • Check the boxes for people to split with
    • Click “Add Transaction”
  2. View Transactions Tab:
    • See all transactions with details
    • Shows merchant, amount, date, who paid, and who it’s split with
  3. Balances & Insights Tab:
    • View individual balances (positive = owed money, negative = owes money)
    • See overall insights like total transactions and amounts
    • Download PDF reports

4. PWA Installation

Database Schema

The app uses three main tables:

API Endpoints

Technology Stack

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

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

Author

Sumanth

Acknowledgments