# ashdownbadd/aces-next architecture

> Architecture diagram of the GitHub repository ashdownbadd/aces-next, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ashdownbadd/aces-next
- Repository: https://github.com/ashdownbadd/aces-next

## Overview

ACES Next is a cooperative financial-operations web platform. Users authenticate and then work with member records and loan applications, while accounting staff manage journal vouchers and financial reports; dashboards and activity logs provide operational oversight. The sampled code confirms the HTTP entry, authentication and rate-limiting behavior, and controller interactions for members, loans, and ledger. Other feature branches are represented from the README and file tree; their internal wiring is not fully sampled, so uncertain service-to-storage links are omitted.

Main entry points: [`app/Features/Loans/Controllers/LoanController.php`](https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Loans/Controllers/LoanController.php) (Loan Management), [`resources/views`](https://github.com/ashdownbadd/aces-next/tree/main/resources/views) (Web Views), [`app/Foundation/Router.php`](https://github.com/ashdownbadd/aces-next/blob/main/app/Foundation/Router.php) (Router), [`app/Features/Members`](https://github.com/ashdownbadd/aces-next/tree/main/app/Features/Members) (Member Management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["Web Platform"]
  node_app["Application<br/>[Application.php]"]
  node_router["Router<br/>[Router.php]"]
  node_http["HTTP Request<br/>[Request.php]"]
  node_views["Web Views"]
  node_database[("Database<br/>[Database.php]")]
end

subgraph group_identity["Identity and Oversight"]
  node_login["Login Controller"]
  node_auth["Authentication<br/>[AuthService.php]"]
  node_users["User Repository<br/>[UserRepository.php]"]
  node_dashboard["Dashboard"]
  node_activity["Activity Logs"]
end

subgraph group_members["Member Services"]
  node_members["Member Management"]
  node_memberdata["Member Repositories"]
end

subgraph group_loans["Loan Operations"]
  node_loans["Loan Management<br/>[LoanController.php]"]
  node_loanservices["Loan Services"]
  node_loandata["Loan Repositories"]
  node_statements["Account Statements"]
end

subgraph group_accounting["Accounting"]
  node_ledger["Ledger Management"]
  node_ledgerservice["Ledger Services<br/>[LedgerService.php]"]
  node_journals["Journal Vouchers"]
end

node_user(("Cooperative Staff"))

node_user -->|"sends request"| node_http
node_http -->|"enters"| node_app
node_app -->|"dispatches"| node_router
node_router -->|"routes login"| node_login
node_router -->|"routes member requests"| node_members
node_router -->|"routes loan requests"| node_loans
node_router -->|"routes accounting requests"| node_ledger
node_login -->|"authenticates"| node_auth
node_auth -->|"looks up user"| node_users
node_auth -->|"records attempts"| node_database
node_login -->|"renders login"| node_views
node_members -->|"accesses member data"| node_memberdata
node_members -->|"loads member loans"| node_loans
node_members -->|"renders member pages"| node_views
node_loans -->|"runs loan actions"| node_loanservices
node_loans -->|"reads schedules"| node_loandata
node_loans -->|"searches members"| node_members
node_loans -->|"requests statement"| node_statements
node_loans -->|"renders loan pages"| node_views
node_ledger -->|"reads vouchers"| node_journals
node_ledger -->|"runs ledger actions"| node_ledgerservice
node_ledger -->|"renders accounting pages"| node_views
node_dashboard -->|"renders snapshot"| node_views
node_activity -->|"renders audit pages"| node_views

click node_app "https://github.com/ashdownbadd/aces-next/blob/main/app/Foundation/Application.php"
click node_router "https://github.com/ashdownbadd/aces-next/blob/main/app/Foundation/Router.php"
click node_http "https://github.com/ashdownbadd/aces-next/blob/main/app/Http/Request.php"
click node_views "https://github.com/ashdownbadd/aces-next/tree/main/resources/views"
click node_database "https://github.com/ashdownbadd/aces-next/blob/main/app/Foundation/Database.php"
click node_login "https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Authentication/Controllers/LoginController.php"
click node_auth "https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Authentication/Services/AuthService.php"
click node_users "https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Authentication/Repositories/UserRepository.php"
click node_dashboard "https://github.com/ashdownbadd/aces-next/tree/main/app/Features/Dashboard"
click node_activity "https://github.com/ashdownbadd/aces-next/tree/main/app/Features/ActivityLogs"
click node_members "https://github.com/ashdownbadd/aces-next/tree/main/app/Features/Members"
click node_memberdata "https://github.com/ashdownbadd/aces-next/tree/main/app/Features/Members/Repositories"
click node_loans "https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Loans/Controllers/LoanController.php"
click node_loanservices "https://github.com/ashdownbadd/aces-next/tree/main/app/Features/Loans/Services"
click node_loandata "https://github.com/ashdownbadd/aces-next/tree/main/app/Features/Loans/Repositories"
click node_statements "https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Loans/Services/StatementOfAccountService.php"
click node_ledger "https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Ledger/Controllers/LedgerController.php"
click node_ledgerservice "https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Ledger/Services/LedgerService.php"
click node_journals "https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Ledger/Repositories/JournalVoucherRepository.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_router,node_http,node_views,node_database toneBlue
class node_login,node_auth,node_users,node_dashboard,node_activity toneAmber
class node_members,node_memberdata toneMint
class node_loans,node_loanservices,node_loandata,node_statements toneRose
class node_ledger,node_ledgerservice,node_journals,node_user toneIndigo
```

## Components

### Web Platform

- [Application](https://github.com/ashdownbadd/aces-next/blob/main/app/Foundation/Application.php): `app/Foundation/Application.php`
- [Router](https://github.com/ashdownbadd/aces-next/blob/main/app/Foundation/Router.php): `app/Foundation/Router.php`
- [HTTP Request](https://github.com/ashdownbadd/aces-next/blob/main/app/Http/Request.php): `app/Http/Request.php`
- [Web Views](https://github.com/ashdownbadd/aces-next/tree/main/resources/views): `resources/views`
- [Database](https://github.com/ashdownbadd/aces-next/blob/main/app/Foundation/Database.php): `app/Foundation/Database.php`

### Identity and Oversight

- [Login Controller](https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Authentication/Controllers/LoginController.php): `app/Features/Authentication/Controllers/LoginController.php`
- [Authentication](https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Authentication/Services/AuthService.php): `app/Features/Authentication/Services/AuthService.php`
- [User Repository](https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Authentication/Repositories/UserRepository.php): `app/Features/Authentication/Repositories/UserRepository.php`
- [Dashboard](https://github.com/ashdownbadd/aces-next/tree/main/app/Features/Dashboard): `app/Features/Dashboard`
- [Activity Logs](https://github.com/ashdownbadd/aces-next/tree/main/app/Features/ActivityLogs): `app/Features/ActivityLogs`

### Member Services

- [Member Management](https://github.com/ashdownbadd/aces-next/tree/main/app/Features/Members): `app/Features/Members`
- [Member Repositories](https://github.com/ashdownbadd/aces-next/tree/main/app/Features/Members/Repositories): `app/Features/Members/Repositories`

### Loan Operations

- [Loan Management](https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Loans/Controllers/LoanController.php): `app/Features/Loans/Controllers/LoanController.php`
- [Loan Services](https://github.com/ashdownbadd/aces-next/tree/main/app/Features/Loans/Services): `app/Features/Loans/Services`
- [Loan Repositories](https://github.com/ashdownbadd/aces-next/tree/main/app/Features/Loans/Repositories): `app/Features/Loans/Repositories`
- [Account Statements](https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Loans/Services/StatementOfAccountService.php): `app/Features/Loans/Services/StatementOfAccountService.php`

### Accounting

- [Ledger Management](https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Ledger/Controllers/LedgerController.php): `app/Features/Ledger/Controllers/LedgerController.php`
- [Ledger Services](https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Ledger/Services/LedgerService.php): `app/Features/Ledger/Services/LedgerService.php`
- [Journal Vouchers](https://github.com/ashdownbadd/aces-next/blob/main/app/Features/Ledger/Repositories/JournalVoucherRepository.php): `app/Features/Ledger/Repositories/JournalVoucherRepository.php`

### Other components

- **Cooperative Staff**

## Connections

- Cooperative Staff → HTTP Request: sends request
- HTTP Request → Application: enters
- Application → Router: dispatches
- Router → Login Controller: routes login
- Router → Member Management: routes member requests
- Router → Loan Management: routes loan requests
- Router → Ledger Management: routes accounting requests
- Login Controller → Authentication: authenticates
- Authentication → User Repository: looks up user
- Authentication → Database: records attempts
- Login Controller → Web Views: renders login
- Member Management → Member Repositories: accesses member data
- Member Management → Loan Management: loads member loans
- Member Management → Web Views: renders member pages
- Loan Management → Loan Services: runs loan actions
- Loan Management → Loan Repositories: reads schedules
- Loan Management → Member Management: searches members
- Loan Management → Account Statements: requests statement
- Loan Management → Web Views: renders loan pages
- Ledger Management → Journal Vouchers: reads vouchers
- Ledger Management → Ledger Services: runs ledger actions
- Ledger Management → Web Views: renders accounting pages
- Dashboard → Web Views: renders snapshot
- Activity Logs → Web Views: renders audit pages
