# jtech07/pitchlab_dokun architecture

> Architecture diagram of the GitHub repository jtech07/pitchlab_dokun, 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/jtech07/pitchlab_dokun
- Repository: https://github.com/jtech07/pitchlab_dokun

## Overview

ƉƆKUN is a Porto-Novo cultural discovery and experience-booking platform. Visitors explore artisans, heritage, maps and experiences, then submit reservations; artisans handle requests in their workshop space, with payment and follow-up through completion and reviews. Separate features support learning, play, cultural moments, audio and translated Bridge conversations. Administrators manage listings and moderate contributions. The README documents the main booking and role workflows; controller excerpts additionally support FedaPay and review behavior. Other feature wiring is based on the documented capabilities and available paths, not inspected source.

Main entry points: [`routes/web.php`](https://github.com/jtech07/pitchlab_dokun/blob/main/routes/web.php) (Web Routes), [`app/Http/Controllers/PaymentController.php`](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/PaymentController.php) (Payment Handling), [`app/Http/Controllers/ReviewController.php`](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/ReviewController.php) (Reviews), [`app/Http/Controllers/Api/PitchlabFeaturesController.php`](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/Api/PitchlabFeaturesController.php) (Bridge and Voice)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_discovery["Explore Heritage"]
  node_discovery_pages["Discovery Pages<br/>[HomeController.php]"]
  node_artisan_catalog["Artisan Directory"]
  node_experience_catalog["Experience Catalog"]
  node_heritage_catalog["Savoir-Faire Catalog"]
  node_map["Heritage Map<br/>[MapController.php]"]
end

subgraph group_booking["Reservations"]
  node_reservation["Reservation Requests"]
  node_payment["Payment Handling"]
  node_artisan_space["Workshop Space"]
  node_reviews["Reviews"]
end

subgraph group_learning["Culture Features"]
  node_learn["Learn"]
  node_play["Play<br/>[PlayController.php]"]
  node_moments["Moments"]
  node_passport["Visitor Passport"]
  node_bridge_voice["Bridge and Voice"]
  node_loyalty["Loyalty Service<br/>[LoyaltyService.php]"]
end

subgraph group_operations["Platform Operations"]
  node_web_routes["Web Routes<br/>[web.php]"]
  node_reservation_admin["Reservation Admin"]
  node_registration["Registration"]
  node_applications["Artisan Applications"]
  node_artisan_admin["Artisan Management"]
end

node_visitor(("Visitor"))
node_artisan_actor(("Artisan"))
node_admin_actor(("Administrator"))
node_fedapay{{"FedaPay"}}
node_gemini{{"Gemini API"}}

node_visitor -->|"requests pages"| node_web_routes
node_web_routes -->|"dispatches"| node_discovery_pages
node_web_routes -->|"dispatches"| node_artisan_catalog
node_web_routes -->|"dispatches"| node_experience_catalog
node_web_routes -->|"dispatches"| node_heritage_catalog
node_web_routes -->|"dispatches"| node_map
node_web_routes -->|"dispatches"| node_reservation
node_web_routes -->|"dispatches"| node_payment
node_web_routes -->|"dispatches"| node_reviews
node_web_routes -->|"dispatches"| node_learn
node_web_routes -->|"dispatches"| node_play
node_web_routes -->|"dispatches"| node_moments
node_web_routes -->|"dispatches"| node_passport
node_web_routes -->|"dispatches"| node_bridge_voice
node_artisan_actor -->|"requests workshop"| node_web_routes
node_web_routes -->|"dispatches"| node_artisan_space
node_admin_actor -->|"requests admin"| node_web_routes
node_web_routes -->|"dispatches"| node_reservation_admin
node_web_routes -->|"dispatches"| node_artisan_admin
node_web_routes -->|"dispatches"| node_registration
node_web_routes -->|"dispatches"| node_applications
node_payment -->|"creates transaction"| node_fedapay
node_payment -->|"records pending payment"| node_reservation
node_reviews -->|"awards points"| node_loyalty
node_bridge_voice -.->|"translates text"| node_gemini

click node_web_routes "https://github.com/jtech07/pitchlab_dokun/blob/main/routes/web.php"
click node_discovery_pages "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/HomeController.php"
click node_artisan_catalog "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/ArtisanPublicController.php"
click node_experience_catalog "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/ExperienceController.php"
click node_heritage_catalog "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/SavoirFairePublicController.php"
click node_map "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/MapController.php"
click node_reservation "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/ReservationController.php"
click node_payment "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/PaymentController.php"
click node_artisan_space "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/ArtisanSpaceController.php"
click node_reservation_admin "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/Admin/ReservationAdminController.php"
click node_reviews "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/ReviewController.php"
click node_registration "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php"
click node_applications "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/ArtisanApplicationController.php"
click node_artisan_admin "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/Admin/ArtisanAdminController.php"
click node_learn "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/LearnController.php"
click node_play "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/PlayController.php"
click node_moments "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/MomentController.php"
click node_passport "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/VisitorController.php"
click node_bridge_voice "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/Api/PitchlabFeaturesController.php"
click node_loyalty "https://github.com/jtech07/pitchlab_dokun/blob/main/app/Services/LoyaltyService.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_discovery_pages,node_artisan_catalog,node_experience_catalog,node_heritage_catalog,node_map toneBlue
class node_reservation,node_payment,node_artisan_space,node_reviews toneAmber
class node_learn,node_play,node_moments,node_passport,node_bridge_voice,node_loyalty,node_gemini toneMint
class node_web_routes,node_reservation_admin,node_registration,node_applications,node_artisan_admin toneRose
class node_visitor,node_artisan_actor,node_admin_actor,node_fedapay toneIndigo
```

## Components

### Explore Heritage

- [Discovery Pages](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/HomeController.php): `app/Http/Controllers/HomeController.php`
- [Artisan Directory](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/ArtisanPublicController.php): `app/Http/Controllers/ArtisanPublicController.php`
- [Experience Catalog](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/ExperienceController.php): `app/Http/Controllers/ExperienceController.php`
- [Savoir-Faire Catalog](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/SavoirFairePublicController.php): `app/Http/Controllers/SavoirFairePublicController.php`
- [Heritage Map](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/MapController.php): `app/Http/Controllers/MapController.php`

### Reservations

- [Reservation Requests](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/ReservationController.php): `app/Http/Controllers/ReservationController.php`
- [Payment Handling](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/PaymentController.php): `app/Http/Controllers/PaymentController.php`
- [Workshop Space](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/ArtisanSpaceController.php): `app/Http/Controllers/ArtisanSpaceController.php`
- [Reviews](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/ReviewController.php): `app/Http/Controllers/ReviewController.php`

### Culture Features

- [Learn](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/LearnController.php): `app/Http/Controllers/LearnController.php`
- [Play](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/PlayController.php): `app/Http/Controllers/PlayController.php`
- [Moments](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/MomentController.php): `app/Http/Controllers/MomentController.php`
- [Visitor Passport](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/VisitorController.php): `app/Http/Controllers/VisitorController.php`
- [Bridge and Voice](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/Api/PitchlabFeaturesController.php): `app/Http/Controllers/Api/PitchlabFeaturesController.php`
- [Loyalty Service](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Services/LoyaltyService.php): `app/Services/LoyaltyService.php`

### Platform Operations

- [Web Routes](https://github.com/jtech07/pitchlab_dokun/blob/main/routes/web.php): `routes/web.php`
- [Reservation Admin](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/Admin/ReservationAdminController.php): `app/Http/Controllers/Admin/ReservationAdminController.php`
- [Registration](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php): `app/Http/Controllers/Auth/RegisteredUserController.php`
- [Artisan Applications](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/ArtisanApplicationController.php): `app/Http/Controllers/ArtisanApplicationController.php`
- [Artisan Management](https://github.com/jtech07/pitchlab_dokun/blob/main/app/Http/Controllers/Admin/ArtisanAdminController.php): `app/Http/Controllers/Admin/ArtisanAdminController.php`

### Other components

- **Visitor**
- **Artisan**
- **Administrator**
- **FedaPay**
- **Gemini API**

## Connections

- Visitor → Web Routes: requests pages
- Web Routes → Discovery Pages: dispatches
- Web Routes → Artisan Directory: dispatches
- Web Routes → Experience Catalog: dispatches
- Web Routes → Savoir-Faire Catalog: dispatches
- Web Routes → Heritage Map: dispatches
- Web Routes → Reservation Requests: dispatches
- Web Routes → Payment Handling: dispatches
- Web Routes → Reviews: dispatches
- Web Routes → Learn: dispatches
- Web Routes → Play: dispatches
- Web Routes → Moments: dispatches
- Web Routes → Visitor Passport: dispatches
- Web Routes → Bridge and Voice: dispatches
- Artisan → Web Routes: requests workshop
- Web Routes → Workshop Space: dispatches
- Administrator → Web Routes: requests admin
- Web Routes → Reservation Admin: dispatches
- Web Routes → Artisan Management: dispatches
- Web Routes → Registration: dispatches
- Web Routes → Artisan Applications: dispatches
- Payment Handling → FedaPay: creates transaction
- Payment Handling → Reservation Requests: records pending payment
- Reviews → Loyalty Service: awards points
- Bridge and Voice → Gemini API: translates text
