How riteshkrkarn/evenly works
Evenly is a private shared-expense ledger: people create groups or friend connections, record and split expenses, review balances, and record transfers (without moving money). The graph also preserves the documented activity, notification, analytics, export, and reminder capabilities. Sampled source confirms authentication, database access, reminder and export routes, and several client-to-action links; unsampled action internals are represented only at their existing paths, with uncertain wiring omitted.
Main entry points: index.ts Application database · group-data.ts Group data and access · route.ts Monthly reminders · auth.ts Account actions
Components 24
Identity
- Login and register
src/app/(auth)/login/page.tsx - Account actions
src/actions/auth.ts - Credentials and sessions
src/auth.ts
Shared ledger
- Group and expense screens
src/app/(app)/groups/[id]/expenses/[expenseId]/expense-forms.tsx - Group actions
src/actions/groups.ts - Expense actions
src/actions/expenses.ts - Friends screen
src/app/(app)/friends/friends-client.tsx - Friend actions
src/actions/friends.ts - Settlement screen
src/app/(app)/groups/[id]/settle/settle-client.tsx - Settlement actions
src/actions/settlements.ts - Balance calculations
src/lib/balances.ts - Group data and access
src/lib/group-data.ts
Insights and sync
- Analytics screens
src/app/(app)/analytics/page.tsx - Activity and transfers
src/app/(app)/activity/page.tsx - Notification actions
src/actions/notifications.ts - Export and advanced actions
src/actions/advanced.ts - Group data export
src/app/(app)/groups/[id]/export/route.ts - Monthly reminders
src/app/api/cron/monthly-reminders/route.ts
Application runtime
- Signed-in screens
src/app/(app)/layout.tsx - Profile actions
src/actions/profile.ts - Application database
src/db/index.ts - Ledger data model
src/db/schema.ts
Other components
- Person
- Email service
Connections 29
- Person → Login and register: signs up or in
- Login and register → Account actions: submits credentials
- Account actions → Credentials and sessions: signs in
- Account actions → Application database: reads and writes accounts
- Credentials and sessions → Application database: checks credentials
- Person → Signed-in screens: uses app
- Signed-in screens → Group and expense screens: opens ledger screens
- Group and expense screens → Group actions: manages groups
- Group and expense screens → Expense actions: records expenses
- Group actions → Application database: reads and writes groups
- Expense actions → Application database: reads and writes expenses
- Expense actions → Group data and access: uses group data
- Friends screen → Friend actions: sends friend request
- Friend actions → Application database: reads and writes friendships
- Settlement screen → Settlement actions: records transfer
- Settlement actions → Application database: writes settlements
- Group data and access → Application database: reads group records
- Group data and access → Balance calculations: computes balances
- Analytics screens → Group data and access: loads group summaries
- Activity and transfers → Signed-in screens: presents activity
- Person → Notification actions: manages notifications
- Group data export → Export and advanced actions: requests export data
- Export and advanced actions → Application database: reads export records
- Monthly reminders → Application database: reads users and groups
- Monthly reminders → Group data and access: loads balances and members
- Monthly reminders → Email service: sends due digest
- Person → Profile actions: updates profile
- Profile actions → Application database: writes profile
- Application database → Ledger data model: uses data model