How joao-fcosta/finance-app works
FinanceApp is a personal-finance web app for recording income and expenses, organizing spending by category, and tracking monthly balances and installments. Users sign in with Google, then use the dashboard to browse months, review totals, and create, edit, or delete transactions; the transaction form supports expense categories and installment purchases. Server Actions validate the authenticated user and perform Supabase operations, while the README describes row-level data isolation. The excerpts show the main UI, action, and auth paths; some dashboard and database details are documented rather than independently verified in source.
Main entry points: app/page.tsx Monthly dashboard · actions.ts Finance Server Actions · login/page.tsx Google login · route.ts OAuth callback
Components 13
Authentication
- Google login
app/login/page.tsx - Supabase browser client
app/lib/supabase.ts - OAuth callback
app/auth/callback/route.ts - Session gate
proxy.ts
Finance experience
- Monthly dashboard
app/page.tsx - Transaction form
app/components/TransactionModal.tsx - Expense categories
app/page.tsx
Data services
- Installment creation
app/actions.ts - Finance Server Actions
app/actions.ts
Other components
- User
- Google OAuth
- Supabase Auth
- Supabase finance tables
Connections 14
- User → Google login: starts login
README.md - Google login → Supabase browser client: uses client
app/login/page.tsx - Google login → Google OAuth: requests OAuth
app/login/page.tsx - Google OAuth → OAuth callback: returns code
README.md - OAuth callback → Supabase Auth: exchanges code
app/auth/callback/route.ts - Session gate → Supabase Auth: checks session
proxy.ts - User → Monthly dashboard: manages finances
README.md - Monthly dashboard → Finance Server Actions: loads and deletes
app/page.tsx - Monthly dashboard → Transaction form: opens form
app/page.tsx - Transaction form → Finance Server Actions: creates or edits
app/components/TransactionModal.tsx - Monthly dashboard → Expense categories: calculates totals
app/page.tsx - Finance Server Actions → Supabase finance tables: reads and writes
app/actions.ts - Finance Server Actions → Installment creation: creates installments
app/actions.ts - Installment creation → Supabase finance tables: stores installment records
app/actions.ts