# joydip-007/uniconnect_new architecture

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

- Interactive diagram: https://gitdiagram.com/joydip-007/uniconnect_new
- Repository: https://github.com/joydip-007/uniconnect_new

## Overview

UniConnecT is a university-scoped social and campus platform. Users enter through the web app to access verified accounts and a broad set of campus services; the API coordinates domain operations, while PostgreSQL, Redis-backed queues, real-time sockets, and workers support persistence and asynchronous features. The README documents the major product branches and runtime layers. Some connections below are documented at a high level; unsampled module wiring is not inferred beyond those statements.

Main entry points: [`apps/api/src/server.ts`](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/server.ts) (REST API), [`apps/api/src/modules/academic/course-outline.service.ts`](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/academic/course-outline.service.ts) (Course tools), [`apps/api/src/config/db.ts`](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/config/db.ts) (PostgreSQL), [`apps/web/src/App.tsx`](https://github.com/joydip-007/uniconnect_new/blob/main/apps/web/src/App.tsx) (Web application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["App entry"]
  node_web["Web application<br/>[App.tsx]"]
  node_api["REST API<br/>[server.ts]"]
  node_auth["Verified auth<br/>[service.ts]"]
end

subgraph group_community["Community"]
  node_profiles["Profiles<br/>[service.ts]"]
  node_social["Feed and moderation<br/>[service.ts]"]
  node_groups["Groups<br/>[service.ts]"]
  node_messaging["Messaging<br/>[service.ts]"]
  node_connections["Connections<br/>[service.ts]"]
end

subgraph group_campus["Campus services"]
  node_jobs_events["Jobs and events<br/>[service.ts]"]
  node_campus_tools["Campus tools<br/>[service.ts]"]
end

subgraph group_learning["Learning"]
  node_academic["Course tools"]
  node_learning_paths["Learning and quizzes<br/>[service.ts]"]
  node_learning_admin["Learning approval<br/>[service.ts]"]
end

subgraph group_runtime["API runtime"]
  node_admin["Administration<br/>[service.ts]"]
  node_database[("PostgreSQL<br/>[db.ts]")]
  node_redis[("Redis<br/>[redis.ts]")]
  node_queues["Background queues"]
  node_workers["Background workers<br/>[index.ts]"]
  node_sockets["Real-time sockets<br/>[index.ts]"]
end

node_users(("Campus users"))

node_users -->|"uses"| node_web
node_web -.->|"requests"| node_api
node_api -.->|"routes auth"| node_auth
node_api -.->|"serves feed"| node_social
node_api -.->|"serves profiles"| node_profiles
node_api -.->|"serves groups"| node_groups
node_api -.->|"serves messages"| node_messaging
node_api -.->|"serves connections"| node_connections
node_api -.->|"serves listings"| node_jobs_events
node_api -.->|"serves tools"| node_campus_tools
node_api -.->|"serves courses"| node_academic
node_api -.->|"serves learning"| node_learning_paths
node_api -.->|"serves approvals"| node_learning_admin
node_api -.->|"serves admin"| node_admin
node_social -->|"reads and writes"| node_database
node_academic -->|"checks access"| node_groups
node_academic -->|"reads and writes"| node_database
node_admin -->|"uses storage"| node_database
node_api -->|"uses cache"| node_redis
node_redis -->|"backs queues"| node_queues
node_queues -->|"dispatches jobs"| node_workers
node_workers -.->|"processes jobs"| node_api
node_api -->|"emits events"| node_sockets
node_learning_admin -->|"reviews content"| node_learning_paths

click node_web "https://github.com/joydip-007/uniconnect_new/blob/main/apps/web/src/App.tsx"
click node_api "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/server.ts"
click node_auth "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/auth/service.ts"
click node_profiles "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/users/service.ts"
click node_social "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/feed/service.ts"
click node_groups "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/groups/service.ts"
click node_messaging "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/messages/service.ts"
click node_connections "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/connections/service.ts"
click node_jobs_events "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/jobs/service.ts"
click node_campus_tools "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/campus/service.ts"
click node_academic "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/academic/course-outline.service.ts"
click node_learning_paths "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/learning/service.ts"
click node_learning_admin "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/learning-admin/service.ts"
click node_admin "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/admin/service.ts"
click node_database "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/config/db.ts"
click node_redis "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/config/redis.ts"
click node_queues "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/queues/notification.queue.ts"
click node_workers "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/workers/index.ts"
click node_sockets "https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/socket/index.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_web,node_api,node_auth,node_users toneBlue
class node_profiles,node_social,node_groups,node_messaging,node_connections toneAmber
class node_jobs_events,node_campus_tools toneMint
class node_academic,node_learning_paths,node_learning_admin toneRose
class node_admin,node_database,node_redis,node_queues,node_workers,node_sockets toneIndigo
```

## Components

### App entry

- [Web application](https://github.com/joydip-007/uniconnect_new/blob/main/apps/web/src/App.tsx): `apps/web/src/App.tsx`
- [REST API](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/server.ts): `apps/api/src/server.ts`
- [Verified auth](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/auth/service.ts): `apps/api/src/modules/auth/service.ts`

### Community

- [Profiles](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/users/service.ts): `apps/api/src/modules/users/service.ts`
- [Feed and moderation](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/feed/service.ts): `apps/api/src/modules/feed/service.ts`
- [Groups](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/groups/service.ts): `apps/api/src/modules/groups/service.ts`
- [Messaging](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/messages/service.ts): `apps/api/src/modules/messages/service.ts`
- [Connections](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/connections/service.ts): `apps/api/src/modules/connections/service.ts`

### Campus services

- [Jobs and events](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/jobs/service.ts): `apps/api/src/modules/jobs/service.ts`
- [Campus tools](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/campus/service.ts): `apps/api/src/modules/campus/service.ts`

### Learning

- [Course tools](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/academic/course-outline.service.ts): `apps/api/src/modules/academic/course-outline.service.ts`
- [Learning and quizzes](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/learning/service.ts): `apps/api/src/modules/learning/service.ts`
- [Learning approval](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/learning-admin/service.ts): `apps/api/src/modules/learning-admin/service.ts`

### API runtime

- [Administration](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/modules/admin/service.ts): `apps/api/src/modules/admin/service.ts`
- [PostgreSQL](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/config/db.ts): `apps/api/src/config/db.ts`
- [Redis](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/config/redis.ts): `apps/api/src/config/redis.ts`
- [Background queues](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/queues/notification.queue.ts): `apps/api/src/queues/notification.queue.ts`
- [Background workers](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/workers/index.ts): `apps/api/src/workers/index.ts`
- [Real-time sockets](https://github.com/joydip-007/uniconnect_new/blob/main/apps/api/src/socket/index.ts): `apps/api/src/socket/index.ts`

### Other components

- **Campus users**

## Connections

- Campus users → Web application: uses (evidence: `README.md`)
- Web application → REST API: requests
- REST API → Verified auth: routes auth
- REST API → Feed and moderation: serves feed
- REST API → Profiles: serves profiles
- REST API → Groups: serves groups
- REST API → Messaging: serves messages
- REST API → Connections: serves connections
- REST API → Jobs and events: serves listings
- REST API → Campus tools: serves tools
- REST API → Course tools: serves courses
- REST API → Learning and quizzes: serves learning
- REST API → Learning approval: serves approvals
- REST API → Administration: serves admin
- Feed and moderation → PostgreSQL: reads and writes (evidence: `apps/api/src/modules/feed/service.ts`)
- Course tools → Groups: checks access (evidence: `apps/api/src/modules/academic/course-outline.service.ts`)
- Course tools → PostgreSQL: reads and writes (evidence: `apps/api/src/modules/academic/course-outline.service.ts`)
- Administration → PostgreSQL: uses storage (evidence: `README.md`)
- REST API → Redis: uses cache (evidence: `README.md`)
- Redis → Background queues: backs queues (evidence: `README.md`)
- Background queues → Background workers: dispatches jobs (evidence: `README.md`)
- Background workers → REST API: processes jobs
- REST API → Real-time sockets: emits events (evidence: `README.md`)
- Learning approval → Learning and quizzes: reviews content (evidence: `README.md`)
