# duwupitona8let/teamsup architecture

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

## Overview

TeamsUp is a team staffing and recruitment application with an Angular client and NestJS API. The user-facing flow covers account access, browsing teams or vacancies, applying for a vacancy, and recruiter review; administrators and project managers also manage teams, roles, and users. The README provides no capability detail, so this map relies on the file tree and sampled routes, services, and controllers; links between unsampled client pages and services are omitted.

Main entry points: [`teams-up-client/src/app/app.routes.ts`](https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/app.routes.ts) (Client routes), [`teams-up/src/applications/applications.service.ts`](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/applications/applications.service.ts) (Applications service), [`teams-up/src/entities`](https://github.com/duwupitona8let/teamsup/tree/main/teams-up/src/entities) (Application database), [`teams-up/src/auth/auth.service.ts`](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/auth/auth.service.ts) (Auth service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Angular client"]
  node_routes["Client routes<br/>[app.routes.ts]"]
  node_login["Login and registration<br/>[login.ts]"]
  node_team_pages["Team pages"]
  node_vacancy_pages["Vacancy pages"]
  node_recruiter_page["Recruiter panel<br/>[recruiter-panel.ts]"]
  node_auth_client["Auth client<br/>[auth.service.ts]"]
  node_application_client["Application client"]
  node_team_client["Team client<br/>[team.service.ts]"]
  node_assignment_client["Assignment client"]
end

subgraph group_identity["Identity and access"]
  node_auth_api["Auth API<br/>[auth.controller.ts]"]
  node_auth_service["Auth service<br/>[auth.service.ts]"]
end

subgraph group_staffing["Teams and staffing"]
  node_teams_api["Teams API"]
  node_teams_service["Teams service<br/>[teams.service.ts]"]
  node_assignments_api["Assignments API"]
  node_assignments_service["Assignments service"]
  node_pm_service["Project manager service"]
  node_users_api["Users API"]
  node_users_service["Users service<br/>[users.service.ts]"]
end

subgraph group_recruitment["Recruitment and administration"]
  node_applications_api["Applications API"]
  node_applications_service["Applications service"]
  node_admin_api["Admin API"]
  node_admin_service["Admin service<br/>[admin.service.ts]"]
end

node_visitor(("User"))
node_jwt["JWT provider"]
node_store[("Application database")]

node_visitor -->|"navigates"| node_routes
node_routes -->|"loads"| node_login
node_routes -->|"loads"| node_team_pages
node_routes -->|"loads"| node_vacancy_pages
node_routes -->|"loads"| node_recruiter_page
node_applications_api -->|"dispatches"| node_applications_service
node_teams_api -->|"dispatches"| node_teams_service
node_assignments_api -->|"dispatches"| node_assignments_service
node_users_api -->|"dispatches"| node_users_service
node_admin_api -->|"dispatches"| node_admin_service
node_auth_service -->|"signs tokens"| node_jwt
node_applications_service -->|"reads and writes"| node_store
node_pm_service -->|"reads and writes"| node_store

click node_routes "https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/app.routes.ts"
click node_login "https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/components/login/login.ts"
click node_team_pages "https://github.com/duwupitona8let/teamsup/tree/main/teams-up-client/src/app/components/teams"
click node_vacancy_pages "https://github.com/duwupitona8let/teamsup/tree/main/teams-up-client/src/app/components/vacancies"
click node_recruiter_page "https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/components/recruiter/recruiter-panel/recruiter-panel.ts"
click node_auth_client "https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/services/auth.service.ts"
click node_application_client "https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/services/application.service.ts"
click node_team_client "https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/services/team.service.ts"
click node_assignment_client "https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/services/assignment.service.ts"
click node_auth_api "https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/auth/auth.controller.ts"
click node_auth_service "https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/auth/auth.service.ts"
click node_teams_api "https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/teams/teams.controller.ts"
click node_teams_service "https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/teams/teams.service.ts"
click node_assignments_api "https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/assignments/assignments.controller.ts"
click node_assignments_service "https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/assignments/assignments.service.ts"
click node_pm_service "https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/project-manager/project-manager.service.ts"
click node_users_api "https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/users/users.controller.ts"
click node_users_service "https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/users/users.service.ts"
click node_applications_api "https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/applications/applications.controller.ts"
click node_applications_service "https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/applications/applications.service.ts"
click node_admin_api "https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/admin/admin.controller.ts"
click node_admin_service "https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/admin/admin.service.ts"
click node_store "https://github.com/duwupitona8let/teamsup/tree/main/teams-up/src/entities"

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_login,node_team_pages,node_vacancy_pages,node_recruiter_page,node_auth_client,node_application_client,node_team_client,node_assignment_client,node_visitor toneBlue
class node_auth_api,node_auth_service,node_store toneAmber
class node_teams_api,node_teams_service,node_assignments_api,node_assignments_service,node_pm_service,node_users_api,node_users_service toneMint
class node_applications_api,node_applications_service,node_admin_api,node_admin_service toneRose
class node_jwt toneIndigo
```

## Components

### Angular client

- [Client routes](https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/app.routes.ts): `teams-up-client/src/app/app.routes.ts`
- [Login and registration](https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/components/login/login.ts): `teams-up-client/src/app/components/login/login.ts`
- [Team pages](https://github.com/duwupitona8let/teamsup/tree/main/teams-up-client/src/app/components/teams): `teams-up-client/src/app/components/teams`
- [Vacancy pages](https://github.com/duwupitona8let/teamsup/tree/main/teams-up-client/src/app/components/vacancies): `teams-up-client/src/app/components/vacancies`
- [Recruiter panel](https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/components/recruiter/recruiter-panel/recruiter-panel.ts): `teams-up-client/src/app/components/recruiter/recruiter-panel/recruiter-panel.ts`
- [Auth client](https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/services/auth.service.ts): `teams-up-client/src/app/services/auth.service.ts`
- [Application client](https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/services/application.service.ts): `teams-up-client/src/app/services/application.service.ts`
- [Team client](https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/services/team.service.ts): `teams-up-client/src/app/services/team.service.ts`
- [Assignment client](https://github.com/duwupitona8let/teamsup/blob/main/teams-up-client/src/app/services/assignment.service.ts): `teams-up-client/src/app/services/assignment.service.ts`

### Identity and access

- [Auth API](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/auth/auth.controller.ts): `teams-up/src/auth/auth.controller.ts`
- [Auth service](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/auth/auth.service.ts): `teams-up/src/auth/auth.service.ts`

### Teams and staffing

- [Teams API](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/teams/teams.controller.ts): `teams-up/src/teams/teams.controller.ts`
- [Teams service](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/teams/teams.service.ts): `teams-up/src/teams/teams.service.ts`
- [Assignments API](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/assignments/assignments.controller.ts): `teams-up/src/assignments/assignments.controller.ts`
- [Assignments service](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/assignments/assignments.service.ts): `teams-up/src/assignments/assignments.service.ts`
- [Project manager service](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/project-manager/project-manager.service.ts): `teams-up/src/project-manager/project-manager.service.ts`
- [Users API](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/users/users.controller.ts): `teams-up/src/users/users.controller.ts`
- [Users service](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/users/users.service.ts): `teams-up/src/users/users.service.ts`

### Recruitment and administration

- [Applications API](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/applications/applications.controller.ts): `teams-up/src/applications/applications.controller.ts`
- [Applications service](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/applications/applications.service.ts): `teams-up/src/applications/applications.service.ts`
- [Admin API](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/admin/admin.controller.ts): `teams-up/src/admin/admin.controller.ts`
- [Admin service](https://github.com/duwupitona8let/teamsup/blob/main/teams-up/src/admin/admin.service.ts): `teams-up/src/admin/admin.service.ts`

### Other components

- **User**
- **JWT provider**
- [Application database](https://github.com/duwupitona8let/teamsup/tree/main/teams-up/src/entities): `teams-up/src/entities`

## Connections

- User → Client routes: navigates
- Client routes → Login and registration: loads
- Client routes → Team pages: loads
- Client routes → Vacancy pages: loads
- Client routes → Recruiter panel: loads
- Applications API → Applications service: dispatches
- Teams API → Teams service: dispatches
- Assignments API → Assignments service: dispatches
- Users API → Users service: dispatches
- Admin API → Admin service: dispatches
- Auth service → JWT provider: signs tokens
- Applications service → Application database: reads and writes
- Project manager service → Application database: reads and writes
