Skip to content

maruf-pfc/paisa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Paisa - A modern, open-source personal finance tracker

  • 1. Frontend: React + TypeScript + Next.js
  • 2. Backend: Node.js + NestJS

Core Modules

  1. Auth Module – login, register, sessions
  2. Transaction Module – income, expense, transfers
  3. Budget & Categories Module
  4. Goals & Savings Module
  5. Analytics Module – graphs, monthly reports
  6. User Profile & Settings

Learning & Development Plan

Phase 1: Foundation

  • Learn basics of Next.js + TypeScript
  • Learn Node.js, NestJS
  • Learn PostgreSQL + Prisma ORM

Phase 2: Backend Implementation

  • Set up API routes
  • Build data models with Prisma
  • Add authentication
  • Implement role-based access (future-proof)

Phase 3: Frontend Development

  • Build UI layout
  • Dashboard with charts
  • Input forms for transactions
  • Data tables with filtering & sorting

Phase 4: Analytics & Reports

  • Monthly spending summaries
  • Heatmaps and trend visualizations
  • CSV/XLSX export

Phase 5: Deployment

  • Deploy DB → Supabase
  • Deploy frontend → Vercel
  • Deploy backend (if separate) → Render / Railway
  • CI/CD pipeline

Phase 6: Open Source Setup

  • Create GitHub repo
  • Add README, architecture docs
  • Add issues, contribution guidelines

Tech Stack Summary

Layer Technology
Frontend React, TypeScript, Next.js, Tailwind, Recharts
Backend Node.js + NestJS (or Express), TypeScript
API REST
Database PostgreSQL + Prisma ORM
Auth NextAuth.js
Deployment Vercel + Supabase / Railway
Extra Tools Docker, Redis, BullMQ

Complete Project Folder Structure

paisa/
├── apps/
│   ├── frontend/              # Next.js + TypeScript
│   │   ├── public/
│   │   ├── src/
│   │   │   ├── app/           # Next.js App Router
│   │   │   ├── components/
│   │   │   ├── hooks/
│   │   │   ├── lib/
│   │   │   ├── styles/
│   │   │   ├── utils/
│   │   │   └── types/
│   │   ├── package.json
│   │   └── tsconfig.json
│   │
│   ├── backend/               # Node.js + NestJS (or Express)
│   │   ├── src/
│   │   │   ├── modules/
│   │   │   │   ├── auth/
│   │   │   │   ├── user/
│   │   │   │   ├── transactions/
│   │   │   │   ├── categories/
│   │   │   │   ├── budgets/
│   │   │   │   └── analytics/
│   │   │   ├── common/
│   │   │   ├── prisma/
│   │   │   ├── main.ts
│   │   │   └── app.module.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│
├── prisma/
│   ├── schema.prisma
│   └── migrations/
│
├── docker/
│   ├── docker-compose.yml
│   └── backend.Dockerfile
│
├── docs/
│   ├── architecture-diagram.png
│   ├── er-diagram.png
│   ├── api-contract.md
│   └── contribution-guide.md
│
├── .env.example
├── package.json
├── README.md
└── LICENSE

Frontend (Next.js)

  • Responsible for UI, forms, charts, dashboards
  • Communicates to backend via REST API

Backend (NestJS/Express)

  • Authentication
  • Transactions CRUD
  • Budgets
  • Analytics calculations
  • Report generation

Database (PostgreSQL)

  • Stores all user, transactions, categories, budget, goals

Other Components

  • Redis (optional) → caching analytics
  • Cron Jobs → daily summaries
  • Cloud Storage (Supabase Storage/S3) for file exports

4. Step-by-Step Coding Roadmap

PHASE 1 — Setup & Foundations

Week 1

  1. Create monorepo structure
  2. Initialize Next.js frontend
  3. Initialize NestJS backend
  4. Set up PostgreSQL (local or Dockerized)
  5. Create schema.prisma
  6. Configure Prisma client in backend
  7. Define .env setup

PHASE 2 — Authentication

Week 2

  • Implement JWT auth (or NextAuth)
  • Register / Login / Logout APIs
  • Protect API routes
  • Add login & register pages

PHASE 3 — Core Models: Categories + Transactions

Week 3

  • Create Category CRUD
  • Create Transaction CRUD
  • Filter transactions by date/category/type
  • Implement pagination
  • Add transaction creation UI

PHASE 4 — Budgets + Goals Module

Week 4

  • Budget creation UI
  • Show budget progress bar
  • Show remaining budget
  • Goal setting and progress tracking

PHASE 5 — Dashboard + Analytics

Week 5–6

  • Monthly income/expense summary
  • Bar charts, line charts, pie charts
  • Spending trends
  • Category breakdown
  • Automated analytics API
  • Export reports (CSV/XLSX)

PHASE 6 — Testing & Hardening

Week 7

  • Unit tests (Jest)
  • Integration tests
  • Frontend tests (Playwright)
  • Cleanup & code refactor

PHASE 7 — Deployment

Week 8

  • Deploy backend to Render/Railway
  • Deploy frontend to Vercel
  • Deploy PostgreSQL to Supabase/Neon
  • Add CI/CD GitHub Actions

MVP Feature List

Must-Have

  • User authentication
  • Add/edit/delete transactions
  • Categories management
  • Monthly summary
  • Dashboard charts (pie, bar, line)
  • Budgets
  • Export CSV
  • Dark mode
  • Responsive UI

Nice-to-Have

  • Goals & savings planner
  • Recurring transactions
  • Notifications
  • AI-based spending insights
  • Multi-wallet support
  • Bank sync API (Plaid, future)

6. SCRUM: Task Breakdown

Sprint 1 — Project Setup

  • Setup monorepo
  • Initialize frontend (Next.js)
  • Initialize backend (NestJS)
  • Docker environment
  • Database connection
  • Prisma schema base

Sprint 2 — Authentication

  • Register API
  • Login API
  • JWT middleware
  • Login UI
  • Protect routes UI/backend

Sprint 3 — Categories Module

  • Category model
  • Create CRUD API
  • Category listing page UI

Sprint 4 — Transactions Module

  • Transaction model
  • CRUD API
  • Transaction form UI
  • Filtering & sorting

Sprint 5 — Dashboard & Charts

  • Analytics API
  • Monthly summary
  • Pie chart (categories)
  • Line chart (trend)
  • Total balance widget

Sprint 6 — Budgets & Goals

  • Budget module backend
  • Budget progress UI
  • Goals CRUD & tracker

Sprint 7 — Export & Settings

  • CSV export
  • User settings
  • Currency options

Sprint 8 — Deployment

  • Deploy backend
  • Deploy frontend
  • CI/CD
  • Final documentation

🎯 Full Project Roadmap (At a Glance)

Phase Duration Description
Planning 2–3 days Architecture, ERD, setup
Foundation Week 1 Repo setup, DB, Prisma
Auth Week 2 User system
Core Features Week 3–4 Transactions, categories, budgets
Analytics Week 5–6 Charts, insights
Testing Week 7 Unit + integration
Deployment Week 8 Deploy & release
Open-source Launch Post-launch Documentation, issues, community

About

A modern, open-source personal finance tracker

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors