# alui-abdiha/venncommunitytech architecture

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

- Interactive diagram: https://gitdiagram.com/alui-abdiha/venncommunitytech
- Repository: https://github.com/alui-abdiha/venncommunitytech

## Overview

Venn Tech Co is a team project-management application. Users enter through the web client, authenticate, and work with dashboards for projects, tasks, teams, milestones, schedules, chat, and rankings; administrators also manage users. The server exposes the corresponding API, applies authentication and role checks, and persists application data in MongoDB models. The graph includes documented routing and source-index-supported dependencies. Some client-to-server HTTP wiring and unsampled feature implementations are not shown, so those connections are marked unverified rather than asserted.

Main entry points: [`client/src/app/App.jsx`](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/app/App.jsx) (Client router), [`server/src/index.js`](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/index.js) (Express API), [`client/src/services/api.js`](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/services/api.js) (API client), [`server/src/routes/project.routes.js`](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/project.routes.js) (Project endpoints)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web client"]
  node_app["Client router<br/>[App.jsx]"]
  node_home["Home<br/>[Home.jsx]"]
  node_layout["Dashboard shell"]
  node_navbar["Navigation<br/>[Navbar.jsx]"]
  node_sidebar["Sidebar<br/>[Sidebar.jsx]"]
end

subgraph group_identity["Identity and access"]
  node_login["Login and register<br/>[Login.jsx]"]
  node_client_auth["Client auth state<br/>[auth.js]"]
  node_auth_service["Auth service<br/>[authService.js]"]
  node_protected["Route guards<br/>[ProtectedRoute.jsx]"]
  node_admin_guard["Admin guard<br/>[AdminRoute.jsx]"]
  node_admin_users["User administration<br/>[AdminUsers.jsx]"]
  node_auth_routes["Auth endpoints<br/>[auth.routes.js]"]
  node_auth_middleware["Authentication<br/>[requireAuth.js]"]
  node_role_middleware["Role authorization<br/>[requireRole.js]"]
end

subgraph group_work["Project work"]
  node_dashboard["Dashboard overview<br/>[Dashboard.jsx]"]
  node_projects_ui["Project workspace<br/>[Project.jsx]"]
  node_tasks_ui["Task workspace<br/>[Task.jsx]"]
  node_teams_ui["Team workspace<br/>[Teams.jsx]"]
  node_milestones_ui["Milestones<br/>[Milestones.jsx]"]
  node_gantt_ui["Schedule view<br/>[GanttCustom.jsx]"]
  node_project_routes["Project endpoints<br/>[project.routes.js]"]
  node_project_controller["Project operations"]
  node_task_routes["Task endpoints<br/>[task.routes.js]"]
  node_task_controller["Task operations<br/>[task.controller.js]"]
  node_milestone_routes["Milestone endpoints"]
  node_team_routes["Team endpoints<br/>[teamRoutes.js]"]
end

subgraph group_collaboration["Collaboration and insights"]
  node_chat_ui["Chat board<br/>[ChatBoard.jsx]"]
  node_leaderboard_ui["Leaderboard<br/>[Leaderboard.jsx]"]
  node_stats_routes["Dashboard statistics<br/>[statsRoutes.js]"]
  node_leaderboard_routes["Leaderboard endpoints"]
  node_chat_routes["Chat endpoints<br/>[chat.routes.js]"]
end

subgraph group_server["API and persistence"]
  node_api["API client<br/>[api.js]"]
  node_server["Express API<br/>[index.js]"]
end

node_person(("User"))

