How jamir4270/oreo-finance works
Oreo is a personal-finance tracker whose main workflow is recording income, expenses, and transfers across accounts, then reviewing balances, budgets, and analytics. Users organize activity with categories and can manage accounts, budgets, preferences, and authentication. The app is organized around Next.js route pages and client feature components, with server actions and Supabase providing the backend boundary. Currency conversion and installable PWA support are distinct capabilities. Most feature pages and actions were not sampled, so their wiring is shown only where documented or directly evidenced.
Main entry points: server.ts Server client · login/page.tsx Sign in and signup · onboarding/page.tsx Onboarding · AccountsPageClient.tsx Account management
Components 26
App experience
- Landing page
components/landing/LandingPageClient.tsx - Sign in and signup
app/(auth)/login/page.tsx - Onboarding
app/(auth)/onboarding/page.tsx - App navigation
components/layout/AppShell.tsx - Dashboard
app/(app)/dashboard/page.tsx - User settings
components/settings/SettingsClient.tsx
Finance features
- Account management
components/accounts/AccountsPageClient.tsx - Transaction ledger
components/transactions/TransactionsPageClient.tsx - Categories
components/categories/CategoriesPageClient.tsx
Planning and insights
- Rollover budgets
components/budgets/BudgetsPageClient.tsx - Financial analytics
components/analytics/AnalyticsPageClient.tsx
Backend services
- Account actions
app/actions/accounts.ts - Transaction actions
app/actions/transactions.ts - Category actions
app/actions/categories.ts - Budget actions
app/actions/budgets.ts - Authentication actions
app/actions/auth.ts - Onboarding actions
app/actions/onboarding.ts - Settings actions
app/actions/settings.ts - Server client
lib/supabase/server.ts - Browser client
lib/supabase/client.ts - Supabase database
Platform capabilities
- Currency conversion
lib/exchange-rates.ts - Open Exchange Rates
- PWA support
components/PwaRegistration.tsx - Offline worker
public/sw.js
Other components
- Finance user
Connections 28
- Finance user → Landing page: visits
- Finance user → Sign in and signup: authenticates
- Finance user → Onboarding: sets up
- Finance user → App navigation: uses
- Landing page → Sign in and signup: starts signup
- Sign in and signup → Authentication actions: submits credentials
- Sign in and signup → Onboarding: continues setup
- Onboarding → Onboarding actions: saves setup
- App navigation → Dashboard: navigates
- Account management → Account actions: manages accounts
- Transaction ledger → Transaction actions: writes and deletes
- Categories → Category actions: manages categories
- Rollover budgets → Budget actions: manages budgets
- User settings → Settings actions: updates preferences
- Account actions → Server client: uses client
- Transaction actions → Server client: uses client
- Category actions → Server client: uses client
- Budget actions → Server client: uses client
- Authentication actions → Server client: uses client
- Onboarding actions → Server client: uses client
- Settings actions → Server client: uses client
- Server client → Supabase database: queries and updates
- Browser client → Supabase database: accesses data
- Account management → Currency conversion: converts totals
- Currency conversion → Open Exchange Rates: gets exchange rates
- Finance user → PWA support: installs app
- PWA support → Offline worker: registers
- Transaction ledger → Supabase database: syncs in realtime