A full-stack web application designed to help users manage their finances by tracking expenses. Built with Node.js, Express, MongoDB, and a vanilla JavaScript frontend.
This project is a complete expense tracker that includes user authentication and full CRUD functionality for managing expenses. The goal was to build a secure, functional, and user-friendly application that demonstrates the entire development and deployment lifecycle of a full-stack project.
- 🔐 Secure Authentication: JWT-based user sign-up and login system.
- 📊 Interactive Dashboard: Dynamic pie chart for category-wise expense visualization using Chart.js.
- 📝 Full CRUD Functionality: Users can easily add, view, edit, and delete their expenses.
- ⬇️ Data Export: Download expense reports as either a CSV or PDF file.
- 📱 Responsive Design: A clean and modern UI that works on both desktop and mobile devices.
A look at the technologies that power this application.
| Frontend | Backend | Database | Deployment |
|---|---|---|---|
HTML5 CSS3 JavaScript Chart.js |
Node.js Express.js JWT CORS |
MongoDB Mongoose MongoDB Atlas |
Netlify (Frontend) Render (Backend) |
You can view and test the live, deployed application here:
- Live Site URL: https://graceful-sundae-d41e85.netlify.app
To get a local copy up and running, follow these simple steps.
Make sure you have Node.js and MongoDB installed on your system.
- Node.js: https://nodejs.org/
- MongoDB Community Server: https://www.mongodb.com/try/download/community
-
Clone the repository:
git clone [https://github.com/manmathbh/expense-tracker.git](https://github.com/manmathbh/expense-tracker.git) cd expense-tracker -
Install Backend Dependencies:
cd backend npm install -
Set Up Environment Variables:
- Create a
.envfile in thebackendfolder. - Add the following, replacing the placeholders with your own values:
MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_super_secret_key
- Create a
-
Run the Backend Server:
node server.js
-
Run the Frontend:
- Navigate to the
frontendfolder. - Open the
index.htmlfile with a live server extension (like the one in VS Code).
- Navigate to the
Manmath - LinkedIn - ([email protected])
Project Link: Project Repo