How marathe-suraj/expensetracker works
ExpenseTracker is an ASP.NET MVC expense-tracking application. A user authenticates, manages categories and expenses, and views dashboard summaries; expense searches can also be exported as PDF or Excel. The sampled controllers and services show the request-to-domain flow, while repositories call SQL stored procedures. The README only names the product, so dashboard and export capabilities are based on sampled source and the tree; unsampled implementation details are not inferred.
Main entry points: AuthService.cs Authentication · Program.cs MVC application · ExpensesController.cs Expense actions · DashboardController.cs Dashboard actions
Components 19
Web interface
- MVC application
Program.cs - Dashboard actions
Controllers/DashboardController.cs - Expense actions
Controllers/ExpensesController.cs - Category actions
Controllers/CategoriesController.cs - Expense views
Views/Expenses - Category views
Views/Categories - Dashboard view
Views/Dashboard/Index.cshtml
Application services
- Dashboard summaries
Services/DashboardService.cs - Expense operations
Services/ExpenseService.cs - Category operations
Services/CategoryService.cs
Persistence
- Expense repository
Data/Repositories/ExpenseRepository.cs - Category repository
Data/Repositories/CategoryRepository.cs - User repository
Data/Repositories/UserRepository.cs - Connection factory
Data/DbConnectionFactory.cs - SQL database
Database/ExpenseTracker.sql
Identity
- Account actions
Controllers/AccountController.cs - Authentication
Services/AuthService.cs - Cookie auth
Program.cs
Other components
- User
Connections 29
- User → MVC application: sends requests
- MVC application → Account actions: routes requests
- MVC application → Dashboard actions: routes requests
- MVC application → Expense actions: routes requests
- MVC application → Category actions: routes requests
- Account actions → Authentication: invokes
- Authentication → User repository: looks up or creates
- Authentication → Cookie auth: signs in or out
- Dashboard actions → Authentication: gets user id
- Dashboard actions → Dashboard summaries: requests summary
- Dashboard actions → Dashboard view: renders
- Expense actions → Authentication: gets user id
- Expense actions → Expense operations: searches and changes
- Expense actions → Category operations: loads categories
- Expense actions → Expense views: renders
- Expense operations → Expense repository: queries and changes
- Expense operations → Expense operations: generates PDF or Excel
- Category actions → Authentication: gets user id
- Category actions → Category operations: queries and changes
- Category actions → Category views: renders
- Category operations → Category repository: queries and changes
- Dashboard summaries → Expense repository: gets expense totals
- Expense repository → Connection factory: creates connections
- Category repository → Connection factory: creates connections
- User repository → Connection factory: creates connections
- Connection factory → SQL database: connects to
- Expense repository → SQL database: executes procedures
- Category repository → SQL database: executes procedures
- User repository → SQL database: executes procedures