Skip to content

yashpreetbathla/splitup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SplitUp - Expense Splitting Application

License: ISC

SplitUp is a modern web application that helps friends and groups manage shared expenses efficiently. Whether you're splitting bills, tracking group expenses, or managing shared costs, SplitUp makes it easy to keep track of who owes what and who's paid what.

🚀 Features

  • User Authentication

    • Secure signup and login system
    • JWT-based authentication
    • Profile management
  • Group Management

    • Create and manage expense groups
    • Add multiple participants
    • Assign admin roles
    • Track group expenses
  • Expense Tracking

    • Create detailed expense records
    • Split expenses among participants
    • Track payments and pending amounts
    • Generate expense summaries
  • Real-time Updates

    • Automatic balance calculations
    • Real-time expense tracking
    • Instant notifications

📱 Tech Stack

  • Backend: Node.js with Express
  • Database: MongoDB with Mongoose
  • Authentication: JWT with Cookie-based session management
  • Security: bcrypt for password hashing

📋 Architecture

graph TD
    A[Client Browser] --> B[Express Server]
    B --> C[Authentication Middleware]
    C --> D[Route Handlers]
    D --> E[Controllers]
    E --> F[Mongoose Models]
    F --> G[MongoDB]

    D --> H[Error Handlers]
    B --> I[Static Files]

    subgraph Authentication
    C
    end

    subgraph Application Logic
    E
    end

    subgraph Data Layer
    F
    end
Loading

🛠️ Installation

  1. Clone the repository
git clone https://github.com/yourusername/splitup.git
  1. Install dependencies
cd splitup
npm install
  1. Set up environment variables Create a .env file with the following variables:
MONGODB_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
PORT=3000
  1. Start the development server
npm run dev

📝 API Documentation

Detailed API documentation is available in API_LIST.md

🔒 Security Features

  • Password hashing using bcrypt
  • JWT-based authentication
  • Cookie-based session management
  • CORS protection
  • Rate limiting
  • Input validation

🤝 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 ISC License - see the LICENSE file for details.

🙏 Acknowledgments

  • Special thanks to the Node.js and Express.js communities
  • Thanks for using SplitUp! 🚀

About

Split the fare - fairly

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors