# deanskiedoo/profanity-filter architecture

> Architecture diagram of the GitHub repository deanskiedoo/profanity-filter, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-01). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/deanskiedoo/profanity-filter
- Repository: https://github.com/deanskiedoo/profanity-filter

## Overview

This is a Laravel/Inertia starter application, despite the repository name; the supplied files show no profanity-filter implementation. The main workflow is browser requests routed into authentication or profile controllers, which validate and update users, then render React pages through Inertia. Registration, login, email verification, account/profile management, and the dashboard form the product surface. The graph includes only source-supported links; several routes and page components are indexed but unsampled, so their internal behavior is not inferred.

Main entry points: [`routes/auth.php`](https://github.com/deanskiedoo/profanity-filter/blob/master/routes/auth.php) (Auth routes), [`app/Http/Controllers/ProfileController.php`](https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Controllers/ProfileController.php) (Profile management), [`routes/web.php`](https://github.com/deanskiedoo/profanity-filter/blob/master/routes/web.php) (Web routes), [`app/Models/User.php`](https://github.com/deanskiedoo/profanity-filter/blob/master/app/Models/User.php) (User account model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routing["HTTP routing"]
  node_web_routes["Web routes<br/>[web.php]"]
  node_auth_routes["Auth routes<br/>[auth.php]"]
end

subgraph group_server["Laravel application"]
  node_bootstrap["App bootstrap<br/>[app.php]"]
  node_inertia_middleware["Inertia middleware"]
  node_registration["Registration"]
  node_sessions["Login sessions"]
  node_login_validation["Login validation<br/>[LoginRequest.php]"]
  node_email_notify["Verification notices"]
  node_email_prompt["Verification prompt"]
  node_email_verify["Email verification"]
  node_profiles["Profile management"]
  node_profile_validation["Profile validation"]
  node_user_model["User account model<br/>[User.php]"]
end

subgraph group_client["Inertia client"]
  node_inertia_app["Inertia app entry<br/>[app.jsx]"]
  node_auth_pages["Auth pages"]
  node_dashboard["Dashboard<br/>[Dashboard.jsx]"]
  node_profile_page["Profile editor<br/>[Edit.jsx]"]
  node_profile_forms["Profile forms"]
end

node_visitor(("Browser user"))

node_visitor -->|"requests"| node_web_routes
node_visitor -->|"requests"| node_auth_routes
node_web_routes -->|"dispatches"| node_profiles
node_web_routes -->|"loads routes"| node_auth_routes
node_auth_routes -->|"dispatches"| node_registration
node_auth_routes -->|"dispatches"| node_sessions
node_auth_routes -->|"dispatches"| node_email_notify
node_auth_routes -->|"dispatches"| node_email_prompt
node_auth_routes -->|"dispatches"| node_email_verify
node_bootstrap -->|"loads routes"| node_web_routes
node_bootstrap -->|"registers"| node_inertia_middleware
node_sessions -->|"authenticates with"| node_login_validation
node_sessions -->|"renders login"| node_auth_pages
node_registration -->|"creates account"| node_user_model
node_registration -->|"renders registration"| node_auth_pages
node_email_verify -->|"marks verified"| node_user_model
node_email_notify -->|"sends notice"| node_user_model
node_profiles -->|"validates with"| node_profile_validation
node_profiles -->|"updates account"| node_user_model
node_profiles -->|"renders"| node_profile_page
node_inertia_app -->|"resolves pages"| node_auth_pages
node_inertia_app -->|"resolves pages"| node_dashboard
node_inertia_app -->|"resolves pages"| node_profile_page
node_profile_page -->|"renders forms"| node_profile_forms

click node_web_routes "https://github.com/deanskiedoo/profanity-filter/blob/master/routes/web.php"
click node_auth_routes "https://github.com/deanskiedoo/profanity-filter/blob/master/routes/auth.php"
click node_bootstrap "https://github.com/deanskiedoo/profanity-filter/blob/master/bootstrap/app.php"
click node_inertia_middleware "https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Middleware/HandleInertiaRequests.php"
click node_registration "https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Controllers/Auth/RegisteredUserController.php"
click node_sessions "https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Controllers/Auth/AuthenticatedSessionController.php"
click node_login_validation "https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Requests/Auth/LoginRequest.php"
click node_email_notify "https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Controllers/Auth/EmailVerificationNotificationController.php"
click node_email_prompt "https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Controllers/Auth/EmailVerificationPromptController.php"
click node_email_verify "https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Controllers/Auth/VerifyEmailController.php"
click node_profiles "https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Controllers/ProfileController.php"
click node_profile_validation "https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Requests/ProfileUpdateRequest.php"
click node_user_model "https://github.com/deanskiedoo/profanity-filter/blob/master/app/Models/User.php"
click node_inertia_app "https://github.com/deanskiedoo/profanity-filter/blob/master/resources/js/app.jsx"
click node_auth_pages "https://github.com/deanskiedoo/profanity-filter/tree/master/resources/js/Pages/Auth"
click node_dashboard "https://github.com/deanskiedoo/profanity-filter/blob/master/resources/js/Pages/Dashboard.jsx"
click node_profile_page "https://github.com/deanskiedoo/profanity-filter/blob/master/resources/js/Pages/Profile/Edit.jsx"
click node_profile_forms "https://github.com/deanskiedoo/profanity-filter/tree/master/resources/js/Pages/Profile/Partials"

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_web_routes,node_auth_routes,node_visitor toneBlue
class node_bootstrap,node_inertia_middleware,node_registration,node_sessions,node_login_validation,node_email_notify,node_email_prompt,node_email_verify,node_profiles,node_profile_validation,node_user_model toneAmber
class node_inertia_app,node_auth_pages,node_dashboard,node_profile_page,node_profile_forms toneMint
```

## Components

### HTTP routing

- [Web routes](https://github.com/deanskiedoo/profanity-filter/blob/master/routes/web.php): `routes/web.php`
- [Auth routes](https://github.com/deanskiedoo/profanity-filter/blob/master/routes/auth.php): `routes/auth.php`

### Laravel application

- [App bootstrap](https://github.com/deanskiedoo/profanity-filter/blob/master/bootstrap/app.php): `bootstrap/app.php`
- [Inertia middleware](https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Middleware/HandleInertiaRequests.php): `app/Http/Middleware/HandleInertiaRequests.php`
- [Registration](https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Controllers/Auth/RegisteredUserController.php): `app/Http/Controllers/Auth/RegisteredUserController.php`
- [Login sessions](https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Controllers/Auth/AuthenticatedSessionController.php): `app/Http/Controllers/Auth/AuthenticatedSessionController.php`
- [Login validation](https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Requests/Auth/LoginRequest.php): `app/Http/Requests/Auth/LoginRequest.php`
- [Verification notices](https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Controllers/Auth/EmailVerificationNotificationController.php): `app/Http/Controllers/Auth/EmailVerificationNotificationController.php`
- [Verification prompt](https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Controllers/Auth/EmailVerificationPromptController.php): `app/Http/Controllers/Auth/EmailVerificationPromptController.php`
- [Email verification](https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Controllers/Auth/VerifyEmailController.php): `app/Http/Controllers/Auth/VerifyEmailController.php`
- [Profile management](https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Controllers/ProfileController.php): `app/Http/Controllers/ProfileController.php`
- [Profile validation](https://github.com/deanskiedoo/profanity-filter/blob/master/app/Http/Requests/ProfileUpdateRequest.php): `app/Http/Requests/ProfileUpdateRequest.php`
- [User account model](https://github.com/deanskiedoo/profanity-filter/blob/master/app/Models/User.php): `app/Models/User.php`

### Inertia client

- [Inertia app entry](https://github.com/deanskiedoo/profanity-filter/blob/master/resources/js/app.jsx): `resources/js/app.jsx`
- [Auth pages](https://github.com/deanskiedoo/profanity-filter/tree/master/resources/js/Pages/Auth): `resources/js/Pages/Auth`
- [Dashboard](https://github.com/deanskiedoo/profanity-filter/blob/master/resources/js/Pages/Dashboard.jsx): `resources/js/Pages/Dashboard.jsx`
- [Profile editor](https://github.com/deanskiedoo/profanity-filter/blob/master/resources/js/Pages/Profile/Edit.jsx): `resources/js/Pages/Profile/Edit.jsx`
- [Profile forms](https://github.com/deanskiedoo/profanity-filter/tree/master/resources/js/Pages/Profile/Partials): `resources/js/Pages/Profile/Partials`

### Other components

- **Browser user**

## Connections

- Browser user → Web routes: requests (evidence: `routes/web.php`)
- Browser user → Auth routes: requests (evidence: `routes/auth.php`)
- Web routes → Profile management: dispatches (evidence: `routes/web.php`)
- Web routes → Auth routes: loads routes (evidence: `routes/web.php`)
- Auth routes → Registration: dispatches (evidence: `routes/auth.php`)
- Auth routes → Login sessions: dispatches (evidence: `routes/auth.php`)
- Auth routes → Verification notices: dispatches (evidence: `routes/auth.php`)
- Auth routes → Verification prompt: dispatches (evidence: `routes/auth.php`)
- Auth routes → Email verification: dispatches (evidence: `routes/auth.php`)
- App bootstrap → Web routes: loads routes (evidence: `bootstrap/app.php`)
- App bootstrap → Inertia middleware: registers (evidence: `bootstrap/app.php`)
- Login sessions → Login validation: authenticates with (evidence: `app/Http/Controllers/Auth/AuthenticatedSessionController.php`)
- Login sessions → Auth pages: renders login (evidence: `app/Http/Controllers/Auth/AuthenticatedSessionController.php`)
- Registration → User account model: creates account (evidence: `app/Http/Controllers/Auth/RegisteredUserController.php`)
- Registration → Auth pages: renders registration (evidence: `app/Http/Controllers/Auth/RegisteredUserController.php`)
- Email verification → User account model: marks verified (evidence: `app/Http/Controllers/Auth/VerifyEmailController.php`)
- Verification notices → User account model: sends notice (evidence: `app/Http/Controllers/Auth/EmailVerificationNotificationController.php`)
- Profile management → Profile validation: validates with (evidence: `app/Http/Controllers/ProfileController.php`)
- Profile management → User account model: updates account (evidence: `app/Http/Controllers/ProfileController.php`)
- Profile management → Profile editor: renders (evidence: `app/Http/Controllers/ProfileController.php`)
- Inertia app entry → Auth pages: resolves pages (evidence: `resources/js/app.jsx`)
- Inertia app entry → Dashboard: resolves pages (evidence: `resources/js/app.jsx`)
- Inertia app entry → Profile editor: resolves pages (evidence: `resources/js/app.jsx`)
- Profile editor → Profile forms: renders forms (evidence: `resources/js/Pages/Profile/Edit.jsx`)
