# kuboraido/nexusphere architecture

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

## Overview

NEXUSPHERE helps students discover one another by academic attributes and activity, then continue through their usual external social or portfolio tools. The central workflow is registration and profile creation, user search and timeline browsing, then profile-based contact or portfolio handoff. The README also describes one-to-one messaging and a portfolio-site feature; circle and group functions remain implemented but are hidden from the current product UI. Some controller and route wiring is not sampled, so uncertain connections are omitted.

Main entry points: [`nexusphere/routes/web.php`](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/routes/web.php) (Web Routes), [`nexusphere/app/Http/Controllers/PrcController.php`](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/PrcController.php) (Timeline Posts), [`nexusphere/resources/views`](https://github.com/kuboraido/nexusphere/tree/develop/nexusphere/resources/views) (Blade Screens), [`nexusphere/app/Http/Controllers/UserController.php`](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/UserController.php) (User Accounts & Search)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web Experience"]
  node_web_routes["Web Routes<br/>[web.php]"]
  node_api_routes["API Routes<br/>[api.php]"]
  node_blade_views["Blade Screens"]
  node_browser_js["Browser Scripts"]
end

subgraph group_identity["Identity &amp; Discovery"]
  node_login["Login &amp; Registration"]
  node_users["User Accounts &amp; Search<br/>[UserController.php]"]
  node_profiles["Student Profiles"]
  node_academic_data["Academic Attributes<br/>[Subject.php]"]
end

subgraph group_activity["Timeline &amp; Community"]
  node_timeline["Timeline Posts<br/>[PrcController.php]"]
  node_content_filter["NG Word Filter<br/>[NgWord.php]"]
  node_circle_features["Circle Features"]
end

subgraph group_messaging["Messaging"]
  node_direct_messages["Direct Messages<br/>[DmController.php]"]
  node_dm_resources["Message Responses"]
end

subgraph group_handoff["External Handoff"]
  node_portfolio_service["Portfolio Site Rules"]
  node_portfolio_data["Portfolio Site Data<br/>[PortfolioSite.php]"]
end

node_student(("Student"))
node_external_sites(("External Social &amp; Portfolio"))
node_database[("Application Database")]

node_student -->|"requests pages"| node_web_routes
node_student -->|"requests data"| node_api_routes
node_web_routes -->|"dispatches"| node_login
node_web_routes -->|"dispatches"| node_users
node_web_routes -->|"dispatches"| node_profiles
node_web_routes -->|"dispatches"| node_timeline
node_web_routes -.->|"dispatches"| node_circle_features
node_api_routes -->|"dispatches"| node_direct_messages
node_login -->|"renders"| node_blade_views
node_users -->|"renders"| node_blade_views
node_profiles -->|"renders"| node_blade_views
node_timeline -->|"renders"| node_blade_views
node_direct_messages -->|"formats messages"| node_dm_resources
node_browser_js -->|"requests updates"| node_api_routes
node_browser_js -->|"submits actions"| node_web_routes
node_users -->|"reads and writes"| node_database
node_profiles -->|"reads and writes"| node_database
node_academic_data -->|"stores attributes"| node_database
node_timeline -->|"reads and writes"| node_database
node_timeline -->|"validates text"| node_content_filter
node_circle_features -.->|"reads and writes"| node_database
node_direct_messages -->|"reads and writes"| node_database
node_portfolio_service -->|"creates and updates"| node_portfolio_data
node_portfolio_data -->|"persists site settings"| node_database
node_external_sites -->|"receives handoff"| node_student

click node_web_routes "https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/routes/web.php"
click node_api_routes "https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/routes/api.php"
click node_blade_views "https://github.com/kuboraido/nexusphere/tree/develop/nexusphere/resources/views"
click node_browser_js "https://github.com/kuboraido/nexusphere/tree/develop/nexusphere/public/js"
click node_login "https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/LoginController.php"
click node_users "https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/UserController.php"
click node_profiles "https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/ProfileController.php"
click node_academic_data "https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Models/Subject.php"
click node_timeline "https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/PrcController.php"
click node_content_filter "https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Rules/NgWord.php"
click node_circle_features "https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/CircleController.php"
click node_direct_messages "https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/DmController.php"
click node_dm_resources "https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Resources/DmMessageResource.php"
click node_portfolio_service "https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Services/PortfolioSiteService.php"
click node_portfolio_data "https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Models/PortfolioSite.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_api_routes,node_blade_views,node_browser_js toneBlue
class node_login,node_users,node_profiles,node_academic_data,node_database toneAmber
class node_timeline,node_content_filter,node_circle_features toneMint
class node_direct_messages,node_dm_resources toneRose
class node_portfolio_service,node_portfolio_data,node_student,node_external_sites toneIndigo
```

## Components

### Web Experience

- [Web Routes](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/routes/web.php): `nexusphere/routes/web.php`
- [API Routes](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/routes/api.php): `nexusphere/routes/api.php`
- [Blade Screens](https://github.com/kuboraido/nexusphere/tree/develop/nexusphere/resources/views): `nexusphere/resources/views`
- [Browser Scripts](https://github.com/kuboraido/nexusphere/tree/develop/nexusphere/public/js): `nexusphere/public/js`

### Identity & Discovery

- [Login & Registration](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/LoginController.php): `nexusphere/app/Http/Controllers/LoginController.php`
- [User Accounts & Search](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/UserController.php): `nexusphere/app/Http/Controllers/UserController.php`
- [Student Profiles](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/ProfileController.php): `nexusphere/app/Http/Controllers/ProfileController.php`
- [Academic Attributes](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Models/Subject.php): `nexusphere/app/Models/Subject.php`

### Timeline & Community

- [Timeline Posts](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/PrcController.php): `nexusphere/app/Http/Controllers/PrcController.php`
- [NG Word Filter](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Rules/NgWord.php): `nexusphere/app/Rules/NgWord.php`
- [Circle Features](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/CircleController.php): `nexusphere/app/Http/Controllers/CircleController.php`

### Messaging

- [Direct Messages](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Controllers/DmController.php): `nexusphere/app/Http/Controllers/DmController.php`
- [Message Responses](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Http/Resources/DmMessageResource.php): `nexusphere/app/Http/Resources/DmMessageResource.php`

### External Handoff

- [Portfolio Site Rules](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Services/PortfolioSiteService.php): `nexusphere/app/Services/PortfolioSiteService.php`
- [Portfolio Site Data](https://github.com/kuboraido/nexusphere/blob/develop/nexusphere/app/Models/PortfolioSite.php): `nexusphere/app/Models/PortfolioSite.php`

### Other components

- **Student**
- **External Social & Portfolio**
- **Application Database**

## Connections

- Student → Web Routes: requests pages
- Student → API Routes: requests data
- Web Routes → Login & Registration: dispatches
- Web Routes → User Accounts & Search: dispatches
- Web Routes → Student Profiles: dispatches
- Web Routes → Timeline Posts: dispatches
- Web Routes → Circle Features: dispatches
- API Routes → Direct Messages: dispatches
- Login & Registration → Blade Screens: renders
- User Accounts & Search → Blade Screens: renders
- Student Profiles → Blade Screens: renders
- Timeline Posts → Blade Screens: renders
- Direct Messages → Message Responses: formats messages
- Browser Scripts → API Routes: requests updates
- Browser Scripts → Web Routes: submits actions
- User Accounts & Search → Application Database: reads and writes
- Student Profiles → Application Database: reads and writes
- Academic Attributes → Application Database: stores attributes
- Timeline Posts → Application Database: reads and writes
- Timeline Posts → NG Word Filter: validates text
- Circle Features → Application Database: reads and writes
- Direct Messages → Application Database: reads and writes
- Portfolio Site Rules → Portfolio Site Data: creates and updates
- Portfolio Site Data → Application Database: persists site settings
- External Social & Portfolio → Student: receives handoff
