FinCtrl - Role-Based Finance Tracker
FinCtrl is a role-based finance tracking web application built using React.js for the frontend and Node.js with MongoDB for the backend. It enables users to track finances, manage event budgets, share financial data, and receive money management guidance , while admins can manage users, control visibility, and invest on behalf of users .
Role-Based Access :
User : Track finances, manage events, share insights
Admin : Manage users, control finance plans, oversee investments
Event Management : Create, update, and track budgets for events
Financial Insights : Get guidance on money management
Data Security : JWT authentication for backend API protection
React.js
React Router
Tailwind CSS
Backend (Node.js & Express)
Node.js
Express.js
MongoDB (NoSQL database)
Mongoose (MongoDB ODM)
JSON Web Tokens (JWT) for authentication
Frontend: Deployed on Render
Backend: Deployed on Render
Database: MongoDB Atlas
git clone https://github.com/shubhamiscodding/Fin_Ctrl.git
cd Fin_Ctrl
cd frontend # Navigate to frontend directory
npm install # Install dependencies
cd backend # Navigate to backend directory
npm install # Install dependencies
3. Configure Environment Variables
Create a .env file in the backend folder and add:
Fin_Ctrl/
├── frontend/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Different pages of the app
│ │ ├── context/ # Global state management
│ │ ├── utils/ # Helper functions
│ │ ├── App.js # Main React component
│ │ ├── index.js # React entry point
│ ├── package.json # Frontend dependencies
| ├── .env
├── backend/
│ ├── model/ # MongoDB Schemas (User, Admin, Finance, Event)
│ ├── routes/ # API Routes (User, Admin, Event)
│ ├── server.js # Main backend file
│ ├── .env # Environment variables
│ ├── package.json # Backend dependencies
│
├── README.md # Project Documentation
Method
Endpoint
Description
POST
/register
Register a new user
POST
/login
Login user (manual login)
GET
/profile/:id
Get user profile by ID
PUT
/update/:id
Update user profile
DELETE
/delete/:id
Delete a user account
Method
Endpoint
Description
POST
/create
Register a new admin
GET
/users
Retrieve all users managed by an admin
GET
/profile/:id
Get admin profile by ID
PUT
/update/:id
Update admin profile
DELETE
/delete/:id
Delete an admin account
Method
Endpoint
Description
POST
/
Create a new finance record
GET
/
Retrieve all finance records
GET
/period
Get finance records by time period (month/week/custom)
POST
/:id/expenses
Add an expense to a finance record
POST
/:id/plan/:planId/savings
Add savings to a finance plan
DELETE
/:id
Delete a finance record
Method
Endpoint
Description
POST
/create
Create a new event
GET
/list
Retrieve all events
GET
/:id
Get event details by ID
PUT
/update/:id
Update an event
DELETE
/delete/:id
Delete an event
We welcome contributions! Follow these steps to contribute:
Fork the repository
Create a new branch (feature-branch)
Make your changes and commit them
Push to your fork and submit a PR
https://www.figma.com/proto/DNBtQzukvRqvlJOR15WNiD/FINAL-PROJECT?node-id=103-636&t=pu4XjTKv2pbC3geb-1