Skip to content

What is Budgeti Backend

Budgeti is a full-stack mobile finance app for people who want a practical tech solution to manage personal finances.

This page explains where the backend fits in that product: a TypeScript/Express API that powers core workflows (authentication, wallets, categories, transactions, budgets, dashboard analytics) and AI-assisted ingestion.

Budgeti focuses on everyday pain points:

  • Limited visibility of spending patterns.
  • Inconsistent transaction logging.
  • Friction in shared-finance collaboration.

Product promise: Register quickly and decide better.

Mobile-first positioning with useful AI means the product optimizes for fast capture now and better insights over time.

  • Provide reliable financial CRUD and aggregate analytics over versioned REST routes.
  • Enforce auth, rate limiting, request validation, and centralized error mapping.
  • Keep domain logic isolated from framework details using layered architecture and DI.
  • This docs site is backend-first because backend is the component ready for deep technical documentation.
  • Full product context is included so implementation decisions stay aligned with the mobile app vision.
  • Intended readers are developers and technical collaborators onboarding into the current codebase.
  • Current MVP AI: receipt OCR capture assistant and voice-command transaction entry.
  • Roadmap direction: evolve from capture-only assistance toward deeper, more agentic finance insights.
  • Product goal: become an integral app where people centralize finances.
  • API base: /api/v1.
  • Health endpoint: GET /health.
  • Protected modules use Bearer JWT via middleware.
  • Runtime: Node.js + TypeScript + Express 5.
  • Data: Prisma 7 + PostgreSQL.
  • Validation: Zod.
  • DI: Inversify container.
  • Testing: Vitest + Supertest.
  • AI integrations: OpenAI-based OCR and voice parsing.
  • App bootstrap: backend/src/app.ts.
  • Route registration: backend/src/Presentation/Routes/Index.ts.
  • Dependency container: backend/src/Containers/inversify.config.ts.