How vladadev/expense-activity-tracker works
Expense & Activity Tracker is a household-oriented personal finance and activity app: users manage shared records in an Expo mobile app backed by an Express/Mongoose API. The principal flow is a user action in a mobile screen, through the API client and matching backend route, to household-scoped data and a response. The tree also shows distinct income, savings, wishlist, calendar/events, statistics, categories, notifications, and audit capabilities. Several route and screen implementations were not sampled, so links between those components are limited to documented mounts and evident product domains.
Main entry points: app.js API dispatch · RootNavigator.js Screen navigation · client.js HTTP and auth client · expenses.js Expenses and income
Components 32
Mobile app
- App providers
mobile/App.js - Screen navigation
mobile/src/navigation/RootNavigator.js - Finance screens
mobile/src/screens/FinancesScreen.js - Expense entry
mobile/src/screens/ExpenseFormScreen.js - Income and savings
mobile/src/screens/IncomeFormScreen.js - Calendar and events
mobile/src/screens/AgendaScreen.js - Wishlist screens
mobile/src/screens/WishlistScreen.js - Statistics screens
mobile/src/screens/StatsScreen.js - Household settings
mobile/src/screens/HouseholdScreen.js - HTTP and auth client
mobile/src/api/client.js - Offline write queue
mobile/src/context/OfflineQueueContext.js
Backend API
- Server startup
backend/src/server.js - API dispatch
backend/src/app.js - Authentication
backend/src/routes/auth.js - Expenses and income
backend/src/routes/expenses.js - Events and calendar
backend/src/routes/events.js - Statistics
backend/src/routes/stats.js - Wishlist
backend/src/routes/wishlist.js - Households
backend/src/routes/households.js - Categories and notices
backend/src/routes/categories.js - Activity audit
backend/src/routes/auditLog.js
Domain data
- User records
backend/src/models/User.js - Expense records
backend/src/models/Expense.js - Income records
backend/src/models/Income.js - Savings records
backend/src/models/Savings.js - Event records
backend/src/models/Event.js - Wishlist records
backend/src/models/WishlistItem.js - Household records
backend/src/models/Household.js - Category records
backend/src/models/Category.js - Audit records
backend/src/models/AuditLog.js
Other components
- Household user
- MongoDB
Connections 46
- Household user → Screen navigation: uses
- App providers → Screen navigation: renders
- Screen navigation → Finance screens: navigates
- Screen navigation → Expense entry: navigates
- Screen navigation → Income and savings: navigates
- Screen navigation → Calendar and events: navigates
- Screen navigation → Wishlist screens: navigates
- Screen navigation → Statistics screens: navigates
- Screen navigation → Household settings: navigates
- Finance screens → HTTP and auth client: requests
- Expense entry → HTTP and auth client: submits
- Income and savings → HTTP and auth client: submits
- Calendar and events → HTTP and auth client: requests
- Wishlist screens → HTTP and auth client: requests
- Statistics screens → HTTP and auth client: requests
- Household settings → HTTP and auth client: requests
- HTTP and auth client → API dispatch: HTTP requests
- HTTP and auth client → Offline write queue: queues failed writes
- Offline write queue → HTTP and auth client: retries writes
- Server startup → API dispatch: starts
- API dispatch → Authentication: dispatches
- API dispatch → Expenses and income: dispatches
- API dispatch → Events and calendar: dispatches
- API dispatch → Statistics: dispatches
- API dispatch → Wishlist: dispatches
- API dispatch → Households: dispatches
- API dispatch → Categories and notices: dispatches
- API dispatch → Activity audit: dispatches
- Authentication → User records: reads and writes
- Expenses and income → Expense records: manages
- Expenses and income → Income records: manages
- Expenses and income → Savings records: manages
- Events and calendar → Event records: manages
- Wishlist → Wishlist records: manages
- Households → Household records: manages
- Categories and notices → Category records: manages
- Activity audit → Audit records: reads
- User records → MongoDB: persists
- Expense records → MongoDB: persists
- Income records → MongoDB: persists
- Savings records → MongoDB: persists
- Event records → MongoDB: persists
- Wishlist records → MongoDB: persists
- Household records → MongoDB: persists
- Category records → MongoDB: persists
- Audit records → MongoDB: persists