# deyyw0w/internlink architecture

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

- Interactive diagram: https://gitdiagram.com/deyyw0w/internlink
- Repository: https://github.com/deyyw0w/internlink

## Overview

InternLink is an Angular internship portal with student and administrator workspaces. The main flow begins at login or registration, then routes users into role-specific dashboards for applications, internship postings, profiles, documents, and administration. Registration delegates account creation and profile setup to AuthService; profile data is shared through ProfileService. The README documents no further product capabilities. Many page implementations were not excerpted, so their data interactions are not asserted here.

Main entry points: [`src/app/app.routes.ts`](https://github.com/deyyw0w/internlink/blob/main/src/app/app.routes.ts) (App routes), [`src/environments/supabase.config.ts`](https://github.com/deyyw0w/internlink/blob/main/src/environments/supabase.config.ts) (Supabase client), [`src/app/register/register.component.ts`](https://github.com/deyyw0w/internlink/blob/main/src/app/register/register.component.ts) (Registration), [`src/app/dashboard/pages/student-profile/student-profile-page.ts`](https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/student-profile/student-profile-page.ts) (Student profile)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application entry"]
  node_router["App routes<br/>[app.routes.ts]"]
  node_login["Login<br/>[login.ts]"]
  node_register["Registration"]
end

subgraph group_student["Student workspace"]
  node_student_shell["Student dashboard shell<br/>[dashboard.ts]"]
  node_student_overview["Student overview<br/>[dashboard-page.ts]"]
  node_internships["Internship postings"]
  node_application["My application"]
  node_student_docs["Document checklist"]
  node_notifications["Notifications"]
  node_student_profile["Student profile"]
  node_student_settings["Student settings"]
end

subgraph group_admin["Administrator workspace"]
  node_admin_shell["Admin dashboard shell<br/>[admin-dashboard.ts]"]
  node_admin_overview["Admin overview<br/>[dashboard-page.ts]"]
  node_applicants["Student applicants"]
  node_admin_docs["Document checklist"]
  node_agencies["Partner agencies"]
  node_contracts["Contracts and MOAs"]
  node_forms["Forms and templates"]
  node_reports["Reports analytics"]
  node_admin_logs["Notification logs"]
  node_admin_settings["Admin settings"]
end

subgraph group_services["Identity and data"]
  node_auth["Auth service<br/>[auth.service.ts]"]
  node_supabase["Supabase client<br/>[supabase.config.ts]"]
  node_profile_service["Profile service<br/>[profile.service.ts]"]
end

node_visitor(("User"))
node_supabase_service["Supabase"]

node_visitor -.->|"opens app"| node_router
node_router -->|"routes to"| node_login
node_router -->|"routes to"| node_register
node_router -->|"routes to"| node_student_shell
node_router -->|"routes to"| node_admin_shell
node_router -->|"routes to"| node_student_overview
node_router -->|"routes to"| node_internships
node_router -->|"routes to"| node_application
node_router -->|"routes to"| node_student_docs
node_router -->|"routes to"| node_notifications
node_router -->|"routes to"| node_student_profile
node_router -->|"routes to"| node_student_settings
node_router -->|"routes to"| node_admin_overview
node_router -->|"routes to"| node_applicants
node_router -->|"routes to"| node_admin_docs
node_router -->|"routes to"| node_agencies
node_router -->|"routes to"| node_contracts
node_router -->|"routes to"| node_forms
node_router -->|"routes to"| node_reports
node_router -->|"routes to"| node_admin_logs
node_router -->|"routes to"| node_admin_settings
node_register -->|"registers with"| node_auth
node_auth -->|"uses client"| node_supabase
node_supabase -->|"connects to"| node_supabase_service
node_student_profile -->|"loads profile"| node_profile_service
node_profile_service -->|"reads profile"| node_supabase

click node_router "https://github.com/deyyw0w/internlink/blob/main/src/app/app.routes.ts"
click node_login "https://github.com/deyyw0w/internlink/blob/main/src/app/login/login.ts"
click node_register "https://github.com/deyyw0w/internlink/blob/main/src/app/register/register.component.ts"
click node_auth "https://github.com/deyyw0w/internlink/blob/main/src/app/auth/auth.service.ts"
click node_supabase "https://github.com/deyyw0w/internlink/blob/main/src/environments/supabase.config.ts"
click node_profile_service "https://github.com/deyyw0w/internlink/blob/main/src/app/auth/profile.service.ts"
click node_student_shell "https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/dashboard.ts"
click node_student_overview "https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/dashboard/dashboard-page.ts"
click node_internships "https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/internship-postings/internship-postings-page.ts"
click node_application "https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/my-application/my-application-page.ts"
click node_student_docs "https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/document-checklist/document-checklist-page.ts"
click node_notifications "https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/notifications/notifications-page.ts"
click node_student_profile "https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/student-profile/student-profile-page.ts"
click node_student_settings "https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/account-settings/account-settings-page.ts"
click node_admin_shell "https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/admin-dashboard.ts"
click node_admin_overview "https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/dashboard/dashboard-page.ts"
click node_applicants "https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/student-applicants/student-applicants-page.ts"
click node_admin_docs "https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/document-checklist/document-checklist-page.ts"
click node_agencies "https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/partner-agencies/partner-agencies-page.ts"
click node_contracts "https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/contracts-moas/contracts-moas-page.ts"
click node_forms "https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/forms-templates/forms-templates-page.ts"
click node_reports "https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/reports-analytics/reports-analytics-page.ts"
click node_admin_logs "https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/notification-logs/notification-logs-page.ts"
click node_admin_settings "https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/account-settings/account-settings-page.ts"

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_router,node_login,node_register,node_visitor toneBlue
class node_student_shell,node_student_overview,node_internships,node_application,node_student_docs,node_notifications,node_student_profile,node_student_settings toneAmber
class node_admin_shell,node_admin_overview,node_applicants,node_admin_docs,node_agencies,node_contracts,node_forms,node_reports,node_admin_logs,node_admin_settings toneMint
class node_auth,node_supabase,node_profile_service toneRose
class node_supabase_service toneIndigo
```

## Components

### Application entry

- [App routes](https://github.com/deyyw0w/internlink/blob/main/src/app/app.routes.ts): `src/app/app.routes.ts`
- [Login](https://github.com/deyyw0w/internlink/blob/main/src/app/login/login.ts): `src/app/login/login.ts`
- [Registration](https://github.com/deyyw0w/internlink/blob/main/src/app/register/register.component.ts): `src/app/register/register.component.ts`

### Student workspace

- [Student dashboard shell](https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/dashboard.ts): `src/app/dashboard/dashboard.ts`
- [Student overview](https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/dashboard/dashboard-page.ts): `src/app/dashboard/pages/dashboard/dashboard-page.ts`
- [Internship postings](https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/internship-postings/internship-postings-page.ts): `src/app/dashboard/pages/internship-postings/internship-postings-page.ts`
- [My application](https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/my-application/my-application-page.ts): `src/app/dashboard/pages/my-application/my-application-page.ts`
- [Document checklist](https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/document-checklist/document-checklist-page.ts): `src/app/dashboard/pages/document-checklist/document-checklist-page.ts`
- [Notifications](https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/notifications/notifications-page.ts): `src/app/dashboard/pages/notifications/notifications-page.ts`
- [Student profile](https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/student-profile/student-profile-page.ts): `src/app/dashboard/pages/student-profile/student-profile-page.ts`
- [Student settings](https://github.com/deyyw0w/internlink/blob/main/src/app/dashboard/pages/account-settings/account-settings-page.ts): `src/app/dashboard/pages/account-settings/account-settings-page.ts`

### Administrator workspace

- [Admin dashboard shell](https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/admin-dashboard.ts): `src/app/admin-dashboard/admin-dashboard.ts`
- [Admin overview](https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/dashboard/dashboard-page.ts): `src/app/admin-dashboard/pages/dashboard/dashboard-page.ts`
- [Student applicants](https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/student-applicants/student-applicants-page.ts): `src/app/admin-dashboard/pages/student-applicants/student-applicants-page.ts`
- [Document checklist](https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/document-checklist/document-checklist-page.ts): `src/app/admin-dashboard/pages/document-checklist/document-checklist-page.ts`
- [Partner agencies](https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/partner-agencies/partner-agencies-page.ts): `src/app/admin-dashboard/pages/partner-agencies/partner-agencies-page.ts`
- [Contracts and MOAs](https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/contracts-moas/contracts-moas-page.ts): `src/app/admin-dashboard/pages/contracts-moas/contracts-moas-page.ts`
- [Forms and templates](https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/forms-templates/forms-templates-page.ts): `src/app/admin-dashboard/pages/forms-templates/forms-templates-page.ts`
- [Reports analytics](https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/reports-analytics/reports-analytics-page.ts): `src/app/admin-dashboard/pages/reports-analytics/reports-analytics-page.ts`
- [Notification logs](https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/notification-logs/notification-logs-page.ts): `src/app/admin-dashboard/pages/notification-logs/notification-logs-page.ts`
- [Admin settings](https://github.com/deyyw0w/internlink/blob/main/src/app/admin-dashboard/pages/account-settings/account-settings-page.ts): `src/app/admin-dashboard/pages/account-settings/account-settings-page.ts`

### Identity and data

- [Auth service](https://github.com/deyyw0w/internlink/blob/main/src/app/auth/auth.service.ts): `src/app/auth/auth.service.ts`
- [Supabase client](https://github.com/deyyw0w/internlink/blob/main/src/environments/supabase.config.ts): `src/environments/supabase.config.ts`
- [Profile service](https://github.com/deyyw0w/internlink/blob/main/src/app/auth/profile.service.ts): `src/app/auth/profile.service.ts`

### Other components

- **User**
- **Supabase**

## Connections

- User → App routes: opens app
- App routes → Login: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Registration: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Student dashboard shell: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Admin dashboard shell: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Student overview: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Internship postings: routes to (evidence: `src/app/app.routes.ts`)
- App routes → My application: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Document checklist: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Notifications: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Student profile: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Student settings: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Admin overview: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Student applicants: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Document checklist: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Partner agencies: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Contracts and MOAs: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Forms and templates: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Reports analytics: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Notification logs: routes to (evidence: `src/app/app.routes.ts`)
- App routes → Admin settings: routes to (evidence: `src/app/app.routes.ts`)
- Registration → Auth service: registers with (evidence: `src/app/register/register.component.ts`)
- Auth service → Supabase client: uses client (evidence: `src/app/auth/auth.service.ts`)
- Supabase client → Supabase: connects to (evidence: `src/environments/supabase.config.ts`)
- Student profile → Profile service: loads profile (evidence: `src/app/dashboard/pages/student-profile/student-profile-page.ts`)
- Profile service → Supabase client: reads profile (evidence: `src/app/auth/profile.service.ts`)
