# danielfranco0812/infliction-gym architecture

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

- Interactive diagram: https://gitdiagram.com/danielfranco0812/infliction-gym
- Repository: https://github.com/danielfranco0812/infliction-gym

## Overview

Infliction Gym is a Laravel gym website spanning public membership information, account and member services, coach schedules, support chat, and paid membership checkout. Visitors browse gym information or register and sign in; members can view their dashboard, manage profiles, and purchase membership or FITPASS, with payment activation confirmed by webhook. Chat has a separate message-and-response flow. The README documents schedules and public membership capabilities, but their implementation details were not sampled, so only documented components and conservative links are shown.

Main entry points: [`routes/web.php`](https://github.com/danielfranco0812/infliction-gym/blob/main/routes/web.php) (Web Routes), [`app/Http/Controllers/MembershipController.php`](https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/MembershipController.php) (Membership Checkout), [`config/database.php`](https://github.com/danielfranco0812/infliction-gym/blob/main/config/database.php) (Application Database), [`app/Http/Controllers/ChatController.php`](https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/ChatController.php) (Chat Handling)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web Experience"]
  node_laravel["HTTP Entry<br/>[index.php]"]
  node_routing["Web Routes<br/>[web.php]"]
  node_public_info["Public Gym Info<br/>[welcome.blade.php]"]
  node_class_schedule["Coach Schedules<br/>[index.blade.php]"]
  node_admin["Admin Dashboard"]
  node_coach_data["Coach Schedule Data<br/>[CoachSchedule.php]"]
end

subgraph group_accounts["Accounts and Membership"]
  node_auth_routes["Auth Routes<br/>[auth.php]"]
  node_registration["Registration"]
  node_login["Sign In"]
  node_profile["Member Profile"]
  node_dashboard["Member Dashboard"]
  node_user_model["User Records<br/>[User.php]"]
end

subgraph group_support["Support Chat"]
  node_chat_ui["Chat Interface<br/>[app.blade.php]"]
  node_chat_controller["Chat Handling<br/>[ChatController.php]"]
  node_chat_data["Chat Messages<br/>[ChatMessage.php]"]
end

subgraph group_payments["Payment Processing"]
  node_membership["Membership Checkout"]
  node_payment_model["Payment Records"]
end

node_visitor(("Visitor or Member"))
node_database[("Application Database<br/>[database.php]")]
node_groq{{"Groq API"}}
node_paymongo{{"PayMongo"}}

node_visitor -->|"sends requests"| node_laravel
node_laravel -->|"dispatches"| node_routing
node_routing -->|"serves pages"| node_public_info
node_routing -->|"serves schedules"| node_class_schedule
node_routing -->|"dispatches admin"| node_admin
node_routing -->|"loads auth routes"| node_auth_routes
node_auth_routes -->|"dispatches registration"| node_registration
node_auth_routes -->|"dispatches sign-in"| node_login
node_routing -->|"dispatches profile"| node_profile
node_routing -->|"dispatches checkout"| node_membership
node_registration -->|"creates user"| node_user_model
node_login -->|"authenticates user"| node_user_model
node_profile -->|"reads and updates"| node_user_model
node_membership -->|"creates payment"| node_payment_model
node_membership -->|"updates membership"| node_user_model
node_membership -.->|"creates checkout"| node_paymongo
node_paymongo -.->|"posts payment webhook"| node_membership
node_routing -->|"serves dashboard"| node_dashboard
node_class_schedule -.->|"presents schedules"| node_coach_data
node_chat_ui -->|"posts messages"| node_chat_controller
node_chat_controller -->|"stores and reads"| node_chat_data
node_chat_controller -.->|"requests response"| node_groq
node_registration -->|"persists account"| node_database
node_login -->|"checks account"| node_database
node_profile -->|"persists profile"| node_database
node_membership -->|"persists payment state"| node_database
node_chat_controller -->|"persists messages"| node_database

click node_laravel "https://github.com/danielfranco0812/infliction-gym/blob/main/public/index.php"
click node_routing "https://github.com/danielfranco0812/infliction-gym/blob/main/routes/web.php"
click node_public_info "https://github.com/danielfranco0812/infliction-gym/blob/main/resources/views/welcome.blade.php"
click node_class_schedule "https://github.com/danielfranco0812/infliction-gym/blob/main/resources/views/classes/index.blade.php"
click node_admin "https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/AdminController.php"
click node_auth_routes "https://github.com/danielfranco0812/infliction-gym/blob/main/routes/auth.php"
click node_registration "https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php"
click node_login "https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php"
click node_profile "https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/ProfileController.php"
click node_membership "https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/MembershipController.php"
click node_dashboard "https://github.com/danielfranco0812/infliction-gym/blob/main/resources/views/dashboard.blade.php"
click node_user_model "https://github.com/danielfranco0812/infliction-gym/blob/main/app/Models/User.php"
click node_payment_model "https://github.com/danielfranco0812/infliction-gym/blob/main/app/Models/MembershipPayment.php"
click node_coach_data "https://github.com/danielfranco0812/infliction-gym/blob/main/app/Models/CoachSchedule.php"
click node_chat_ui "https://github.com/danielfranco0812/infliction-gym/blob/main/resources/views/layouts/app.blade.php"
click node_chat_controller "https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/ChatController.php"
click node_chat_data "https://github.com/danielfranco0812/infliction-gym/blob/main/app/Models/ChatMessage.php"
click node_database "https://github.com/danielfranco0812/infliction-gym/blob/main/config/database.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_laravel,node_routing,node_public_info,node_class_schedule,node_admin,node_coach_data toneBlue
class node_auth_routes,node_registration,node_login,node_profile,node_dashboard,node_user_model,node_database toneAmber
class node_chat_ui,node_chat_controller,node_chat_data,node_groq toneMint
class node_membership,node_payment_model toneRose
class node_visitor,node_paymongo toneIndigo
```

## Components

### Web Experience

- [HTTP Entry](https://github.com/danielfranco0812/infliction-gym/blob/main/public/index.php): `public/index.php`
- [Web Routes](https://github.com/danielfranco0812/infliction-gym/blob/main/routes/web.php): `routes/web.php`
- [Public Gym Info](https://github.com/danielfranco0812/infliction-gym/blob/main/resources/views/welcome.blade.php): `resources/views/welcome.blade.php`
- [Coach Schedules](https://github.com/danielfranco0812/infliction-gym/blob/main/resources/views/classes/index.blade.php): `resources/views/classes/index.blade.php`
- [Admin Dashboard](https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/AdminController.php): `app/Http/Controllers/AdminController.php`
- [Coach Schedule Data](https://github.com/danielfranco0812/infliction-gym/blob/main/app/Models/CoachSchedule.php): `app/Models/CoachSchedule.php`

### Accounts and Membership

- [Auth Routes](https://github.com/danielfranco0812/infliction-gym/blob/main/routes/auth.php): `routes/auth.php`
- [Registration](https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php): `app/Http/Controllers/Auth/RegisteredUserController.php`
- [Sign In](https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php): `app/Http/Controllers/Auth/AuthenticatedSessionController.php`
- [Member Profile](https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/ProfileController.php): `app/Http/Controllers/ProfileController.php`
- [Member Dashboard](https://github.com/danielfranco0812/infliction-gym/blob/main/resources/views/dashboard.blade.php): `resources/views/dashboard.blade.php`
- [User Records](https://github.com/danielfranco0812/infliction-gym/blob/main/app/Models/User.php): `app/Models/User.php`

### Support Chat

- [Chat Interface](https://github.com/danielfranco0812/infliction-gym/blob/main/resources/views/layouts/app.blade.php): `resources/views/layouts/app.blade.php`
- [Chat Handling](https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/ChatController.php): `app/Http/Controllers/ChatController.php`
- [Chat Messages](https://github.com/danielfranco0812/infliction-gym/blob/main/app/Models/ChatMessage.php): `app/Models/ChatMessage.php`

### Payment Processing

- [Membership Checkout](https://github.com/danielfranco0812/infliction-gym/blob/main/app/Http/Controllers/MembershipController.php): `app/Http/Controllers/MembershipController.php`
- [Payment Records](https://github.com/danielfranco0812/infliction-gym/blob/main/app/Models/MembershipPayment.php): `app/Models/MembershipPayment.php`

### Other components

- **Visitor or Member**
- [Application Database](https://github.com/danielfranco0812/infliction-gym/blob/main/config/database.php): `config/database.php`
- **Groq API**
- **PayMongo**

## Connections

- Visitor or Member → HTTP Entry: sends requests
- HTTP Entry → Web Routes: dispatches
- Web Routes → Public Gym Info: serves pages
- Web Routes → Coach Schedules: serves schedules
- Web Routes → Admin Dashboard: dispatches admin
- Web Routes → Auth Routes: loads auth routes
- Auth Routes → Registration: dispatches registration
- Auth Routes → Sign In: dispatches sign-in
- Web Routes → Member Profile: dispatches profile
- Web Routes → Membership Checkout: dispatches checkout
- Registration → User Records: creates user
- Sign In → User Records: authenticates user
- Member Profile → User Records: reads and updates
- Membership Checkout → Payment Records: creates payment
- Membership Checkout → User Records: updates membership
- Membership Checkout → PayMongo: creates checkout
- PayMongo → Membership Checkout: posts payment webhook
- Web Routes → Member Dashboard: serves dashboard
- Coach Schedules → Coach Schedule Data: presents schedules
- Chat Interface → Chat Handling: posts messages
- Chat Handling → Chat Messages: stores and reads
- Chat Handling → Groq API: requests response
- Registration → Application Database: persists account
- Sign In → Application Database: checks account
- Member Profile → Application Database: persists profile
- Membership Checkout → Application Database: persists payment state
- Chat Handling → Application Database: persists messages
