FinEase is a personal finance management web application that helps users manage their income, expenses, and savings goals efficiently. It allows users to record transactions, set monthly budgets, and view insightful financial summaries with charts and reports.
This project demonstrates CRUD operations, authentication, backend integration, and data visualization — ideal for showcasing full-stack development skills.
FinEase is designed to help individuals track and manage their personal finances in a simple and organized way. Users can record income and expense transactions, monitor their financial balance, and visualize spending patterns through interactive charts.
The platform provides secure authentication, private routes for personal financial data, and powerful data visualization tools to help users understand their financial habits and make better financial decisions.
- Live Website: https://cozy-sfogliatella-b1ff0b.netlify.app
- Client Repository: https://github.com/Fahmida0010/FinEase-client.git
- Server Repository: https://github.com/Fahmida0010/FinEase-Server.git
- User Authentication: Email/password & Google login via Firebase
- Transaction Management (CRUD): Add, update, delete, and view personal transactions
- Reports with Charts: Visualize income & expenses using Pie and Bar charts
- Light/Dark Mode: Switch between light and dark themes
- SweetAlert Notifications: Modern popups for success/error messages
- Responsive Design: Fully optimized for desktop, tablet, and mobile
- Custom 404 Page: Friendly “Not Found” page for invalid routes
-
Motivational banner section
-
Overview of total income, expense, and balance (from database)
-
Two static sections:
- Budgeting Tips
- Why Financial Planning Matters
- Signup: Name, Email, Password, PhotoURL
- Login: Email/Password & Google Login
Password validation rules:
- At least one uppercase and lowercase letter
- Minimum length: 6 characters
All messages shown via SweetAlert (no default alerts)
Accessible only to logged-in users:
/add-transaction/my-transactions/transaction/:id/transaction/update/:id/reports/profile
- Fields: Type, Category, Amount, Description, Date, User Email & Name
- Stores data in MongoDB
- Shows success message after submission
- Pre-filled form with existing data
- Updates instantly after saving
- SweetAlert confirmation before deletion
- Instantly updates UI after removing
- Full details including Type, Category, Amount, and Date
- Displays total amount per category
- Displays income & expense summary using Recharts
- Supports filtering by month
- Pie Chart (by category) and Bar Chart (monthly totals)
- Displays name, photo, and email
- Allows profile updates
- React (Vite)
- React Router
- Tailwind CSS
- SweetAlert2
- Recharts
- Firebase Authentication
- Node.js
- Express.js
- MongoDB
- Firebase Admin SDK (Authorization)
- react
- react-router-dom
- firebase
- tailwindcss
- sweetalert2
- recharts
- axios
- express
- cors
- dotenv
- mongodb
- firebase-admin
- jsonwebtoken
git clone https://github.com/Fahmida0010/FinEase-client.gitgit clone https://github.com/Fahmida0010/FinEase-Server.gitcd FinEase-clientnpm installnpm run devClient will run on:
http://localhost:5173
Open a new terminal and run:
cd FinEase-Servernpm installCreate a .env file and add:
MONGODB_URI=your_mongodb_connection_string
FIREBASE_ADMIN_KEY=your_firebase_admin_key
JWT_SECRET=your_secret_key
node index.jsServer will run on:
http://localhost:3000
Live Site https://cozy-sfogliatella-b1ff0b.netlify.app
Client Repository https://github.com/Fahmida0010/FinEase-client
Server Repository https://github.com/Fahmida0010/FinEase-Server
{
"type": "expense",
"category": "home",
"amount": 1000,
"description": "house rent",
"date": "2025-01-15T00:00:00.000Z",
"email": "xyz@gmail.com",
"name": "Hero"
}