# dodisurya17/his-hpv architecture

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

- Interactive diagram: https://gitdiagram.com/dodisurya17/his-hpv
- Repository: https://github.com/dodisurya17/his-hpv

## Overview

This is a Laravel web application for presenting HPV information and educational media, hosting answered discussions, and providing authenticated profile and administration workflows. Public requests enter through Laravel’s web routing; controllers gather or update domain data and render Blade views. Admin functions manage content blocks, media, discussions, and users. The sampled source confirms the home, registration, login, profile, and media-management interactions; other controller and route relationships are represented only where the tree supports their subsystem paths.

Main entry points: [`routes/web.php`](https://github.com/dodisurya17/his-hpv/blob/main/routes/web.php) (Web routes), [`routes/admin.php`](https://github.com/dodisurya17/his-hpv/blob/main/routes/admin.php) (Admin routes), [`app/Http/Controllers/HomeController.php`](https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/HomeController.php) (Public home), [`app/Http/Controllers/Auth/RegisteredUserController.php`](https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php) (Registration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public experience"]
  node_web_routes["Web routes<br/>[web.php]"]
  node_home["Public home<br/>[HomeController.php]"]
  node_public_views["Public pages<br/>[welcome.blade.php]"]
  node_public_discussion["Discussion pages"]
end

subgraph group_identity["Identity and profile"]
  node_auth["Authentication"]
  node_registration["Registration"]
  node_profile["Profile management"]
  node_auth_views["Auth pages<br/>[login.blade.php]"]
  node_profile_views["Profile page<br/>[edit.blade.php]"]
end

subgraph group_admin["Administration"]
  node_admin_routes["Admin routes<br/>[admin.php]"]
  node_admin_content["Content management"]
  node_admin_discussion["Discussion moderation"]
  node_admin_media["Media management"]
  node_admin_users["User management<br/>[UserController.php]"]
  node_admin_dashboard["Admin dashboard"]
  node_admin_views["Admin pages"]
end

subgraph group_domain["Domain data"]
  node_content_data[("Content blocks<br/>[ContentBlock.php]")]
  node_discussion_data[("Discussions<br/>[Discussion.php]")]
  node_media_data[("Education media<br/>[MediaEducation.php]")]
  node_users[("User accounts<br/>[User.php]")]
end

node_visitor(("Visitor"))
node_admin_actor(("Administrator"))
node_entry["HTTP entry<br/>[index.php]"]
node_bootstrap["Laravel bootstrap<br/>[app.php]"]
node_file_storage[("Public file storage")]

node_visitor -->|"sends request"| node_entry
node_admin_actor -->|"sends request"| node_entry
node_entry -->|"handles request"| node_bootstrap
node_bootstrap -->|"loads routes"| node_web_routes
node_web_routes -->|"dispatches"| node_home
node_home -->|"reads"| node_content_data
node_home -->|"reads"| node_media_data
node_home -->|"reads"| node_discussion_data
node_home -->|"renders"| node_public_views
node_web_routes -->|"dispatches"| node_public_discussion
node_public_discussion -->|"uses"| node_discussion_data
node_web_routes -->|"includes"| node_admin_routes
node_admin_routes -->|"dispatches"| node_admin_content
node_admin_routes -->|"dispatches"| node_admin_discussion
node_admin_routes -->|"dispatches"| node_admin_media
node_admin_routes -->|"dispatches"| node_admin_users
node_admin_routes -->|"dispatches"| node_admin_dashboard
node_admin_content -->|"manages"| node_content_data
node_admin_discussion -->|"manages"| node_discussion_data
node_admin_media -->|"manages"| node_media_data
node_admin_media -->|"stores files"| node_file_storage
node_admin_users -->|"manages"| node_users
node_admin_dashboard -->|"renders"| node_admin_views
node_web_routes -->|"dispatches"| node_auth
node_web_routes -->|"dispatches"| node_registration
node_web_routes -->|"dispatches"| node_profile
node_auth -->|"renders"| node_auth_views
node_registration -->|"renders"| node_auth_views
node_registration -->|"creates account"| node_users
node_profile -->|"updates account"| node_users
node_profile -->|"renders"| node_profile_views

click node_entry "https://github.com/dodisurya17/his-hpv/blob/main/public/index.php"
click node_bootstrap "https://github.com/dodisurya17/his-hpv/blob/main/bootstrap/app.php"
click node_web_routes "https://github.com/dodisurya17/his-hpv/blob/main/routes/web.php"
click node_home "https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/HomeController.php"
click node_public_views "https://github.com/dodisurya17/his-hpv/blob/main/resources/views/welcome.blade.php"
click node_public_discussion "https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/DiscussionPublicController.php"
click node_admin_routes "https://github.com/dodisurya17/his-hpv/blob/main/routes/admin.php"
click node_admin_content "https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Admin/ContentBlockController.php"
click node_admin_discussion "https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Admin/DiscussionController.php"
click node_admin_media "https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Admin/MediaEducationController.php"
click node_admin_users "https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Admin/UserController.php"
click node_admin_dashboard "https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Admin/DashboardController.php"
click node_admin_views "https://github.com/dodisurya17/his-hpv/blob/main/resources/views/admin/dashboard.blade.php"
click node_auth "https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php"
click node_registration "https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php"
click node_profile "https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/ProfileController.php"
click node_auth_views "https://github.com/dodisurya17/his-hpv/blob/main/resources/views/auth/login.blade.php"
click node_profile_views "https://github.com/dodisurya17/his-hpv/blob/main/resources/views/profile/edit.blade.php"
click node_content_data "https://github.com/dodisurya17/his-hpv/blob/main/app/Models/ContentBlock.php"
click node_discussion_data "https://github.com/dodisurya17/his-hpv/blob/main/app/Models/Discussion.php"
click node_media_data "https://github.com/dodisurya17/his-hpv/blob/main/app/Models/MediaEducation.php"
click node_users "https://github.com/dodisurya17/his-hpv/blob/main/app/Models/User.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_web_routes,node_home,node_public_views,node_public_discussion toneBlue
class node_auth,node_registration,node_profile,node_auth_views,node_profile_views,node_file_storage toneAmber
class node_admin_routes,node_admin_content,node_admin_discussion,node_admin_media,node_admin_users,node_admin_dashboard,node_admin_views toneMint
class node_content_data,node_discussion_data,node_media_data,node_users toneRose
class node_visitor,node_admin_actor toneIndigo
class node_entry,node_bootstrap toneTeal
```

## Components

### Public experience

- [Web routes](https://github.com/dodisurya17/his-hpv/blob/main/routes/web.php): `routes/web.php`
- [Public home](https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/HomeController.php): `app/Http/Controllers/HomeController.php`
- [Public pages](https://github.com/dodisurya17/his-hpv/blob/main/resources/views/welcome.blade.php): `resources/views/welcome.blade.php`
- [Discussion pages](https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/DiscussionPublicController.php): `app/Http/Controllers/DiscussionPublicController.php`

### Identity and profile

- [Authentication](https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php): `app/Http/Controllers/Auth/AuthenticatedSessionController.php`
- [Registration](https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php): `app/Http/Controllers/Auth/RegisteredUserController.php`
- [Profile management](https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/ProfileController.php): `app/Http/Controllers/ProfileController.php`
- [Auth pages](https://github.com/dodisurya17/his-hpv/blob/main/resources/views/auth/login.blade.php): `resources/views/auth/login.blade.php`
- [Profile page](https://github.com/dodisurya17/his-hpv/blob/main/resources/views/profile/edit.blade.php): `resources/views/profile/edit.blade.php`

### Administration

- [Admin routes](https://github.com/dodisurya17/his-hpv/blob/main/routes/admin.php): `routes/admin.php`
- [Content management](https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Admin/ContentBlockController.php): `app/Http/Controllers/Admin/ContentBlockController.php`
- [Discussion moderation](https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Admin/DiscussionController.php): `app/Http/Controllers/Admin/DiscussionController.php`
- [Media management](https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Admin/MediaEducationController.php): `app/Http/Controllers/Admin/MediaEducationController.php`
- [User management](https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Admin/UserController.php): `app/Http/Controllers/Admin/UserController.php`
- [Admin dashboard](https://github.com/dodisurya17/his-hpv/blob/main/app/Http/Controllers/Admin/DashboardController.php): `app/Http/Controllers/Admin/DashboardController.php`
- [Admin pages](https://github.com/dodisurya17/his-hpv/blob/main/resources/views/admin/dashboard.blade.php): `resources/views/admin/dashboard.blade.php`

### Domain data

- [Content blocks](https://github.com/dodisurya17/his-hpv/blob/main/app/Models/ContentBlock.php): `app/Models/ContentBlock.php`
- [Discussions](https://github.com/dodisurya17/his-hpv/blob/main/app/Models/Discussion.php): `app/Models/Discussion.php`
- [Education media](https://github.com/dodisurya17/his-hpv/blob/main/app/Models/MediaEducation.php): `app/Models/MediaEducation.php`
- [User accounts](https://github.com/dodisurya17/his-hpv/blob/main/app/Models/User.php): `app/Models/User.php`

### Other components

- **Visitor**
- **Administrator**
- [HTTP entry](https://github.com/dodisurya17/his-hpv/blob/main/public/index.php): `public/index.php`
- [Laravel bootstrap](https://github.com/dodisurya17/his-hpv/blob/main/bootstrap/app.php): `bootstrap/app.php`
- **Public file storage**

## Connections

- Visitor → HTTP entry: sends request
- Administrator → HTTP entry: sends request
- HTTP entry → Laravel bootstrap: handles request
- Laravel bootstrap → Web routes: loads routes
- Web routes → Public home: dispatches
- Public home → Content blocks: reads
- Public home → Education media: reads
- Public home → Discussions: reads
- Public home → Public pages: renders
- Web routes → Discussion pages: dispatches
- Discussion pages → Discussions: uses
- Web routes → Admin routes: includes
- Admin routes → Content management: dispatches
- Admin routes → Discussion moderation: dispatches
- Admin routes → Media management: dispatches
- Admin routes → User management: dispatches
- Admin routes → Admin dashboard: dispatches
- Content management → Content blocks: manages
- Discussion moderation → Discussions: manages
- Media management → Education media: manages
- Media management → Public file storage: stores files
- User management → User accounts: manages
- Admin dashboard → Admin pages: renders
- Web routes → Authentication: dispatches
- Web routes → Registration: dispatches
- Web routes → Profile management: dispatches
- Authentication → Auth pages: renders
- Registration → Auth pages: renders
- Registration → User accounts: creates account
- Profile management → User accounts: updates account
- Profile management → Profile page: renders
