FinTrack is an expense tracking web application that helps users manage and split shared expenses with friends, roommates, or colleagues. It is inspired by Splitwise and provides an easy way to create groups, add expenses, split bills, and track balances.
- User registration and authentication
- Create and manage groups
- Add expenses with descriptions and amounts
- Split expenses among group members
- Track who owes what in real-time
- Settle payments and clear balances
- Responsive and user-friendly interface
Backend:
- Node.js
- Express.js
- MongoDB with Mongoose
- JWT-based authentication
Frontend:
- React.js
- Redux for state management
- Axios for API requests
- Material UI or Bootstrap for styling
- Node.js installed on your machine
- MongoDB database (local or cloud)
-
Clone the repository:
git clone https://github.com/yourusername/fintrack.git cd fintrack -
Install dependencies:
cd backend npm install cd ../frontend npm install
-
Create a
.envfile in thebackendfolder with the following content:MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_secret_key -
Run the backend server:
cd backend npm start -
Run the frontend:
cd ../frontend npm start -
Open
http://localhost:3000in your browser.
POST /api/auth/signup– Register a new userPOST /api/auth/login– User loginGET /api/groups– Get all groups for the userPOST /api/groups– Create a new groupGET /api/groups/:id– Get group detailsPOST /api/expenses– Add a new expenseGET /api/expenses/:groupId– Get expenses for a group
fintrack/
├── backend/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── middleware/
│ ├── .env
│ └── server.js
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── services/
│ │ └── App.js
├── README.md
└── package.json
- Add expense categorization
- Real-time notifications and chat
- Dark mode support
- Recurring expenses
- Reports and analytics dashboard
Contributions are welcome! Please fork the repository and submit pull requests for improvements or bug fixes.
- Fork it
- Create a branch:
git checkout -b feature-name - Commit your changes:
git commit -m "Add new feature" - Push to your branch:
git push origin feature-name - Open a pull request
This project is licensed under the MIT License.
Ravi Sharma
📧 ravi.sharma172126@gmail.com
🌐 LinkedIn | GitHub