How sai-charan-2722/expenses_tracker works
SplitSmart is a browser-only expense-sharing application. Users create groups, manage members, record shared expenses, review calculated balances, and view minimized settlement suggestions; group and expense data persist in localStorage. The sampled source confirms routing, group-detail orchestration, balance calculations, and storage behavior. Several feature components are documented but their implementations were not sampled, so their internal wiring is shown only where the README or sampled orchestration supports it.
Main entry points: group-detail.component.ts Group detail · storage.service.ts Data access · app.component.ts App component · app.routes.ts Route definitions
Components 21
Application shell
- App component
src/app/app.component.ts - Route definitions
src/app/app.routes.ts
Group workflows
- Group listing
src/app/features/home/home/home.component.ts - Create group
src/app/features/home/components/create-group-modal/create-group-modal.component.ts - Group detail
src/app/features/group-detail/group-detail/group-detail.component.ts - Expense list
src/app/features/group-detail/tabs/expenses-tab/expenses-tab.component.ts - Balance overview
src/app/features/group-detail/tabs/balances-tab/balances-tab.component.ts - Settlement suggestions
src/app/features/group-detail/tabs/settle-tab/settle-tab.component.ts - Member management
src/app/features/group-detail/tabs/members-tab/members-tab.component.ts
Shared interactions
- Add expense form
src/app/shared/components/add-expense-modal/add-expense-modal.component.ts - Add member form
src/app/shared/components/add-member-modal/add-member-modal.component.ts - Confirmation dialog
src/app/shared/components/confirm-modal/confirm-modal.component.ts - Navigation bar
src/app/shared/components/nav/nav.component.ts - Toast notifications
src/app/shared/components/snackbar/snackbar.component.ts
Core services
- Navigation state
src/app/core/services/nav-state.service.ts - Data access
src/app/core/services/storage.service.ts - Balance engine
src/app/core/services/balance.service.ts - Display utilities
src/app/core/services/ui-utils.service.ts - Snackbar service
src/app/shared/services/snackbar.service.ts
Other components
- User
- Browser localStorage
Connections 25
- User → App component: uses
- App component → Route definitions: hosts routes
- Route definitions → Group listing: routes home
- Route definitions → Group detail: routes group
- App component → Navigation bar: renders
- App component → Toast notifications: renders
- Navigation bar → Navigation state: emits actions
- Navigation state → Group detail: dispatches actions
- Group listing → Data access: reads groups
- Group listing → Create group: opens form
- Create group → Data access: saves group
- Group detail → Data access: loads group data
- Group detail → Balance engine: requests calculations
- Group detail → Display utilities: formats display
- Group detail → Expense list: provides expense data
- Group detail → Balance overview: provides balances
- Group detail → Settlement suggestions: provides settlements
- Group detail → Member management: provides members
- Group detail → Add expense form: opens form
- Group detail → Add member form: opens form
- Group detail → Confirmation dialog: requests confirmation
- Group detail → Snackbar service: shows feedback
- Balance engine → Data access: reads expenses
- Data access → Browser localStorage: reads and writes
- Snackbar service → Toast notifications: displays message