Why Build MyFinance?
Defining the Project Scope & Goals
- Personal sign up & login for privacy
- Default and custom categories for income/expenses
- Add/edit income and expense entries
- Track investments (profit/loss per asset)
- Monthly summary & one-click PDF exports
- Bank integrations
- Cross-account transfers
- Net worth tracking
- Mobile app
- Payments/subscriptions
Planning Data Flow & Architecture
- User: Your personal account and settings
- Category: "Groceries", "Salary", etc.—for grouping transactions
- Transaction: Any income or expense entry
- Investment: Profit/loss for assets you hold
- MonthlySnapshot (optional): For caching monthly summaries
Json
- Transactions are linked to categories (many-to-one)
- Investments linked to users
Aggregation & Reporting
- Sum up monthly income and expenses
- Sum profits (or losses) from investments
- Compute overall profit:
Json
API & UI Design
- API Endpoints: signup/login, CRUD for categories, transactions, investments, monthly reporting with PDF export
- UI: A dashboard with charts, easy category management, quick data entry via modals, and one-click PDF downloads
Tech Stack
- Next.js (React UI & API routes)
- TypeScript
- MongoDB
- Tailwind CSS
- PDF export support via Puppeteer (or another server-side PDF lib)