# shadrackkimutai/skillmap architecture

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

- Interactive diagram: https://gitdiagram.com/shadrackkimutai/skillmap
- Repository: https://github.com/shadrackkimutai/skillmap

## Overview

Skillmap is a Laravel marketplace for finding and hiring skilled taskers. Users search verified nearby providers, post job requests, review and accept quotes, then rate completed work; taskers maintain profiles and availability and respond with quotes, while administrators verify providers and manage the service catalog. The README also describes chat, reporting, notifications, and role-based dashboards. Controller internals are only sampled for search, profile, OTP, and specialization management, so other documented feature links are shown at subsystem level rather than as inferred call chains.

Main entry points: [`routes/web.php`](https://github.com/shadrackkimutai/skillmap/blob/master/routes/web.php) (Web and API routes), [`app/Models/JobRequest.php`](https://github.com/shadrackkimutai/skillmap/blob/master/app/Models/JobRequest.php) (Marketplace records), [`app/Http/Controllers/User/QuoteController.php`](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/User/QuoteController.php) (Quote management), [`app/Http/Controllers/Admin/TaskerVerificationController.php`](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Admin/TaskerVerificationController.php) (Tasker verification)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and roles"]
  node_routes["Web and API routes<br/>[web.php]"]
  node_auth["Registration and login"]
  node_otp["Phone OTP verification"]
  node_role_middleware["Role and OTP checks<br/>[CheckRole.php]"]
end

subgraph group_marketplace["Discovery and hiring"]
  node_user_search["Tasker search"]
  node_nearby_api["Nearby taskers API"]
  node_job_requests["Job requests"]
  node_quotes["Quote management"]
  node_ratings["Ratings and reviews"]
  node_chat["Chat threads and messages<br/>[ChatThread.php]"]
end

subgraph group_operations["Tasker operations"]
  node_tasker_profile["Profile and availability"]
  node_tasker_quotes["Tasker quotes"]
  node_notifications["Email notifications"]
end

subgraph group_admin["Platform administration"]
  node_reports["Tasker reports<br/>[TaskerReport.php]"]
  node_admin_dashboard["Platform dashboard"]
  node_verification["Tasker verification"]
  node_catalog["Trades and languages"]
  node_specializations["Specialization management"]
end

subgraph group_data["Domain data"]
  node_domain_store[("Marketplace records<br/>[JobRequest.php]")]
end

node_visitor(("User or tasker"))
node_email["Email delivery"]

node_visitor -->|"requests pages"| node_routes
node_routes -->|"dispatches auth"| node_auth
node_routes -->|"dispatches search"| node_user_search
node_routes -->|"dispatches API"| node_nearby_api
node_routes -->|"dispatches jobs"| node_job_requests
node_routes -->|"dispatches quotes"| node_quotes
node_routes -->|"dispatches ratings"| node_ratings
node_routes -->|"dispatches profile"| node_tasker_profile
node_routes -->|"dispatches quotes"| node_tasker_quotes
node_routes -->|"dispatches admin"| node_admin_dashboard
node_routes -->|"dispatches verification"| node_verification
node_routes -->|"dispatches catalog"| node_catalog
node_routes -->|"dispatches catalog"| node_specializations
node_routes -->|"protects routes"| node_role_middleware
node_auth -->|"stores accounts"| node_domain_store
node_otp -->|"updates phone status"| node_domain_store
node_otp -.->|"sends OTP"| node_email
node_user_search -->|"queries providers"| node_domain_store
node_nearby_api -->|"queries nearby"| node_domain_store
node_job_requests -->|"stores requests"| node_domain_store
node_quotes -->|"manages quotes"| node_domain_store
node_tasker_quotes -->|"manages quotes"| node_domain_store
node_ratings -->|"stores reviews"| node_domain_store
node_tasker_profile -->|"updates profile"| node_domain_store
node_verification -->|"updates verification"| node_domain_store
node_catalog -->|"manages trades"| node_domain_store
node_specializations -->|"manages specializations"| node_domain_store
node_admin_dashboard -->|"reads statistics"| node_domain_store
node_quotes -->|"creates on acceptance"| node_chat
node_quotes -->|"notifies users"| node_notifications
node_verification -->|"notifies taskers"| node_notifications
node_notifications -.->|"delivers notices"| node_email
node_chat -->|"stores conversations"| node_domain_store
node_reports -->|"stores reports"| node_domain_store

click node_routes "https://github.com/shadrackkimutai/skillmap/blob/master/routes/web.php"
click node_auth "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Auth/RegisterController.php"
click node_otp "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Auth/PhoneOTPController.php"
click node_role_middleware "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Middleware/CheckRole.php"
click node_user_search "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/User/SearchController.php"
click node_nearby_api "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Api/NearbyTaskersController.php"
click node_job_requests "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/User/JobRequestController.php"
click node_quotes "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/User/QuoteController.php"
click node_ratings "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/User/RatingController.php"
click node_tasker_profile "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Tasker/ProfileController.php"
click node_tasker_quotes "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Tasker/QuoteController.php"
click node_chat "https://github.com/shadrackkimutai/skillmap/blob/master/app/Models/ChatThread.php"
click node_reports "https://github.com/shadrackkimutai/skillmap/blob/master/app/Models/TaskerReport.php"
click node_admin_dashboard "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Admin/DashboardController.php"
click node_verification "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Admin/TaskerVerificationController.php"
click node_catalog "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Admin/TradeController.php"
click node_specializations "https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Admin/SpecializationController.php"
click node_notifications "https://github.com/shadrackkimutai/skillmap/blob/master/app/Notifications/NewQuoteNotification.php"
click node_domain_store "https://github.com/shadrackkimutai/skillmap/blob/master/app/Models/JobRequest.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_routes,node_auth,node_otp,node_role_middleware toneBlue
class node_user_search,node_nearby_api,node_job_requests,node_quotes,node_ratings,node_chat toneAmber
class node_tasker_profile,node_tasker_quotes,node_notifications toneMint
class node_reports,node_admin_dashboard,node_verification,node_catalog,node_specializations,node_visitor toneRose
class node_domain_store,node_email toneIndigo
```

## Components

### Access and roles

- [Web and API routes](https://github.com/shadrackkimutai/skillmap/blob/master/routes/web.php): `routes/web.php`
- [Registration and login](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Auth/RegisterController.php): `app/Http/Controllers/Auth/RegisterController.php`
- [Phone OTP verification](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Auth/PhoneOTPController.php): `app/Http/Controllers/Auth/PhoneOTPController.php`
- [Role and OTP checks](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Middleware/CheckRole.php): `app/Http/Middleware/CheckRole.php`

### Discovery and hiring

- [Tasker search](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/User/SearchController.php): `app/Http/Controllers/User/SearchController.php`
- [Nearby taskers API](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Api/NearbyTaskersController.php): `app/Http/Controllers/Api/NearbyTaskersController.php`
- [Job requests](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/User/JobRequestController.php): `app/Http/Controllers/User/JobRequestController.php`
- [Quote management](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/User/QuoteController.php): `app/Http/Controllers/User/QuoteController.php`
- [Ratings and reviews](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/User/RatingController.php): `app/Http/Controllers/User/RatingController.php`
- [Chat threads and messages](https://github.com/shadrackkimutai/skillmap/blob/master/app/Models/ChatThread.php): `app/Models/ChatThread.php`

### Tasker operations

- [Profile and availability](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Tasker/ProfileController.php): `app/Http/Controllers/Tasker/ProfileController.php`
- [Tasker quotes](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Tasker/QuoteController.php): `app/Http/Controllers/Tasker/QuoteController.php`
- [Email notifications](https://github.com/shadrackkimutai/skillmap/blob/master/app/Notifications/NewQuoteNotification.php): `app/Notifications/NewQuoteNotification.php`

### Platform administration

- [Tasker reports](https://github.com/shadrackkimutai/skillmap/blob/master/app/Models/TaskerReport.php): `app/Models/TaskerReport.php`
- [Platform dashboard](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Admin/DashboardController.php): `app/Http/Controllers/Admin/DashboardController.php`
- [Tasker verification](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Admin/TaskerVerificationController.php): `app/Http/Controllers/Admin/TaskerVerificationController.php`
- [Trades and languages](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Admin/TradeController.php): `app/Http/Controllers/Admin/TradeController.php`
- [Specialization management](https://github.com/shadrackkimutai/skillmap/blob/master/app/Http/Controllers/Admin/SpecializationController.php): `app/Http/Controllers/Admin/SpecializationController.php`

### Domain data

- [Marketplace records](https://github.com/shadrackkimutai/skillmap/blob/master/app/Models/JobRequest.php): `app/Models/JobRequest.php`

### Other components

- **User or tasker**
- **Email delivery**

## Connections

- User or tasker → Web and API routes: requests pages
- Web and API routes → Registration and login: dispatches auth
- Web and API routes → Tasker search: dispatches search
- Web and API routes → Nearby taskers API: dispatches API
- Web and API routes → Job requests: dispatches jobs
- Web and API routes → Quote management: dispatches quotes
- Web and API routes → Ratings and reviews: dispatches ratings
- Web and API routes → Profile and availability: dispatches profile
- Web and API routes → Tasker quotes: dispatches quotes
- Web and API routes → Platform dashboard: dispatches admin
- Web and API routes → Tasker verification: dispatches verification
- Web and API routes → Trades and languages: dispatches catalog
- Web and API routes → Specialization management: dispatches catalog
- Web and API routes → Role and OTP checks: protects routes
- Registration and login → Marketplace records: stores accounts
- Phone OTP verification → Marketplace records: updates phone status
- Phone OTP verification → Email delivery: sends OTP
- Tasker search → Marketplace records: queries providers
- Nearby taskers API → Marketplace records: queries nearby
- Job requests → Marketplace records: stores requests
- Quote management → Marketplace records: manages quotes
- Tasker quotes → Marketplace records: manages quotes
- Ratings and reviews → Marketplace records: stores reviews
- Profile and availability → Marketplace records: updates profile
- Tasker verification → Marketplace records: updates verification
- Trades and languages → Marketplace records: manages trades
- Specialization management → Marketplace records: manages specializations
- Platform dashboard → Marketplace records: reads statistics
- Quote management → Chat threads and messages: creates on acceptance
- Quote management → Email notifications: notifies users
- Tasker verification → Email notifications: notifies taskers
- Email notifications → Email delivery: delivers notices
- Chat threads and messages → Marketplace records: stores conversations
- Tasker reports → Marketplace records: stores reports
