How mhsohel/cashbox works
CashBox is a web-based personal finance ledger and SaaS-license manager. Users register or sign in, then manage accounts, categorized income and expenses, budgets, loans, and recurring activity; dashboard and report views turn that data into balances, pacing, and daily summaries. Superadmins administer permissions, bans, and premium service orders. The README documents Gemini budget advice and push notifications; sampled code confirms the budget-monitor/Gemini path, while detailed wiring for several unsampled modules is not established here.
Main entry points: web.php Web Routes · Transaction.php Finance Data · BudgetMonitorService.php Budget Monitor · BudgetController.php Budgets
Components 24
Web Experience
- Web Routes
routes/web.php - Auth Routes
routes/auth.php - Authentication
app/Http/Controllers/Auth/RegisteredUserController.php - Vue Inertia UI
resources/js/Pages - Inertia Middleware
app/Http/Middleware/HandleInertiaRequests.php
Finance Operations
- Accounts
app/Http/Controllers/AccountController.php - Transactions & Transfers
app/Http/Controllers/TransactionController.php - Categories
app/Http/Controllers/CategoryController.php - Budgets
app/Http/Controllers/BudgetController.php - Loans & Repayments
app/Http/Controllers/LoanController.php - Recurring Schedules
app/Http/Controllers/RecurringScheduleController.php - Finance Data
app/Models/Transaction.php
Planning & Reports
- Dashboard
app/Http/Controllers/DashboardController.php - Reports
app/Http/Controllers/ReportController.php - Budget Monitor
app/Services/BudgetMonitorService.php
Administration & Services
- License Billing
app/Http/Controllers/LicenseController.php - Service Orders
app/Http/Controllers/PremiumServiceOrderController.php - Superadmin Controls
app/Http/Controllers/SuperadminController.php - Reminder Notifications
app/Console/Commands/SendReminderNotifications.php - Firebase Push
app/Services/FirebaseService.php
Other components
- User
- Superadmin
- Gemini API
- Application Cache
Connections 37
- User → Auth Routes: requests auth
- Auth Routes → Authentication: dispatches
- Authentication → Finance Data: creates user data
- User → Web Routes: requests pages
- Web Routes → Accounts: dispatches
- Web Routes → Transactions & Transfers: dispatches
- Web Routes → Categories: dispatches
- Web Routes → Budgets: dispatches
- Web Routes → Loans & Repayments: dispatches
- Web Routes → Recurring Schedules: dispatches
- Web Routes → Dashboard: dispatches
- Web Routes → Reports: dispatches
- Web Routes → License Billing: dispatches
- Web Routes → Service Orders: dispatches
- Web Routes → Superadmin Controls: dispatches
- Accounts → Finance Data: reads/writes
- Transactions & Transfers → Finance Data: reads/writes
- Categories → Finance Data: reads/writes
- Budgets → Finance Data: reads/writes
- Loans & Repayments → Finance Data: reads/writes
- Recurring Schedules → Finance Data: reads/writes
- Recurring Schedules → Loans & Repayments: creates loans
- Dashboard → Finance Data: reads finance data
- Reports → Finance Data: reads finance data
- Budgets → Budget Monitor: requests pacing
- Budget Monitor → Finance Data: reads budgets/spend
- Budget Monitor → Application Cache: caches advice
- Budget Monitor → Gemini API: requests advice
- Superadmin → Web Routes: requests admin
- Superadmin Controls → Finance Data: updates users
- License Billing → Finance Data: reads/writes
- Service Orders → Finance Data: reads/writes
- Reminder Notifications → Finance Data: reads schedules
- Reminder Notifications → Firebase Push: sends notifications
- Web Routes → Inertia Middleware: shares request data
- Inertia Middleware → Vue Inertia UI: provides page props
- Vue Inertia UI → User: renders results