How bmadigan/dizzybank works
Dizzybank is a Laravel banking/fintech application, currently presented as a browser app with Inertia and Vue. The main workflow lets an authenticated user view accounts, create or update an account, and record account activity; payment and payee management, dashboard activity, transaction export, and profile management are separate capabilities. Account and payment aggregates represent event-sourced domain operations, with projectors and models supporting persisted views. The excerpts establish controller-to-domain calls and route mappings; projector wiring and several frontend interactions are not shown, so those links are omitted.
Main entry points: web.php Web routes · User.php User model · AccountsController.php Accounts handler · DashboardController.php Dashboard handler
Components 25
Web entry and views
- Web routes
routes/web.php - Account pages
resources/js/Pages/Accounts/Show.vue - Dashboard page
resources/js/Pages/Dashboard.vue - Payment pages
resources/js/Pages/Payments/Index.vue - Profile page
resources/js/Pages/User/Edit.vue
Accounts and activity
- Accounts handler
app/Http/Controllers/AccountsController.php - Account aggregate
app/Domain/Accounts/Aggregates/AccountAggregate.php - Account events
app/Domain/Accounts/Events/AccountCreated.php - Account model
app/Domain/Accounts/Models/Account.php - Account projectors
app/Domain/Accounts/Projectors/AccountProjector.php - Transaction records
app/Domain/Accounts/Models/Transaction.php - Transaction resource
app/Domain/Accounts/Resources/TransactionResource.php - Dashboard handler
app/Http/Controllers/DashboardController.php - Transaction export
app/Http/Controllers/TransactionsExportController.php
Payments
- Payments handler
app/Http/Controllers/PaymentsController.php - Payment aggregate
app/Domain/Payments/Aggregates/PaymentAggregate.php - Payment events
app/Domain/Payments/Events/PaymentMade.php - Payment projector
app/Domain/Payments/Projectors/PaymentProjector.php - Payee handler
app/Http/Controllers/PayeesController.php - Payee model
app/Domain/Payments/Models/Payee.php - Payment model
app/Domain/Payments/Models/Payment.php
Users and profile
- User model
app/Domain/Users/Models/User.php - Authentication handlers
app/Http/Controllers/Auth/LoginController.php - Profile handler
app/Http/Controllers/UserProfileController.php
Other components
- Bank customer
Connections 32
- Bank customer → Web routes: requests pages
README.md - Web routes → Accounts handler: routes to
routes/web.php - Web routes → Dashboard handler: routes to
routes/web.php - Web routes → Payments handler: routes to
routes/web.php - Web routes → Payee handler: routes to
routes/web.php - Web routes → Transaction export: routes to
routes/web.php - Web routes → Profile handler: routes to
routes/web.php - Accounts handler → Account pages: renders
app/Http/Controllers/AccountsController.php - Dashboard handler → Dashboard page: renders
- Payments handler → Payment pages: renders
app/Http/Controllers/PaymentsController.php - Profile handler → Profile page: renders
app/Http/Controllers/UserProfileController.php - Accounts handler → Account aggregate: records operations
app/Http/Controllers/AccountsController.php - Accounts handler → Account model: loads account
app/Http/Controllers/AccountsController.php - Accounts handler → Transaction resource: formats activity
app/Http/Controllers/AccountsController.php - Account aggregate → Account events: emits events
app/Domain/Accounts/Aggregates/AccountAggregate.php - Account model → Transaction records: relates activity
app/Domain/Accounts/Models/Account.php - Dashboard handler → Account model: loads accounts
app/Http/Controllers/DashboardController.php - Dashboard handler → Transaction records: loads activity
app/Http/Controllers/DashboardController.php - Dashboard handler → Transaction resource: formats activity
app/Http/Controllers/DashboardController.php - Transaction export → Transaction records: exports records
app/Http/Controllers/TransactionsExportController.php - Payments handler → Payment aggregate: records payment
app/Http/Controllers/PaymentsController.php - Payment aggregate → Payment events: emits event
app/Domain/Payments/Aggregates/PaymentAggregate.php - Payments handler → User model: loads user data
app/Http/Controllers/PaymentsController.php - Payee handler → Payee model: manages payees
app/Http/Controllers/PayeesController.php - User model → Account model: relates accounts
app/Domain/Users/Models/User.php - User model → Transaction records: relates activity
app/Domain/Users/Models/User.php - User model → Payee model: relates payees
app/Domain/Users/Models/User.php - User model → Payment model: relates payments
app/Domain/Users/Models/User.php - Authentication handlers → User model: authenticates
- Profile handler → User model: updates profile
app/Http/Controllers/UserProfileController.php - Account projectors → Account model: projects state
- Payment projector → Payment model: projects state