# mogsss/diskartech-backend architecture

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

## Overview

This Laravel application supports a job marketplace for students, employers, and households, with a separate admin portal. The main workflow is account registration and verification, profile and job management, job discovery or matching, and applications. Admins review users and verification submissions. The graph uses the route files and sampled controllers/models to show documented dispatch and model relationships; several controllers and views were not sampled, so their internal behavior is represented only where the source index supports it.

Main entry points: [`routes/api.php`](https://github.com/mogsss/diskartech-backend/blob/main/routes/api.php) (API Routes), [`app/Models/Student.php`](https://github.com/mogsss/diskartech-backend/blob/main/app/Models/Student.php) (Students), [`app/Http/Controllers/Api/AuthController.php`](https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/AuthController.php) (API Authentication), [`routes/web.php`](https://github.com/mogsss/diskartech-backend/blob/main/routes/web.php) (Admin Routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Marketplace API"]
  node_students["Students<br/>[Student.php]"]
  node_employers["Employers<br/>[Employer.php]"]
  node_households["Households<br/>[Household.php]"]
  node_api_dashboard["Role Dashboards"]
  node_student_api["Student Actions"]
  node_api_routes["API Routes<br/>[api.php]"]
end

subgraph group_jobs["Jobs and Applications"]
  node_job_api["Job Listings<br/>[JobController.php]"]
  node_job_matching["Job Matching"]
  node_applications["Applications"]
  node_employer_api["Employer Actions"]
  node_jobs_model[("Available Jobs<br/>[Jobs.php]")]
  node_application_model[("Job Applications<br/>[JobApplication.php]")]
  node_saved_jobs[("Saved Jobs<br/>[SavedJob.php]")]
end

subgraph group_identity["Accounts and Verification"]
  node_user_accounts["User Accounts<br/>[User.php]"]
  node_auth_api["API Authentication<br/>[AuthController.php]"]
  node_verification_api["API Verification"]
  node_document_analysis["Document Analysis"]
end

subgraph group_admin["Admin Portal"]
  node_admin_routes["Admin Routes<br/>[web.php]"]
  node_admin_auth["Admin Authentication<br/>[AuthController.php]"]
  node_admin_dashboard["Admin Dashboard"]
  node_admin_users["User Management<br/>[UserController.php]"]
  node_admin_verification["Verification Review"]
  node_admin_account["Admin Account<br/>[Admin.php]"]
end

node_participants(("Marketplace Participants"))
node_administrators(("Administrators"))

node_participants -->|"call API"| node_api_routes
node_api_routes -->|"dispatches"| node_auth_api
node_api_routes -->|"dispatches"| node_verification_api
node_api_routes -->|"dispatches"| node_api_dashboard
node_api_routes -->|"dispatches"| node_job_api
node_api_routes -->|"dispatches"| node_job_matching
node_api_routes -->|"dispatches"| node_applications
node_api_routes -->|"dispatches"| node_employer_api
node_api_routes -->|"dispatches"| node_student_api
node_auth_api -->|"creates and reads"| node_user_accounts
node_auth_api -->|"creates and reads"| node_students
node_auth_api -->|"creates and reads"| node_employers
node_auth_api -->|"creates"| node_households
node_auth_api -->|"dispatches"| node_document_analysis
node_verification_api -->|"dispatches"| node_document_analysis
node_verification_api -->|"updates"| node_employers
node_verification_api -->|"updates"| node_households
node_api_dashboard -->|"reads"| node_students
node_api_dashboard -->|"reads"| node_employers
node_api_dashboard -->|"reads"| node_households
node_job_api -->|"reads and updates"| node_jobs_model
node_job_matching -->|"matches jobs"| node_jobs_model
node_job_matching -->|"reads profile"| node_students
node_applications -->|"manages"| node_application_model
node_applications -->|"reads"| node_students
node_employer_api -->|"manages jobs"| node_jobs_model
node_employer_api -->|"manages applications"| node_application_model
node_student_api -->|"updates profile"| node_students
node_student_api -->|"finds jobs"| node_jobs_model
node_student_api -->|"reads applications"| node_application_model
node_students -->|"has applications"| node_application_model
node_students -->|"saves jobs"| node_saved_jobs
node_jobs_model -->|"has applications"| node_application_model
node_administrators -->|"use portal"| node_admin_routes
node_admin_routes -->|"dispatches"| node_admin_auth
node_admin_routes -->|"dispatches"| node_admin_dashboard
node_admin_routes -->|"dispatches"| node_admin_users
node_admin_routes -->|"dispatches"| node_admin_verification
node_admin_auth -->|"authenticates"| node_admin_account
node_admin_dashboard -->|"reads"| node_user_accounts
node_admin_dashboard -->|"reads"| node_admin_account
node_admin_users -->|"searches users"| node_user_accounts
node_admin_verification -->|"reviews profiles"| node_user_accounts

click node_students "https://github.com/mogsss/diskartech-backend/blob/main/app/Models/Student.php"
click node_employers "https://github.com/mogsss/diskartech-backend/blob/main/app/Models/Employer.php"
click node_households "https://github.com/mogsss/diskartech-backend/blob/main/app/Models/Household.php"
click node_user_accounts "https://github.com/mogsss/diskartech-backend/blob/main/app/Models/User.php"
click node_auth_api "https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/AuthController.php"
click node_verification_api "https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/VerificationController.php"
click node_document_analysis "https://github.com/mogsss/diskartech-backend/blob/main/app/Jobs/AnalyzeVerificationDocument.php"
click node_api_dashboard "https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/DashboardController.php"
click node_job_api "https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/JobController.php"
click node_job_matching "https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/JobMatchingController.php"
click node_applications "https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/JobApplicationController.php"
click node_employer_api "https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/EmployerController.php"
click node_student_api "https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/StudentController.php"
click node_jobs_model "https://github.com/mogsss/diskartech-backend/blob/main/app/Models/Jobs.php"
click node_application_model "https://github.com/mogsss/diskartech-backend/blob/main/app/Models/JobApplication.php"
click node_saved_jobs "https://github.com/mogsss/diskartech-backend/blob/main/app/Models/SavedJob.php"
click node_api_routes "https://github.com/mogsss/diskartech-backend/blob/main/routes/api.php"
click node_admin_routes "https://github.com/mogsss/diskartech-backend/blob/main/routes/web.php"
click node_admin_auth "https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Admin/AuthController.php"
click node_admin_dashboard "https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Admin/DashboardController.php"
click node_admin_users "https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Admin/UserController.php"
click node_admin_verification "https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Admin/VerificationController.php"
click node_admin_account "https://github.com/mogsss/diskartech-backend/blob/main/app/Models/Admin.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_students,node_employers,node_households,node_api_dashboard,node_student_api,node_api_routes toneBlue
class node_job_api,node_job_matching,node_applications,node_employer_api,node_jobs_model,node_application_model,node_saved_jobs toneAmber
class node_user_accounts,node_auth_api,node_verification_api,node_document_analysis toneMint
class node_admin_routes,node_admin_auth,node_admin_dashboard,node_admin_users,node_admin_verification,node_admin_account toneRose
class node_participants,node_administrators toneIndigo
```

## Components

### Marketplace API

- [Students](https://github.com/mogsss/diskartech-backend/blob/main/app/Models/Student.php): `app/Models/Student.php`
- [Employers](https://github.com/mogsss/diskartech-backend/blob/main/app/Models/Employer.php): `app/Models/Employer.php`
- [Households](https://github.com/mogsss/diskartech-backend/blob/main/app/Models/Household.php): `app/Models/Household.php`
- [Role Dashboards](https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/DashboardController.php): `app/Http/Controllers/Api/DashboardController.php`
- [Student Actions](https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/StudentController.php): `app/Http/Controllers/Api/StudentController.php`
- [API Routes](https://github.com/mogsss/diskartech-backend/blob/main/routes/api.php): `routes/api.php`

### Jobs and Applications

- [Job Listings](https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/JobController.php): `app/Http/Controllers/Api/JobController.php`
- [Job Matching](https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/JobMatchingController.php): `app/Http/Controllers/Api/JobMatchingController.php`
- [Applications](https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/JobApplicationController.php): `app/Http/Controllers/Api/JobApplicationController.php`
- [Employer Actions](https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/EmployerController.php): `app/Http/Controllers/Api/EmployerController.php`
- [Available Jobs](https://github.com/mogsss/diskartech-backend/blob/main/app/Models/Jobs.php): `app/Models/Jobs.php`
- [Job Applications](https://github.com/mogsss/diskartech-backend/blob/main/app/Models/JobApplication.php): `app/Models/JobApplication.php`
- [Saved Jobs](https://github.com/mogsss/diskartech-backend/blob/main/app/Models/SavedJob.php): `app/Models/SavedJob.php`

### Accounts and Verification

- [User Accounts](https://github.com/mogsss/diskartech-backend/blob/main/app/Models/User.php): `app/Models/User.php`
- [API Authentication](https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/AuthController.php): `app/Http/Controllers/Api/AuthController.php`
- [API Verification](https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Api/VerificationController.php): `app/Http/Controllers/Api/VerificationController.php`
- [Document Analysis](https://github.com/mogsss/diskartech-backend/blob/main/app/Jobs/AnalyzeVerificationDocument.php): `app/Jobs/AnalyzeVerificationDocument.php`

### Admin Portal

- [Admin Routes](https://github.com/mogsss/diskartech-backend/blob/main/routes/web.php): `routes/web.php`
- [Admin Authentication](https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Admin/AuthController.php): `app/Http/Controllers/Admin/AuthController.php`
- [Admin Dashboard](https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Admin/DashboardController.php): `app/Http/Controllers/Admin/DashboardController.php`
- [User Management](https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Admin/UserController.php): `app/Http/Controllers/Admin/UserController.php`
- [Verification Review](https://github.com/mogsss/diskartech-backend/blob/main/app/Http/Controllers/Admin/VerificationController.php): `app/Http/Controllers/Admin/VerificationController.php`
- [Admin Account](https://github.com/mogsss/diskartech-backend/blob/main/app/Models/Admin.php): `app/Models/Admin.php`

### Other components

- **Marketplace Participants**
- **Administrators**

## Connections

- Marketplace Participants → API Routes: call API (evidence: `routes/api.php`)
- API Routes → API Authentication: dispatches (evidence: `routes/api.php`)
- API Routes → API Verification: dispatches (evidence: `routes/api.php`)
- API Routes → Role Dashboards: dispatches (evidence: `routes/api.php`)
- API Routes → Job Listings: dispatches (evidence: `routes/api.php`)
- API Routes → Job Matching: dispatches (evidence: `routes/api.php`)
- API Routes → Applications: dispatches (evidence: `routes/api.php`)
- API Routes → Employer Actions: dispatches (evidence: `routes/api.php`)
- API Routes → Student Actions: dispatches (evidence: `routes/api.php`)
- API Authentication → User Accounts: creates and reads (evidence: `app/Http/Controllers/Api/AuthController.php`)
- API Authentication → Students: creates and reads (evidence: `app/Http/Controllers/Api/AuthController.php`)
- API Authentication → Employers: creates and reads (evidence: `app/Http/Controllers/Api/AuthController.php`)
- API Authentication → Households: creates (evidence: `app/Http/Controllers/Api/AuthController.php`)
- API Authentication → Document Analysis: dispatches (evidence: `app/Http/Controllers/Api/AuthController.php`)
- API Verification → Document Analysis: dispatches (evidence: `app/Http/Controllers/Api/VerificationController.php`)
- API Verification → Employers: updates (evidence: `app/Http/Controllers/Api/VerificationController.php`)
- API Verification → Households: updates (evidence: `app/Http/Controllers/Api/VerificationController.php`)
- Role Dashboards → Students: reads (evidence: `app/Http/Controllers/Api/DashboardController.php`)
- Role Dashboards → Employers: reads (evidence: `app/Http/Controllers/Api/DashboardController.php`)
- Role Dashboards → Households: reads (evidence: `app/Http/Controllers/Api/DashboardController.php`)
- Job Listings → Available Jobs: reads and updates (evidence: `app/Http/Controllers/Api/JobController.php`)
- Job Matching → Available Jobs: matches jobs (evidence: `app/Http/Controllers/Api/JobMatchingController.php`)
- Job Matching → Students: reads profile (evidence: `app/Http/Controllers/Api/JobMatchingController.php`)
- Applications → Job Applications: manages (evidence: `app/Http/Controllers/Api/JobApplicationController.php`)
- Applications → Students: reads (evidence: `app/Http/Controllers/Api/JobApplicationController.php`)
- Employer Actions → Available Jobs: manages jobs (evidence: `app/Http/Controllers/Api/EmployerController.php`)
- Employer Actions → Job Applications: manages applications (evidence: `app/Http/Controllers/Api/EmployerController.php`)
- Student Actions → Students: updates profile (evidence: `app/Http/Controllers/Api/StudentController.php`)
- Student Actions → Available Jobs: finds jobs (evidence: `app/Http/Controllers/Api/StudentController.php`)
- Student Actions → Job Applications: reads applications (evidence: `app/Http/Controllers/Api/StudentController.php`)
- Students → Job Applications: has applications (evidence: `app/Models/Student.php`)
- Students → Saved Jobs: saves jobs (evidence: `app/Models/Student.php`)
- Available Jobs → Job Applications: has applications (evidence: `app/Models/Jobs.php`)
- Administrators → Admin Routes: use portal (evidence: `routes/web.php`)
- Admin Routes → Admin Authentication: dispatches (evidence: `routes/web.php`)
- Admin Routes → Admin Dashboard: dispatches (evidence: `routes/web.php`)
- Admin Routes → User Management: dispatches (evidence: `routes/web.php`)
- Admin Routes → Verification Review: dispatches (evidence: `routes/web.php`)
- Admin Authentication → Admin Account: authenticates (evidence: `app/Http/Controllers/Admin/AuthController.php`)
- Admin Dashboard → User Accounts: reads (evidence: `app/Http/Controllers/Admin/DashboardController.php`)
- Admin Dashboard → Admin Account: reads (evidence: `app/Http/Controllers/Admin/DashboardController.php`)
- User Management → User Accounts: searches users (evidence: `app/Http/Controllers/Admin/UserController.php`)
- Verification Review → User Accounts: reviews profiles (evidence: `app/Http/Controllers/Admin/VerificationController.php`)