node_person -->|"uses"| node_app
node_app -->|"routes to"| node_home
node_app -->|"routes to"| node_login
node_app -->|"mounts"| node_layout
node_app -->|"guards"| node_protected
node_app -->|"guards"| node_admin_guard
node_app -->|"routes to"| node_dashboard
node_app -->|"routes to"| node_projects_ui
node_app -->|"routes to"| node_tasks_ui
node_app -->|"routes to"| node_teams_ui
node_app -->|"routes to"| node_milestones_ui
node_app -->|"routes to"| node_gantt_ui
node_app -->|"routes to"| node_chat_ui
node_app -->|"routes to"| node_leaderboard_ui
node_app -->|"routes to"| node_admin_users
node_layout -->|"renders"| node_navbar
node_layout -->|"renders"| node_sidebar
node_navbar -->|"reads auth"| node_client_auth
node_sidebar -->|"reads auth"| node_client_auth
node_admin_guard -->|"checks role"| node_client_auth
node_auth_service -->|"uses"| node_api
node_api -->|"reads token"| node_client_auth
node_login -.->|"uses"| node_auth_service
node_projects_ui -->|"requests data"| node_api
node_tasks_ui -->|"requests data"| node_api
node_admin_users -->|"requests data"| node_api
node_api -.->|"sends requests"| node_server
node_server -->|"mounts"| node_auth_routes
node_server -->|"mounts"| node_project_routes
node_server -->|"mounts"| node_task_routes
node_server -->|"mounts"| node_milestone_routes
node_server -->|"mounts"| node_team_routes
node_server -->|"mounts"| node_stats_routes
node_server -->|"mounts"| node_leaderboard_routes
node_server -->|"mounts"| node_chat_routes
node_project_routes -->|"dispatches"| node_project_controller
node_task_routes -->|"dispatches"| node_task_controller
node_project_routes -->|"checks auth"| node_auth_middleware
node_project_routes -->|"checks role"| node_role_middleware
node_task_routes -->|"checks auth"| node_auth_middleware
node_task_routes -->|"checks role"| node_role_middleware
node_team_routes -->|"checks auth"| node_auth_middleware
node_team_routes -->|"checks role"| node_role_middleware
node_chat_routes -->|"checks auth"| node_auth_middleware
node_project_controller -.->|"queries models"| node_server
node_task_controller -.->|"queries models"| node_server

