How pedroluizzampar/poup. works
Poup is a personal-finance PWA: a user signs in, connects a bank through Pluggy, reviews imported transactions and category suggestions, then explores spending, budgets, goals and reports; a household can share that financial view. The web app calls the Express API, whose scoped domain routes operate on PostgreSQL via Prisma. The README documents Open Finance, shared household finances and installable PWA behavior; several feature services are represented by their exact tree paths because their source was not excerpted, so only documented or indexed relationships are shown.
Main entry points: prisma.ts PostgreSQL · app.ts Express API · api.ts API client · auth.service.ts Authentication
Components 26
Finance PWA
- Web application
apps/web/src/App.tsx - API client
apps/web/src/lib/api.ts - Suggestion review
apps/web/src/pages/ReviewPage.tsx
API and identity
- Express API
apps/api/src/app.ts - Authentication
apps/api/src/modules/auth/auth.service.ts - Auth routes
apps/api/src/modules/auth/auth.routes.ts - Request scope
apps/api/src/lib/scope.ts - Authentication middleware
apps/api/src/middleware/requireAuth.ts - Scope middleware
apps/api/src/middleware/withScope.ts
Finance operations
- Transaction management
apps/api/src/modules/transactions/transactions.service.ts - Transaction routes
apps/api/src/modules/transactions/transactions.routes.ts - Categorization engine
apps/api/src/lib/categorization/engine.ts - Suggestion workflow
apps/api/src/modules/categorization/suggestions.service.ts - Categories
apps/api/src/modules/categories/categories.service.ts - Budgets
apps/api/src/modules/budgets/budgets.service.ts - Savings goals
apps/api/src/modules/goals/goals.service.ts - Reports
apps/api/src/modules/reports/reports.service.ts - Shared household
apps/api/src/modules/household/household.service.ts
Bank sync
- Bank connection routes
apps/api/src/modules/pluggy/pluggy.routes.ts - Pluggy integration
apps/api/src/modules/pluggy/pluggy.service.ts - Pluggy client
apps/api/src/lib/pluggy.ts - Bank webhooks
apps/api/src/modules/pluggy/webhook.routes.ts
Persistence
- PostgreSQL
apps/api/src/prisma.ts - Shared contracts
packages/shared/src/index.ts
Other components
- Finance user
- Pluggy Open Finance
Connections 28
- Finance user → Web application: uses
- Web application → API client: requests data
apps/web/src/App.tsx - API client → Express API: calls API
- Express API → Auth routes: mounts routes
apps/api/src/app.ts - Express API → Transaction routes: mounts routes
apps/api/src/app.ts - Express API → Bank connection routes: mounts routes
apps/api/src/app.ts - Auth routes → Authentication: calls
apps/api/src/modules/auth/auth.routes.ts - Authentication middleware → Auth routes: guards routes
apps/api/src/modules/auth/auth.routes.ts - Scope middleware → Request scope: resolves scope
apps/api/src/middleware/withScope.ts - Authentication middleware → Authentication: verifies token
apps/api/src/middleware/requireAuth.ts - Transaction routes → Transaction management: calls
apps/api/src/modules/transactions/transactions.routes.ts - Transaction routes → Suggestion workflow: bulk categorizes
apps/api/src/modules/transactions/transactions.routes.ts - Suggestion review → API client: loads and applies
apps/web/src/pages/ReviewPage.tsx - API client → Shared contracts: uses contracts
apps/web/src/lib/api.ts - Authentication → PostgreSQL: reads and writes
apps/api/src/modules/auth/auth.service.ts - Transaction management → PostgreSQL: persists records
- Bank connection routes → Pluggy integration: calls
apps/api/src/modules/pluggy/pluggy.routes.ts - Pluggy integration → Pluggy client: uses client
- Pluggy client → Pluggy Open Finance: connects to
- Bank webhooks → Pluggy integration: dispatches events
apps/api/src/modules/pluggy/webhook.routes.ts - Pluggy integration → PostgreSQL: stores sync data
- Authentication → Shared household: loads household
apps/api/src/modules/auth/auth.service.ts - Categories → PostgreSQL: persists categories
- Budgets → PostgreSQL: persists limits
- Savings goals → PostgreSQL: persists goals
- Reports → PostgreSQL: queries finances
- Shared household → PostgreSQL: persists membership
apps/api/src/modules/household/household.service.ts - Suggestion workflow → Categorization engine: uses engine