❌ No clear picture of where money is going each month
❌ Income and expenses tracked in scattered spreadsheets (or not at all)
❌ No way to spot financial patterns until it's too late
❌ Generic finance apps — cluttered, complicated, not built for you
✔ Single dashboard — total balance, income, and expenses at a glance
✔ 30-day income vs expense chart — see trends, not just numbers
✔ Log income sources and expense categories with emoji logos
✔ Secure auth — bcrypt + httpOnly JWT cookies, no localStorage nonsense
✔ Clean MERN architecture — MVC backend, Context API frontend
┌──────────────────────────────────────────────────────────────┐
│ 💰 Total Balance 📈 Total Income 📉 Total Expenses │
│ ₹ 42,500 ₹ 75,000 ₹ 32,500 │
├──────────────────────────────────────────────────────────────┤
│ │
│ Income vs Expenses — Last 30 Days (Chart.js) │
│ ▓▓▓▓▓▓▓░░░░░ Income │
│ ▓▓▓░░░░░░░░░ Expenses │
│ │
├──────────────────────────────────────────────────────────────┤
│ Recent Transactions │
│ 🍕 Food · ₹450 · Today 💼 Salary · ₹50,000 · Jun 1 │
└──────────────────────────────────────────────────────────────┘
|
💚 Income Management
🔴 Expense Tracking
|
📈 Analytics Dashboard
🔐 Auth & Security
|
Client (React + Vite)
│
├── /Pages → Landing, Home Dashboard, Income, Expenses
├── /Components → Reusable UI components
├── /useContext → Global state (user session, financial data)
└── /utils → Helper functions
Server (Node + Express) — MVC Pattern
│
├── /Routes → authRoutes, incomeRoutes, expenseRoutes, dashboardRoutes
├── /Controllers → Business logic per domain
├── /Models → Mongoose schemas (Users, Income, Expenses)
└── server.js → Entry point — Express init, MongoDB connect, middleware
# Clone the repo
git clone https://github.com/Ronit178693/Ledgerly.git
cd Ledgerly/Expense-Tracker
# ── Frontend ──────────────────────────────
npm install
npm run dev # → http://localhost:5173
# ── Backend ───────────────────────────────
cd backend
npm install
# Create your .env file
cp .env.example .env
# Fill in: MONGO_URI, JWT_SECRET, PORT
npm run dev # → http://localhost:5000📋 Click to expand schema overview
User — name · email · password (bcrypt) · createdAt
Income — user (ref) · source · amount · date · logo
Expense — user (ref) · category · amount · date · logo
Dashboard aggregations computed server-side via MongoDB Aggregation Pipelines — no heavy lifting on the frontend.
Ledgerly/
└── Expense-Tracker/
├── src/
│ ├── Pages/ # Landing, Home, Income, Expenses
│ ├── Components/ # Reusable UI
│ ├── useContext/ # Context API providers
│ ├── utils/ # Helpers
│ └── App.jsx # Route definitions
└── backend/
└── src/
├── Models/ # Users, Income, Expenses
├── Routes/ # auth, income, expense, dashboard
├── Controllers/ # Business logic
└── server.js # Entry point