click node_app "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/app/App.jsx"
click node_home "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/Home.jsx"
click node_layout "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/layouts/DashboardLayout.jsx"
click node_navbar "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/components/Navbar.jsx"
click node_sidebar "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/components/Sidebar.jsx"
click node_login "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/Login.jsx"
click node_client_auth "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/services/auth.js"
click node_auth_service "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/services/authService.js"
click node_protected "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/routes/ProtectedRoute.jsx"
click node_admin_guard "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/routes/AdminRoute.jsx"
click node_api "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/services/api.js"
click node_dashboard "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/Dashboard.jsx"
click node_projects_ui "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/Project.jsx"
click node_tasks_ui "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/Task.jsx"
click node_teams_ui "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/Teams.jsx"
click node_milestones_ui "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/Milestones.jsx"
click node_gantt_ui "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/GanttCustom.jsx"
click node_chat_ui "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/ChatBoard.jsx"
click node_leaderboard_ui "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/Leaderboard.jsx"
click node_admin_users "https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/AdminUsers.jsx"
click node_server "https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/index.js"
click node_auth_routes "https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/auth.routes.js"
click node_auth_middleware "https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/middleware/requireAuth.js"
click node_role_middleware "https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/middleware/requireRole.js"
click node_project_routes "https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/project.routes.js"
click node_project_controller "https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/controllers/project.controller.js"
click node_task_routes "https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/task.routes.js"
click node_task_controller "https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/controllers/task.controller.js"
click node_milestone_routes "https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/milestone.routes.js"
click node_team_routes "https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/teamRoutes.js"
click node_stats_routes "https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/statsRoutes.js"
click node_leaderboard_routes "https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/leaderboard.routes.js"
click node_chat_routes "https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/chat.routes.js"

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_app,node_home,node_layout,node_navbar,node_sidebar,node_person toneBlue
class node_login,node_client_auth,node_auth_service,node_protected,node_admin_guard,node_admin_users,node_auth_routes,node_auth_middleware,node_role_middleware toneAmber
class node_dashboard,node_projects_ui,node_tasks_ui,node_teams_ui,node_milestones_ui,node_gantt_ui,node_project_routes,node_project_controller,node_task_routes,node_task_controller,node_milestone_routes,node_team_routes toneMint
class node_chat_ui,node_leaderboard_ui,node_stats_routes,node_leaderboard_routes,node_chat_routes toneRose
class node_api,node_server toneIndigo
```

## Components

### Web client

- [Client router](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/app/App.jsx): `client/src/app/App.jsx`
- [Home](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/Home.jsx): `client/src/pages/Home.jsx`
- [Dashboard shell](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/layouts/DashboardLayout.jsx): `client/src/layouts/DashboardLayout.jsx`
- [Navigation](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/components/Navbar.jsx): `client/src/components/Navbar.jsx`
- [Sidebar](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/components/Sidebar.jsx): `client/src/components/Sidebar.jsx`

### Identity and access

- [Login and register](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/Login.jsx): `client/src/pages/Login.jsx`
- [Client auth state](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/services/auth.js): `client/src/services/auth.js`
- [Auth service](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/services/authService.js): `client/src/services/authService.js`
- [Route guards](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/routes/ProtectedRoute.jsx): `client/src/routes/ProtectedRoute.jsx`
- [Admin guard](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/routes/AdminRoute.jsx): `client/src/routes/AdminRoute.jsx`
- [User administration](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/AdminUsers.jsx): `client/src/pages/AdminUsers.jsx`
- [Auth endpoints](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/auth.routes.js): `server/src/routes/auth.routes.js`
- [Authentication](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/middleware/requireAuth.js): `server/src/middleware/requireAuth.js`
- [Role authorization](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/middleware/requireRole.js): `server/src/middleware/requireRole.js`

### Project work

- [Dashboard overview](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/Dashboard.jsx): `client/src/pages/dashboard/Dashboard.jsx`
- [Project workspace](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/Project.jsx): `client/src/pages/dashboard/Project.jsx`
- [Task workspace](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/Task.jsx): `client/src/pages/dashboard/Task.jsx`
- [Team workspace](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/Teams.jsx): `client/src/pages/dashboard/Teams.jsx`
- [Milestones](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/Milestones.jsx): `client/src/pages/dashboard/Milestones.jsx`
- [Schedule view](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/GanttCustom.jsx): `client/src/pages/dashboard/GanttCustom.jsx`
- [Project endpoints](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/project.routes.js): `server/src/routes/project.routes.js`
- [Project operations](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/controllers/project.controller.js): `server/src/controllers/project.controller.js`
- [Task endpoints](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/task.routes.js): `server/src/routes/task.routes.js`
- [Task operations](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/controllers/task.controller.js): `server/src/controllers/task.controller.js`
- [Milestone endpoints](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/milestone.routes.js): `server/src/routes/milestone.routes.js`
- [Team endpoints](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/teamRoutes.js): `server/src/routes/teamRoutes.js`

### Collaboration and insights

- [Chat board](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/ChatBoard.jsx): `client/src/pages/dashboard/ChatBoard.jsx`
- [Leaderboard](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/pages/dashboard/Leaderboard.jsx): `client/src/pages/dashboard/Leaderboard.jsx`
- [Dashboard statistics](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/statsRoutes.js): `server/src/routes/statsRoutes.js`
- [Leaderboard endpoints](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/leaderboard.routes.js): `server/src/routes/leaderboard.routes.js`
- [Chat endpoints](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/routes/chat.routes.js): `server/src/routes/chat.routes.js`

### API and persistence

- [API client](https://github.com/alui-abdiha/venncommunitytech/blob/main/client/src/services/api.js): `client/src/services/api.js`
- [Express API](https://github.com/alui-abdiha/venncommunitytech/blob/main/server/src/index.js): `server/src/index.js`

### Other components

- **User**

## Connections

- User → Client router: uses (evidence: `client/src/app/App.jsx`)
- Client router → Home: routes to (evidence: `client/src/app/App.jsx`)
- Client router → Login and register: routes to (evidence: `client/src/app/App.jsx`)
- Client router → Dashboard shell: mounts (evidence: `client/src/app/App.jsx`)
- Client router → Route guards: guards (evidence: `client/src/app/App.jsx`)
- Client router → Admin guard: guards (evidence: `client/src/app/App.jsx`)
- Client router → Dashboard overview: routes to (evidence: `client/src/app/App.jsx`)
- Client router → Project workspace: routes to (evidence: `client/src/app/App.jsx`)
- Client router → Task workspace: routes to (evidence: `client/src/app/App.jsx`)
- Client router → Team workspace: routes to (evidence: `client/src/app/App.jsx`)
- Client router → Milestones: routes to (evidence: `client/src/app/App.jsx`)
- Client router → Schedule view: routes to (evidence: `client/src/app/App.jsx`)
- Client router → Chat board: routes to (evidence: `client/src/app/App.jsx`)
- Client router → Leaderboard: routes to (evidence: `client/src/app/App.jsx`)
- Client router → User administration: routes to (evidence: `client/src/app/App.jsx`)
- Dashboard shell → Navigation: renders (evidence: `client/src/layouts/DashboardLayout.jsx`)
- Dashboard shell → Sidebar: renders (evidence: `client/src/layouts/DashboardLayout.jsx`)
- Navigation → Client auth state: reads auth (evidence: `client/src/components/Navbar.jsx`)
- Sidebar → Client auth state: reads auth (evidence: `client/src/components/Sidebar.jsx`)
- Admin guard → Client auth state: checks role (evidence: `client/src/routes/AdminRoute.jsx`)
- Auth service → API client: uses (evidence: `client/src/services/authService.js`)
- API client → Client auth state: reads token (evidence: `client/src/services/api.js`)
- Login and register → Auth service: uses
- Project workspace → API client: requests data (evidence: `client/src/pages/dashboard/Project.jsx`)
- Task workspace → API client: requests data (evidence: `client/src/pages/dashboard/Task.jsx`)
- User administration → API client: requests data (evidence: `client/src/pages/AdminUsers.jsx`)
- API client → Express API: sends requests
- Express API → Auth endpoints: mounts (evidence: `server/src/index.js`)
- Express API → Project endpoints: mounts (evidence: `server/src/index.js`)
- Express API → Task endpoints: mounts (evidence: `server/src/index.js`)
- Express API → Milestone endpoints: mounts (evidence: `server/src/index.js`)
- Express API → Team endpoints: mounts (evidence: `server/src/index.js`)
- Express API → Dashboard statistics: mounts (evidence: `server/src/index.js`)
- Express API → Leaderboard endpoints: mounts (evidence: `server/src/index.js`)
- Express API → Chat endpoints: mounts (evidence: `server/src/index.js`)
- Project endpoints → Project operations: dispatches (evidence: `server/src/routes/project.routes.js`)
- Task endpoints → Task operations: dispatches (evidence: `server/src/routes/task.routes.js`)
- Project endpoints → Authentication: checks auth (evidence: `server/src/routes/project.routes.js`)
- Project endpoints → Role authorization: checks role (evidence: `server/src/routes/project.routes.js`)
- Task endpoints → Authentication: checks auth (evidence: `server/src/routes/task.routes.js`)
- Task endpoints → Role authorization: checks role (evidence: `server/src/routes/task.routes.js`)
- Team endpoints → Authentication: checks auth (evidence: `server/src/routes/teamRoutes.js`)
- Team endpoints → Role authorization: checks role (evidence: `server/src/routes/teamRoutes.js`)
- Chat endpoints → Authentication: checks auth (evidence: `server/src/routes/chat.routes.js`)
- Project operations → Express API: queries models
- Task operations → Express API: queries models
