# aggiesdev/fyp4999_project-skillmap- architecture

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

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

## Overview

Skill Map is a role-aware student skill assessment and career-readiness application. Students maintain profiles and skill ratings, compare them with a target role’s benchmarks, review gap results, and use a learning roadmap and progress/report views to track improvement. Lecturers and staff can provide feedback or review student skills; administrators manage users, permissions, skills, benchmarks, analytics, and notifications. The diagram groups related pages where source excerpts are unavailable; their capabilities are documented in the README. Database relationships are shown at the feature level, without assuming an unsampled page’s internal call sequence.

Main entry points: [`config/dbconnect.php`](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/config/dbconnect.php) (MySQL Database), [`includes/auth_check.php`](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/includes/auth_check.php) (Protected Page Gate), [`includes/auth.php`](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/includes/auth.php) (Authentication and Authorization), [`users/skills_assessment.php`](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/skills_assessment.php) (Skill Assessment)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and Access"]
  node_login["Login and Signup<br/>[login.php]"]
  node_auth["Authentication and Authorization<br/>[auth.php]"]
  node_authgate["Protected Page Gate<br/>[auth_check.php]"]
  node_userstore[("User and Permission Data<br/>[schema.sql]")]
end

subgraph group_student["Student Skill Journey"]
  node_profile["Profile Management<br/>[profile.php]"]
  node_assessment["Skill Assessment"]
  node_analysis["Role Gap Analysis<br/>[analyse.php]"]
  node_benchmark["Role Benchmarks<br/>[benchmarks.php]"]
  node_roadmap["Learning Roadmap<br/>[roadmap.php]"]
  node_progress["Progress Tracking<br/>[progress.php]"]
  node_report["Skill Report<br/>[report.php]"]
  node_dashboard["Student Dashboard<br/>[dashboard.php]"]
  node_skilldata[("Skills and Analysis Data<br/>[schema.sql]")]
end

subgraph group_admin["Administration"]
  node_adminanalytics["Admin Analytics<br/>[analytics.php]"]
  node_adminusers["User Management<br/>[users.php]"]
  node_adminskills["Skills and Categories"]
  node_adminbenchmarks["Benchmark Management<br/>[benchmarks.php]"]
  node_adminreviews["Student Skill Reviews<br/>[reviews.php]"]
  node_permissions["Permission Management<br/>[permissions.php]"]
end

subgraph group_messaging["Notifications and Feedback"]
  node_notifications["Inbox and Notifications<br/>[notifications.php]"]
  node_adminnotifications["Admin Notifications<br/>[notifications.php]"]
  node_notificationdata[("Notification Data<br/>[schema.sql]")]
end

node_visitor(("User"))
node_db[("MySQL Database<br/>[dbconnect.php]")]

node_visitor -->|"signs in or registers"| node_login
node_login -->|"validates credentials"| node_auth
node_auth -->|"reads and writes users"| node_db
node_authgate -->|"checks session"| node_auth
node_profile -->|"requires access"| node_authgate
node_assessment -->|"requires access"| node_authgate
node_analysis -->|"requires access"| node_authgate
node_roadmap -->|"requires access"| node_authgate
node_assessment -->|"stores ratings"| node_db
node_analysis -->|"reads benchmarks and ratings; saves results"| node_db
node_benchmark -->|"reads role benchmarks"| node_db
node_roadmap -->|"reads gaps and resources; saves progress"| node_db
node_progress -->|"reads progress"| node_db
node_report -->|"reads skill results"| node_db
node_dashboard -->|"reads analysis and progress"| node_db
node_adminanalytics -->|"reads application metrics"| node_db
node_adminusers -->|"manages accounts"| node_db
node_adminskills -->|"manages skills"| node_db
node_adminbenchmarks -->|"manages role benchmarks"| node_db
node_adminreviews -->|"reads and updates ratings"| node_db
node_permissions -->|"manages permission rules"| node_db
node_notifications -->|"reads and updates messages"| node_db
node_adminnotifications -->|"sends and reads messages"| node_db
node_notifications -->|"tracks read status"| node_notificationdata
node_adminnotifications -->|"stores sent messages"| node_notificationdata

