A web application for tracking personal finances, including income and expenses. Built with a React frontend, Node.js backend, and MongoDB database.
- User authentication (register/login) with JWT-based authorization.
- Add, view, update, and delete income/expense transactions.
- Categorize transactions and view detailed history.
- Dashboard summarizing income, expenses, and net balance.
- React: For building the user interface.
- React Router: For routing between pages.
- Axios: For making HTTP requests.
- Node.js and Express: For building the RESTful API.
- MongoDB: For storing user data and transactions.
- Mongoose: For interacting with MongoDB.
- JWT (jsonwebtoken): For user authentication.
- bcrypt: For secure password hashing.
- Node.js and npm installed.
- MongoDB connection string (local or MongoDB Atlas).
- Navigate to the
serverdirectory:cd server - Install dependencies:
npm install
- Create a
.envfile in theserverdirectory with the following variables:MONGO_URI=<your-mongodb-connection-uri> JWT_SECRET=<your-secret-key>
- Start the backend server:
The server will run on
npm start
http://localhost:5000.
- Navigate to the
clientdirectory:cd client - Install dependencies:
npm install
- Start the React development server:
The frontend will run on
npm start
http://localhost:3000.
- Open the application in your browser:
http://localhost:3000 - Register a new account or log in with existing credentials.
- Add income or expense transactions via the dashboard.
- View, edit, or delete transactions.
POST /api/auth/register: Register a new user.POST /api/auth/login: Log in and receive a JWT token.
GET /api/transactions: Get all transactions for the logged-in user.POST /api/transactions: Add a new transaction.PUT /api/transactions/:id: Update a transaction by ID.DELETE /api/transactions/:id: Delete a transaction by ID.
.
├── client
│ ├── src
│ │ ├── components
│ │ ├── pages
│ │ ├── services
│ │ └── App.js
├── server
│ ├── models
│ │ ├── User.js
│ │ ├── Transaction.js
│ ├── routes
│ │ ├── auth.js
│ │ ├── transactions.js
│ ├── controllers
│ ├── config
│ │ ├── db.js
│ └── index.js
└── README.md
- Add graphical reports for visualizing financial data.
- Include budgeting functionality with category limits.
- Add search and filter options for transactions.