# b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026 architecture

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

- Interactive diagram: https://gitdiagram.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026
- Repository: https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026

## Overview

B4F Board is a Jira-style project-management application with a Next.js interface and a separate NestJS API. The user-facing workflow covers account registration/login, workspace setup and membership, project and issue management, and issue comments; the API also exposes activity, notifications, and user search. The sampled controllers show their service calls, while the README and application module identify the frontend/API split and PostgreSQL/Prisma direction. Some frontend-to-API wiring and unsampled domain implementations are not shown, so those links are omitted or documented only where supported.

Main entry points: [`api/src/main.ts`](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/main.ts) (NestJS API), [`api/src/auth/auth.controller.ts`](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/auth/auth.controller.ts) (Auth endpoints), [`web/src/app`](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/tree/main/web/src/app) (Next.js interface), [`api/src/auth/auth.service.ts`](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/auth/auth.service.ts) (Authentication)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_webapp["Next.js interface"]
  node_registration["Registration page<br/>[page.tsx]"]
  node_registerform["Registration form<br/>[RegisterForm.tsx]"]
  node_loginpage["Login page<br/>[page.tsx]"]
  node_workspacesui["Workspace screens"]
  node_issueui["Issue screens<br/>[page.tsx]"]
end

subgraph group_identity["Identity and access"]
  node_authctrl["Auth endpoints<br/>[auth.controller.ts]"]
  node_authservice["Authentication<br/>[auth.service.ts]"]
  node_users["User accounts<br/>[users.service.ts]"]
end

subgraph group_workspace["Workspace and planning"]
  node_workspacectrl["Workspace endpoints"]
  node_workspaces["Workspace management"]
  node_members["Member management"]
  node_projectsctrl["Project endpoints"]
  node_projects["Project management"]
  node_issuesctrl["Issue endpoints"]
  node_issues["Issue management<br/>[issues.service.ts]"]
end

subgraph group_collaboration["Collaboration"]
  node_commentsctrl["Comment endpoints"]
  node_comments["Issue comments"]
  node_activity["Activity feed"]
  node_notificationsctrl["Notification endpoints"]
  node_notifications["Notifications"]
end

node_person(("Board user"))
node_api["NestJS API<br/>[main.ts]"]
node_database[("PostgreSQL store<br/>[prisma.service.ts]")]

node_person -->|"uses"| node_webapp
node_webapp -->|"calls API"| node_api
node_registration -->|"renders"| node_registerform
node_api -.->|"routes"| node_authctrl
node_authctrl -->|"delegates to"| node_authservice
node_authservice -->|"uses"| node_users
node_authctrl -->|"looks up user"| node_users
node_workspacesui -.->|"uses API"| node_api
node_issueui -.->|"uses API"| node_api
node_workspacectrl -->|"delegates to"| node_workspaces
node_projectsctrl -->|"delegates to"| node_projects
node_issuesctrl -->|"delegates to"| node_issues
node_commentsctrl -->|"delegates to"| node_comments
node_notificationsctrl -->|"delegates to"| node_notifications
node_api -.->|"uses Prisma"| node_database

