# c20246070camasis-tech/camasis1 architecture

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

- Interactive diagram: https://gitdiagram.com/c20246070camasis-tech/camasis1
- Repository: https://github.com/c20246070camasis-tech/camasis1

## Overview

CAMASIS1 is a Laravel application for managing workshops, attendees, venues, and registrations, alongside account and profile features. The main domain workflow is registration management: a user submits attendee and workshop details, the controller checks for duplicates and creates a registration with pending payment status. Authentication and profile settings form a separate user-account branch. The frontend uses Inertia and React. The README gives no further product detail; the registration service is included, but its callers are not established by the available evidence.

Main entry points: [`app/Models/Registration.php`](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Models/Registration.php) (Registration), [`routes/web.php`](https://github.com/c20246070camasis-tech/camasis1/blob/main/routes/web.php) (Web routes), [`app/Http/Controllers/RegistrationController.php`](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Controllers/RegistrationController.php) (Registration management), [`app/Models/Attendee.php`](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Models/Attendee.php) (Attendee)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web entry and UI"]
  node_entry["HTTP entry<br/>[index.php]"]
  node_bootstrap["App bootstrap<br/>[app.php]"]
  node_web_routes["Web routes<br/>[web.php]"]
  node_inertia_middleware["Inertia middleware"]
  node_frontend["React app bootstrap<br/>[app.tsx]"]
  node_pages["Inertia pages"]
  node_appearance["Appearance state<br/>[use-appearance.tsx]"]
end

subgraph group_domain["Workshop operations"]
  node_registration_controller["Registration management"]
  node_attendee_controller["Attendee management"]
  node_workshop_controller["Workshop management"]
  node_venue_controller["Venue management"]
  node_registration_service["Registration service"]
end

subgraph group_accounts["Accounts and settings"]
  node_auth_routes["Auth routes<br/>[auth.php]"]
  node_auth_controller["Authentication"]
  node_profile_controller["Profile settings"]
  node_profile_page["Profile page<br/>[profile.tsx]"]
end

subgraph group_models["Domain models"]
  node_user_model["User account<br/>[User.php]"]
  node_attendee_model["Attendee<br/>[Attendee.php]"]
  node_workshop_model["Workshop<br/>[Workshop.php]"]
  node_venue_model["Venue<br/>[Venue.php]"]
  node_registration_model["Registration<br/>[Registration.php]"]
end

node_user(("User"))

node_user -->|"sends requests"| node_entry
node_entry -->|"starts app"| node_bootstrap
node_bootstrap -->|"registers middleware"| node_inertia_middleware
node_auth_routes -->|"routes requests"| node_auth_controller
node_auth_controller -->|"creates account"| node_user_model
node_profile_controller -->|"renders page"| node_profile_page
node_frontend -->|"resolves pages"| node_pages
node_frontend -->|"initializes theme"| node_appearance
node_registration_controller -->|"reads attendee"| node_attendee_model
node_registration_controller -->|"reads workshop"| node_workshop_model
node_registration_controller -->|"creates registration"| node_registration_model
node_attendee_model -->|"has registrations"| node_registration_model
node_workshop_model -->|"has registrations"| node_registration_model
node_registration_model -->|"belongs to"| node_attendee_model
node_registration_model -->|"belongs to"| node_workshop_model
node_attendee_controller -->|"uses model"| node_attendee_model
node_workshop_controller -->|"uses model"| node_workshop_model
node_venue_controller -->|"uses model"| node_venue_model
node_web_routes -.->|"dispatches requests"| node_registration_controller
node_web_routes -.->|"dispatches requests"| node_attendee_controller
node_web_routes -.->|"dispatches requests"| node_workshop_controller
node_web_routes -.->|"dispatches requests"| node_venue_controller
node_registration_service -.->|"uses model"| node_registration_model

click node_entry "https://github.com/c20246070camasis-tech/camasis1/blob/main/public/index.php"
click node_bootstrap "https://github.com/c20246070camasis-tech/camasis1/blob/main/bootstrap/app.php"
click node_web_routes "https://github.com/c20246070camasis-tech/camasis1/blob/main/routes/web.php"
click node_auth_routes "https://github.com/c20246070camasis-tech/camasis1/blob/main/routes/auth.php"
click node_auth_controller "https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php"
click node_registration_controller "https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Controllers/RegistrationController.php"
click node_attendee_controller "https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Controllers/AttendeeController.php"
click node_workshop_controller "https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Controllers/WorkshopController.php"
click node_venue_controller "https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Controllers/VenueController.php"
click node_registration_service "https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Services/WorkshopRegistrationService.php"
click node_profile_controller "https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Controllers/Settings/ProfileController.php"
click node_user_model "https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Models/User.php"
click node_attendee_model "https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Models/Attendee.php"
click node_workshop_model "https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Models/Workshop.php"
click node_venue_model "https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Models/Venue.php"
click node_registration_model "https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Models/Registration.php"
click node_inertia_middleware "https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Middleware/HandleInertiaRequests.php"
click node_frontend "https://github.com/c20246070camasis-tech/camasis1/blob/main/resources/js/app.tsx"
click node_pages "https://github.com/c20246070camasis-tech/camasis1/tree/main/resources/js/pages"
click node_appearance "https://github.com/c20246070camasis-tech/camasis1/blob/main/resources/js/hooks/use-appearance.tsx"
click node_profile_page "https://github.com/c20246070camasis-tech/camasis1/blob/main/resources/js/pages/settings/profile.tsx"

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_entry,node_bootstrap,node_web_routes,node_inertia_middleware,node_frontend,node_pages,node_appearance,node_user toneBlue
class node_registration_controller,node_attendee_controller,node_workshop_controller,node_venue_controller,node_registration_service toneAmber
class node_auth_routes,node_auth_controller,node_profile_controller,node_profile_page toneMint
class node_user_model,node_attendee_model,node_workshop_model,node_venue_model,node_registration_model toneRose
```

## Components

### Web entry and UI

- [HTTP entry](https://github.com/c20246070camasis-tech/camasis1/blob/main/public/index.php): `public/index.php`
- [App bootstrap](https://github.com/c20246070camasis-tech/camasis1/blob/main/bootstrap/app.php): `bootstrap/app.php`
- [Web routes](https://github.com/c20246070camasis-tech/camasis1/blob/main/routes/web.php): `routes/web.php`
- [Inertia middleware](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Middleware/HandleInertiaRequests.php): `app/Http/Middleware/HandleInertiaRequests.php`
- [React app bootstrap](https://github.com/c20246070camasis-tech/camasis1/blob/main/resources/js/app.tsx): `resources/js/app.tsx`
- [Inertia pages](https://github.com/c20246070camasis-tech/camasis1/tree/main/resources/js/pages): `resources/js/pages`
- [Appearance state](https://github.com/c20246070camasis-tech/camasis1/blob/main/resources/js/hooks/use-appearance.tsx): `resources/js/hooks/use-appearance.tsx`

### Workshop operations

- [Registration management](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Controllers/RegistrationController.php): `app/Http/Controllers/RegistrationController.php`
- [Attendee management](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Controllers/AttendeeController.php): `app/Http/Controllers/AttendeeController.php`
- [Workshop management](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Controllers/WorkshopController.php): `app/Http/Controllers/WorkshopController.php`
- [Venue management](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Controllers/VenueController.php): `app/Http/Controllers/VenueController.php`
- [Registration service](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Services/WorkshopRegistrationService.php): `app/Services/WorkshopRegistrationService.php`

### Accounts and settings

- [Auth routes](https://github.com/c20246070camasis-tech/camasis1/blob/main/routes/auth.php): `routes/auth.php`
- [Authentication](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php): `app/Http/Controllers/Auth/AuthenticatedSessionController.php`
- [Profile settings](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Http/Controllers/Settings/ProfileController.php): `app/Http/Controllers/Settings/ProfileController.php`
- [Profile page](https://github.com/c20246070camasis-tech/camasis1/blob/main/resources/js/pages/settings/profile.tsx): `resources/js/pages/settings/profile.tsx`

### Domain models

- [User account](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Models/User.php): `app/Models/User.php`
- [Attendee](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Models/Attendee.php): `app/Models/Attendee.php`
- [Workshop](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Models/Workshop.php): `app/Models/Workshop.php`
- [Venue](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Models/Venue.php): `app/Models/Venue.php`
- [Registration](https://github.com/c20246070camasis-tech/camasis1/blob/main/app/Models/Registration.php): `app/Models/Registration.php`

### Other components

- **User**

## Connections

- User → HTTP entry: sends requests
- HTTP entry → App bootstrap: starts app (evidence: `public/index.php`)
- App bootstrap → Inertia middleware: registers middleware (evidence: `bootstrap/app.php`)
- Auth routes → Authentication: routes requests (evidence: `routes/auth.php`)
- Authentication → User account: creates account
- Profile settings → Profile page: renders page (evidence: `app/Http/Controllers/Settings/ProfileController.php`)
- React app bootstrap → Inertia pages: resolves pages (evidence: `resources/js/app.tsx`)
- React app bootstrap → Appearance state: initializes theme (evidence: `resources/js/app.tsx`)
- Registration management → Attendee: reads attendee (evidence: `app/Http/Controllers/RegistrationController.php`)
- Registration management → Workshop: reads workshop (evidence: `app/Http/Controllers/RegistrationController.php`)
- Registration management → Registration: creates registration (evidence: `app/Http/Controllers/RegistrationController.php`)
- Attendee → Registration: has registrations (evidence: `app/Models/Attendee.php`)
- Workshop → Registration: has registrations (evidence: `app/Models/Workshop.php`)
- Registration → Attendee: belongs to (evidence: `app/Models/Registration.php`)
- Registration → Workshop: belongs to (evidence: `app/Models/Registration.php`)
- Attendee management → Attendee: uses model (evidence: `app/Http/Controllers/AttendeeController.php`)
- Workshop management → Workshop: uses model (evidence: `app/Http/Controllers/WorkshopController.php`)
- Venue management → Venue: uses model (evidence: `app/Http/Controllers/VenueController.php`)
- Web routes → Registration management: dispatches requests
- Web routes → Attendee management: dispatches requests
- Web routes → Workshop management: dispatches requests
- Web routes → Venue management: dispatches requests
- Registration service → Registration: uses model (evidence: `app/Services/WorkshopRegistrationService.php`)