click node_login "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/login.php"
click node_auth "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/includes/auth.php"
click node_authgate "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/includes/auth_check.php"
click node_userstore "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/schema.sql"
click node_profile "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/profile.php"
click node_assessment "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/skills_assessment.php"
click node_analysis "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/analyse.php"
click node_benchmark "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/benchmarks.php"
click node_roadmap "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/roadmap.php"
click node_progress "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/progress.php"
click node_report "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/report.php"
click node_dashboard "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/dashboard.php"
click node_skilldata "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/schema.sql"
click node_adminanalytics "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/admin/analytics.php"
click node_adminusers "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/admin/users.php"
click node_adminskills "https://github.com/aggiesdev/fyp4999_project-skillmap-/tree/main/admin"
click node_adminbenchmarks "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/admin/benchmarks.php"
click node_adminreviews "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/admin/reviews.php"
click node_permissions "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/admin/permissions.php"
click node_notifications "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/notifications.php"
click node_adminnotifications "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/admin/notifications.php"
click node_notificationdata "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/schema.sql"
click node_db "https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/config/dbconnect.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_login,node_auth,node_authgate,node_userstore,node_visitor toneBlue
class node_profile,node_assessment,node_analysis,node_benchmark,node_roadmap,node_progress,node_report,node_dashboard,node_skilldata,node_db toneAmber
class node_adminanalytics,node_adminusers,node_adminskills,node_adminbenchmarks,node_adminreviews,node_permissions toneMint
class node_notifications,node_adminnotifications,node_notificationdata toneRose
```

## Components

### Identity and Access

- [Login and Signup](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/login.php): `login.php`
- [Authentication and Authorization](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/includes/auth.php): `includes/auth.php`
- [Protected Page Gate](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/includes/auth_check.php): `includes/auth_check.php`
- [User and Permission Data](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/schema.sql): `schema.sql`

### Student Skill Journey

- [Profile Management](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/profile.php): `users/profile.php`
- [Skill Assessment](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/skills_assessment.php): `users/skills_assessment.php`
- [Role Gap Analysis](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/analyse.php): `users/analyse.php`
- [Role Benchmarks](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/benchmarks.php): `users/benchmarks.php`
- [Learning Roadmap](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/roadmap.php): `users/roadmap.php`
- [Progress Tracking](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/progress.php): `users/progress.php`
- [Skill Report](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/report.php): `users/report.php`
- [Student Dashboard](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/users/dashboard.php): `users/dashboard.php`
- [Skills and Analysis Data](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/schema.sql): `schema.sql`

### Administration

- [Admin Analytics](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/admin/analytics.php): `admin/analytics.php`
- [User Management](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/admin/users.php): `admin/users.php`
- [Skills and Categories](https://github.com/aggiesdev/fyp4999_project-skillmap-/tree/main/admin): `admin`
- [Benchmark Management](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/admin/benchmarks.php): `admin/benchmarks.php`
- [Student Skill Reviews](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/admin/reviews.php): `admin/reviews.php`
- [Permission Management](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/admin/permissions.php): `admin/permissions.php`

### Notifications and Feedback

- [Inbox and Notifications](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/notifications.php): `notifications.php`
- [Admin Notifications](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/admin/notifications.php): `admin/notifications.php`
- [Notification Data](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/schema.sql): `schema.sql`

### Other components

- **User**
- [MySQL Database](https://github.com/aggiesdev/fyp4999_project-skillmap-/blob/main/config/dbconnect.php): `config/dbconnect.php`

## Connections

- User → Login and Signup: signs in or registers
- Login and Signup → Authentication and Authorization: validates credentials
- Authentication and Authorization → MySQL Database: reads and writes users
- Protected Page Gate → Authentication and Authorization: checks session
- Profile Management → Protected Page Gate: requires access
- Skill Assessment → Protected Page Gate: requires access
- Role Gap Analysis → Protected Page Gate: requires access
- Learning Roadmap → Protected Page Gate: requires access
- Skill Assessment → MySQL Database: stores ratings
- Role Gap Analysis → MySQL Database: reads benchmarks and ratings; saves results
- Role Benchmarks → MySQL Database: reads role benchmarks
- Learning Roadmap → MySQL Database: reads gaps and resources; saves progress
- Progress Tracking → MySQL Database: reads progress
- Skill Report → MySQL Database: reads skill results
- Student Dashboard → MySQL Database: reads analysis and progress
- Admin Analytics → MySQL Database: reads application metrics
- User Management → MySQL Database: manages accounts
- Skills and Categories → MySQL Database: manages skills
- Benchmark Management → MySQL Database: manages role benchmarks
- Student Skill Reviews → MySQL Database: reads and updates ratings
- Permission Management → MySQL Database: manages permission rules
- Inbox and Notifications → MySQL Database: reads and updates messages
- Admin Notifications → MySQL Database: sends and reads messages
- Inbox and Notifications → Notification Data: tracks read status
- Admin Notifications → Notification Data: stores sent messages