click node_webapp "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/tree/main/web/src/app"
click node_registration "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/web/src/app/register/page.tsx"
click node_registerform "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/web/src/app/register/RegisterForm.tsx"
click node_loginpage "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/web/src/app/login/page.tsx"
click node_workspacesui "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/tree/main/web/src/app/(app)/workspaces"
click node_issueui "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/web/src/app/(app)/workspaces/%5Bid%5D/projects/%5BprojectId%5D/issues/%5BissueId%5D/page.tsx"
click node_api "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/main.ts"
click node_authctrl "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/auth/auth.controller.ts"
click node_authservice "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/auth/auth.service.ts"
click node_users "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/users/users.service.ts"
click node_workspacectrl "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/workspaces/workspaces.controller.ts"
click node_workspaces "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/workspaces/workspaces.service.ts"
click node_members "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/workspace-members/workspace-members.service.ts"
click node_projectsctrl "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/projects/projects.controller.ts"
click node_projects "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/projects/projects.service.ts"
click node_issuesctrl "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/issues/issues.controller.ts"
click node_issues "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/issues/issues.service.ts"
click node_commentsctrl "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/comments/comments.controller.ts"
click node_comments "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/comments/comments.service.ts"
click node_activity "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/activity/activity.service.ts"
click node_notificationsctrl "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/notifications/notifications.controller.ts"
click node_notifications "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/notifications/notifications.service.ts"
click node_database "https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/prisma/prisma.service.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_webapp,node_registration,node_registerform,node_loginpage,node_workspacesui,node_issueui,node_person toneBlue
class node_authctrl,node_authservice,node_users,node_database toneAmber
class node_workspacectrl,node_workspaces,node_members,node_projectsctrl,node_projects,node_issuesctrl,node_issues,node_api toneMint
class node_commentsctrl,node_comments,node_activity,node_notificationsctrl,node_notifications toneRose
```

## Components

### Web application

- [Next.js interface](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/tree/main/web/src/app): `web/src/app`
- [Registration page](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/web/src/app/register/page.tsx): `web/src/app/register/page.tsx`
- [Registration form](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/web/src/app/register/RegisterForm.tsx): `web/src/app/register/RegisterForm.tsx`
- [Login page](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/web/src/app/login/page.tsx): `web/src/app/login/page.tsx`
- [Workspace screens](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/tree/main/web/src/app/(app)/workspaces): `web/src/app/(app)/workspaces`
- [Issue screens](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/web/src/app/(app)/workspaces/%5Bid%5D/projects/%5BprojectId%5D/issues/%5BissueId%5D/page.tsx): `web/src/app/(app)/workspaces/[id]/projects/[projectId]/issues/[issueId]/page.tsx`

### Identity and access

- [Auth endpoints](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/auth/auth.controller.ts): `api/src/auth/auth.controller.ts`
- [Authentication](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/auth/auth.service.ts): `api/src/auth/auth.service.ts`
- [User accounts](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/users/users.service.ts): `api/src/users/users.service.ts`

### Workspace and planning

- [Workspace endpoints](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/workspaces/workspaces.controller.ts): `api/src/workspaces/workspaces.controller.ts`
- [Workspace management](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/workspaces/workspaces.service.ts): `api/src/workspaces/workspaces.service.ts`
- [Member management](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/workspace-members/workspace-members.service.ts): `api/src/workspace-members/workspace-members.service.ts`
- [Project endpoints](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/projects/projects.controller.ts): `api/src/projects/projects.controller.ts`
- [Project management](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/projects/projects.service.ts): `api/src/projects/projects.service.ts`
- [Issue endpoints](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/issues/issues.controller.ts): `api/src/issues/issues.controller.ts`
- [Issue management](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/issues/issues.service.ts): `api/src/issues/issues.service.ts`

### Collaboration

- [Comment endpoints](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/comments/comments.controller.ts): `api/src/comments/comments.controller.ts`
- [Issue comments](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/comments/comments.service.ts): `api/src/comments/comments.service.ts`
- [Activity feed](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/activity/activity.service.ts): `api/src/activity/activity.service.ts`
- [Notification endpoints](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/notifications/notifications.controller.ts): `api/src/notifications/notifications.controller.ts`
- [Notifications](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/notifications/notifications.service.ts): `api/src/notifications/notifications.service.ts`

### Other components

- **Board user**
- [NestJS API](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/main.ts): `api/src/main.ts`
- [PostgreSQL store](https://github.com/b4f-cohort8-salamiyah/b4f-cohort8-salamiyah-next-nest-bootcamp-2026/blob/main/api/src/prisma/prisma.service.ts): `api/src/prisma/prisma.service.ts`

## Connections

- Board user → Next.js interface: uses
- Next.js interface → NestJS API: calls API (evidence: `README.md`)
- Registration page → Registration form: renders (evidence: `web/src/app/register/page.tsx`)
- NestJS API → Auth endpoints: routes
- Auth endpoints → Authentication: delegates to (evidence: `api/src/auth/auth.controller.ts`)
- Authentication → User accounts: uses (evidence: `api/src/auth/auth.service.ts`)
- Auth endpoints → User accounts: looks up user (evidence: `api/src/auth/auth.controller.ts`)
- Workspace screens → NestJS API: uses API
- Issue screens → NestJS API: uses API
- Workspace endpoints → Workspace management: delegates to (evidence: `api/src/workspaces/workspaces.controller.ts`)
- Project endpoints → Project management: delegates to (evidence: `api/src/projects/projects.controller.ts`)
- Issue endpoints → Issue management: delegates to (evidence: `api/src/issues/issues.controller.ts`)
- Comment endpoints → Issue comments: delegates to (evidence: `api/src/comments/comments.controller.ts`)
- Notification endpoints → Notifications: delegates to (evidence: `api/src/notifications/notifications.controller.ts`)
- NestJS API → PostgreSQL store: uses Prisma
