# wasimansari/brc_project architecture

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

## Overview

Eduubuzz is an Angular school-information website backed by an Express API and MongoDB. Visitors browse school content and search school records; admins manage published content, while teachers authenticate and manage documents. The graph preserves these separate workflows and the documented news, events, courses, gallery, downloads, and school-directory capabilities. Route and model wiring is explicit in the sampled backend; several frontend feature connections are inferred only at the service/API level from the repository structure and README.

Main entry points: [`server/server.js`](https://github.com/wasimansari/brc_project/blob/main/server/server.js) (Express API), [`server/routes/index.js`](https://github.com/wasimansari/brc_project/blob/main/server/routes/index.js) (API routes), [`server/models/index.js`](https://github.com/wasimansari/brc_project/blob/main/server/models/index.js) (Data models), [`src/app/services/school-search.service.ts`](https://github.com/wasimansari/brc_project/blob/main/src/app/services/school-search.service.ts) (School search)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public website"]
  node_app["Angular app<br/>[app.module.ts]"]
  node_pages["Public pages<br/>[home.component.ts]"]
  node_schoolsearch["School search"]
  node_schoolresults["School details"]
  node_contentservices["Content services<br/>[services.ts]"]
  node_newsservice["News service"]
end

subgraph group_management["Content management"]
  node_admin["Admin portal"]
  node_adminauth["Admin authentication<br/>[auth.service.ts]"]
end

subgraph group_teacher["Teacher portal"]
  node_teacherui["Teacher portal"]
  node_teacherauth["Teacher authentication"]
  node_teacherdocs["Teacher documents"]
end

subgraph group_backend["API and persistence"]
  node_api["Express API<br/>[server.js]"]
  node_routes["API routes<br/>[index.js]"]
  node_authroutes["Admin auth routes<br/>[auth.js]"]
  node_teacherroutes["Teacher routes<br/>[teacher.js]"]
  node_docroutes["Document routes<br/>[teacherDocs.js]"]
  node_contentroutes["Content routes<br/>[events.js]"]
  node_models["Data models<br/>[index.js]"]
  node_mongodb[("MongoDB<br/>[db.js]")]
end

subgraph group_integrations["External services"]
  node_cloudinary[("Cloudinary")]
  node_udise["UDISE services"]
end

node_visitor(("Visitor"))

node_visitor -->|"opens"| node_app
node_app -->|"routes to"| node_pages
node_pages -->|"requests content"| node_contentservices
node_pages -->|"searches schools"| node_schoolsearch
node_schoolsearch -.->|"queries details"| node_udise
node_schoolsearch -->|"fallback search"| node_api
node_schoolsearch -->|"maps results"| node_schoolresults
node_visitor -->|"manages content"| node_admin
node_admin -->|"authenticates"| node_adminauth
node_admin -->|"edits content"| node_contentservices
node_adminauth -->|"login requests"| node_api
node_visitor -->|"uses portal"| node_teacherui
node_teacherui -->|"authenticates"| node_teacherauth
node_teacherui -->|"manages documents"| node_teacherdocs
node_teacherauth -->|"auth requests"| node_api
node_teacherdocs -->|"document requests"| node_api
node_contentservices -->|"content requests"| node_api
node_newsservice -->|"fetches news"| node_api
node_api -->|"mounts"| node_routes
node_routes -->|"dispatches"| node_authroutes
node_routes -->|"dispatches"| node_teacherroutes
node_routes -->|"dispatches"| node_docroutes
node_routes -->|"dispatches"| node_contentroutes
node_authroutes -->|"uses models"| node_models
node_teacherroutes -->|"uses models"| node_models
node_docroutes -->|"uses models"| node_models
node_contentroutes -->|"uses models"| node_models
node_api -->|"connects"| node_mongodb
node_models -->|"persists data"| node_mongodb
node_contentroutes -.->|"stores media"| node_cloudinary
node_docroutes -.->|"stores uploads"| node_cloudinary

click node_app "https://github.com/wasimansari/brc_project/blob/main/src/app/app.module.ts"
click node_pages "https://github.com/wasimansari/brc_project/blob/main/src/app/pages/home/home.component.ts"
click node_schoolsearch "https://github.com/wasimansari/brc_project/blob/main/src/app/services/school-search.service.ts"
click node_schoolresults "https://github.com/wasimansari/brc_project/blob/main/src/app/pages/search-school/search-school.component.ts"
click node_admin "https://github.com/wasimansari/brc_project/blob/main/src/app/admin/admin-dashboard/admin-dashboard.component.ts"
click node_adminauth "https://github.com/wasimansari/brc_project/blob/main/src/app/services/auth.service.ts"
click node_teacherui "https://github.com/wasimansari/brc_project/blob/main/src/app/teacher/teacher-dashboard/teacher-dashboard.component.ts"
click node_teacherauth "https://github.com/wasimansari/brc_project/blob/main/src/app/services/teacher-auth.service.ts"
click node_teacherdocs "https://github.com/wasimansari/brc_project/blob/main/src/app/services/teacher-auth.service.ts"
click node_contentservices "https://github.com/wasimansari/brc_project/blob/main/src/app/services/services.ts"
click node_newsservice "https://github.com/wasimansari/brc_project/blob/main/src/app/services/enhanced-news.service.ts"
click node_api "https://github.com/wasimansari/brc_project/blob/main/server/server.js"
click node_routes "https://github.com/wasimansari/brc_project/blob/main/server/routes/index.js"
click node_authroutes "https://github.com/wasimansari/brc_project/blob/main/server/routes/auth.js"
click node_teacherroutes "https://github.com/wasimansari/brc_project/blob/main/server/routes/teacher.js"
click node_docroutes "https://github.com/wasimansari/brc_project/blob/main/server/routes/teacherDocs.js"
click node_contentroutes "https://github.com/wasimansari/brc_project/blob/main/server/routes/events.js"
click node_models "https://github.com/wasimansari/brc_project/blob/main/server/models/index.js"
click node_mongodb "https://github.com/wasimansari/brc_project/blob/main/server/config/db.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_pages,node_schoolsearch,node_schoolresults,node_contentservices,node_newsservice toneBlue
class node_admin,node_adminauth toneAmber
class node_teacherui,node_teacherauth,node_teacherdocs toneMint
class node_api,node_routes,node_authroutes,node_teacherroutes,node_docroutes,node_contentroutes,node_models,node_mongodb toneRose
class node_cloudinary,node_udise,node_visitor toneIndigo
```

## Components

### Public website

- [Angular app](https://github.com/wasimansari/brc_project/blob/main/src/app/app.module.ts): `src/app/app.module.ts`
- [Public pages](https://github.com/wasimansari/brc_project/blob/main/src/app/pages/home/home.component.ts): `src/app/pages/home/home.component.ts`
- [School search](https://github.com/wasimansari/brc_project/blob/main/src/app/services/school-search.service.ts): `src/app/services/school-search.service.ts`
- [School details](https://github.com/wasimansari/brc_project/blob/main/src/app/pages/search-school/search-school.component.ts): `src/app/pages/search-school/search-school.component.ts`
- [Content services](https://github.com/wasimansari/brc_project/blob/main/src/app/services/services.ts): `src/app/services/services.ts`
- [News service](https://github.com/wasimansari/brc_project/blob/main/src/app/services/enhanced-news.service.ts): `src/app/services/enhanced-news.service.ts`

### Content management

- [Admin portal](https://github.com/wasimansari/brc_project/blob/main/src/app/admin/admin-dashboard/admin-dashboard.component.ts): `src/app/admin/admin-dashboard/admin-dashboard.component.ts`
- [Admin authentication](https://github.com/wasimansari/brc_project/blob/main/src/app/services/auth.service.ts): `src/app/services/auth.service.ts`

### Teacher portal

- [Teacher portal](https://github.com/wasimansari/brc_project/blob/main/src/app/teacher/teacher-dashboard/teacher-dashboard.component.ts): `src/app/teacher/teacher-dashboard/teacher-dashboard.component.ts`
- [Teacher authentication](https://github.com/wasimansari/brc_project/blob/main/src/app/services/teacher-auth.service.ts): `src/app/services/teacher-auth.service.ts`
- [Teacher documents](https://github.com/wasimansari/brc_project/blob/main/src/app/services/teacher-auth.service.ts): `src/app/services/teacher-auth.service.ts`

### API and persistence

- [Express API](https://github.com/wasimansari/brc_project/blob/main/server/server.js): `server/server.js`
- [API routes](https://github.com/wasimansari/brc_project/blob/main/server/routes/index.js): `server/routes/index.js`
- [Admin auth routes](https://github.com/wasimansari/brc_project/blob/main/server/routes/auth.js): `server/routes/auth.js`
- [Teacher routes](https://github.com/wasimansari/brc_project/blob/main/server/routes/teacher.js): `server/routes/teacher.js`
- [Document routes](https://github.com/wasimansari/brc_project/blob/main/server/routes/teacherDocs.js): `server/routes/teacherDocs.js`
- [Content routes](https://github.com/wasimansari/brc_project/blob/main/server/routes/events.js): `server/routes/events.js`
- [Data models](https://github.com/wasimansari/brc_project/blob/main/server/models/index.js): `server/models/index.js`
- [MongoDB](https://github.com/wasimansari/brc_project/blob/main/server/config/db.js): `server/config/db.js`

### External services

- **Cloudinary**
- **UDISE services**

### Other components

- **Visitor**

## Connections

- Visitor → Angular app: opens
- Angular app → Public pages: routes to
- Public pages → Content services: requests content
- Public pages → School search: searches schools
- School search → UDISE services: queries details
- School search → Express API: fallback search
- School search → School details: maps results
- Visitor → Admin portal: manages content
- Admin portal → Admin authentication: authenticates
- Admin portal → Content services: edits content
- Admin authentication → Express API: login requests
- Visitor → Teacher portal: uses portal
- Teacher portal → Teacher authentication: authenticates
- Teacher portal → Teacher documents: manages documents
- Teacher authentication → Express API: auth requests
- Teacher documents → Express API: document requests
- Content services → Express API: content requests
- News service → Express API: fetches news
- Express API → API routes: mounts
- API routes → Admin auth routes: dispatches
- API routes → Teacher routes: dispatches
- API routes → Document routes: dispatches
- API routes → Content routes: dispatches
- Admin auth routes → Data models: uses models
- Teacher routes → Data models: uses models
- Document routes → Data models: uses models
- Content routes → Data models: uses models
- Express API → MongoDB: connects
- Data models → MongoDB: persists data
- Content routes → Cloudinary: stores media
- Document routes → Cloudinary: stores uploads
