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.
-
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
- Backend: Node.js with Express
- Database: MongoDB with Mongoose
- Authentication: JWT with Cookie-based session management
- Security: bcrypt for password hashing
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
- Clone the repository
git clone https://github.com/yourusername/splitup.git- Install dependencies
cd splitup
npm install- Set up environment variables
Create a
.envfile with the following variables:
MONGODB_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
PORT=3000
- Start the development server
npm run devDetailed API documentation is available in API_LIST.md
- Password hashing using bcrypt
- JWT-based authentication
- Cookie-based session management
- CORS protection
- Rate limiting
- Input validation
- 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 ISC License - see the LICENSE file for details.
- Special thanks to the Node.js and Express.js communities
- Thanks for using SplitUp! 🚀