# tushar-313/elevate architecture

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

- Interactive diagram: https://gitdiagram.com/tushar-313/elevate
- Repository: https://github.com/tushar-313/elevate

## Overview

Elevate is a club website and content platform: visitors discover club domains and history, explore events and learning resources, then participate and connect. Its runtime spans a React public site and an Express API with admin-managed content and Google-based authentication. The README documents challenges, sponsors, media, and domain journeys; their source modules are present in the tree, but their detailed wiring was not sampled. The graph shows documented capabilities without asserting unsampled calls; backend data operations are illustrated where controller evidence supports them.

Main entry points: [`frontend/src/App.jsx`](https://github.com/tushar-313/elevate/blob/main/frontend/src/App.jsx) (Site router), [`backend/src/app.js`](https://github.com/tushar-313/elevate/blob/main/backend/src/app.js) (API application), [`backend/src/routes/event.routes.js`](https://github.com/tushar-313/elevate/blob/main/backend/src/routes/event.routes.js) (Event routes), [`backend/src/routes/resource.routes.js`](https://github.com/tushar-313/elevate/blob/main/backend/src/routes/resource.routes.js) (Resource routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public experience"]
  node_app["Site router<br/>[App.jsx]"]
  node_home["Club discovery<br/>[Home.jsx]"]
  node_eventsui["Events browser<br/>[EventsPage.jsx]"]
  node_knowledgeui["Knowledge hub"]
  node_legacyui["Club legacy<br/>[LegacyPage.jsx]"]
  node_domainsui["Domain exploration"]
  node_adminui["Admin dashboard<br/>[AdminDashboard.jsx]"]
end

subgraph group_backend["Content API"]
  node_api["API application<br/>[app.js]"]
  node_eventroute["Event routes<br/>[event.routes.js]"]
  node_eventctrl["Event management"]
  node_resroute["Resource routes<br/>[resource.routes.js]"]
  node_resctrl["Resource management"]
  node_challenge["Challenge content"]
  node_legacy["Legacy content<br/>[legacy.routes.js]"]
  node_sponsor["Sponsor content<br/>[sponsor.routes.js]"]
  node_media["Media management<br/>[media.routes.js]"]
end

subgraph group_identity["Identity and access"]
  node_authcontext["Session context<br/>[AuthContext.jsx]"]
  node_authroute["Auth routes<br/>[auth.routes.js]"]
  node_authctrl["Google login<br/>[auth.controller.js]"]
  node_authmw["Access checks<br/>[auth.middleware.js]"]
end

subgraph group_storage["Persistence and media"]
  node_db[("MongoDB<br/>[db.js]")]
  node_eventmodel["Event records<br/>[Event.js]"]
  node_resmodel["Resource records<br/>[Resource.js]"]
  node_usermodel["User records<br/>[User.js]"]
end

node_visitor(("Visitor"))
node_admin(("Club admin"))
node_cloudinary["Cloudinary<br/>[cloudinary.js]"]
node_google["Google identity"]

node_visitor -->|"visits"| node_app
node_admin -->|"manages content"| node_adminui
node_app -->|"renders"| node_home
node_app -->|"routes to"| node_eventsui
node_app -->|"routes to"| node_knowledgeui
node_app -->|"routes to"| node_legacyui
node_app -->|"routes to"| node_domainsui
node_app -->|"routes to"| node_adminui
node_app -->|"provides session"| node_authcontext
node_authcontext -->|"posts login"| node_api
node_api -->|"dispatches"| node_authroute
node_authroute -->|"invokes"| node_authctrl
node_authctrl -->|"verifies token"| node_google
node_authctrl -->|"reads and writes"| node_usermodel
node_authroute -->|"uses access checks"| node_authmw
node_api -->|"dispatches"| node_eventroute
node_eventroute -->|"invokes"| node_eventctrl
node_eventctrl -->|"reads and writes"| node_eventmodel
node_api -->|"dispatches"| node_resroute
node_resroute -->|"invokes"| node_resctrl
node_resctrl -->|"reads and writes"| node_resmodel
node_resroute -->|"protects admin actions"| node_authmw
node_eventroute -->|"protects admin actions"| node_authmw
node_eventroute -.->|"uploads images"| node_cloudinary
node_resroute -.->|"uploads images"| node_cloudinary
node_api -->|"dispatches"| node_challenge
node_api -->|"dispatches"| node_legacy
node_api -->|"dispatches"| node_sponsor
node_api -->|"dispatches"| node_media
node_db -->|"connects store"| node_eventmodel
node_db -->|"connects store"| node_resmodel
node_db -->|"connects store"| node_usermodel

click node_app "https://github.com/tushar-313/elevate/blob/main/frontend/src/App.jsx"
click node_home "https://github.com/tushar-313/elevate/blob/main/frontend/src/pages/Home/Home.jsx"
click node_eventsui "https://github.com/tushar-313/elevate/blob/main/frontend/src/pages/Events/EventsPage.jsx"
click node_knowledgeui "https://github.com/tushar-313/elevate/blob/main/frontend/src/pages/KnowledgeHub/KnowledgeHubPage.jsx"
click node_legacyui "https://github.com/tushar-313/elevate/blob/main/frontend/src/pages/Legacy/LegacyPage.jsx"
click node_domainsui "https://github.com/tushar-313/elevate/tree/main/frontend/src/pages/Domains"
click node_adminui "https://github.com/tushar-313/elevate/blob/main/frontend/src/pages/Admin/Dashboard/AdminDashboard.jsx"
click node_authcontext "https://github.com/tushar-313/elevate/blob/main/frontend/src/context/AuthContext.jsx"
click node_api "https://github.com/tushar-313/elevate/blob/main/backend/src/app.js"
click node_authroute "https://github.com/tushar-313/elevate/blob/main/backend/src/routes/auth.routes.js"
click node_authctrl "https://github.com/tushar-313/elevate/blob/main/backend/src/controllers/auth.controller.js"
click node_authmw "https://github.com/tushar-313/elevate/blob/main/backend/src/middleware/auth.middleware.js"
click node_eventroute "https://github.com/tushar-313/elevate/blob/main/backend/src/routes/event.routes.js"
click node_eventctrl "https://github.com/tushar-313/elevate/blob/main/backend/src/controllers/event.controller.js"
click node_resroute "https://github.com/tushar-313/elevate/blob/main/backend/src/routes/resource.routes.js"
click node_resctrl "https://github.com/tushar-313/elevate/blob/main/backend/src/controllers/resource.controller.js"
click node_challenge "https://github.com/tushar-313/elevate/blob/main/backend/src/routes/challenge.routes.js"
click node_legacy "https://github.com/tushar-313/elevate/blob/main/backend/src/routes/legacy.routes.js"
click node_sponsor "https://github.com/tushar-313/elevate/blob/main/backend/src/routes/sponsor.routes.js"
click node_media "https://github.com/tushar-313/elevate/blob/main/backend/src/routes/media.routes.js"
click node_db "https://github.com/tushar-313/elevate/blob/main/backend/src/config/db.js"
click node_eventmodel "https://github.com/tushar-313/elevate/blob/main/backend/src/models/Event.js"
click node_resmodel "https://github.com/tushar-313/elevate/blob/main/backend/src/models/Resource.js"
click node_usermodel "https://github.com/tushar-313/elevate/blob/main/backend/src/models/User.js"
click node_cloudinary "https://github.com/tushar-313/elevate/blob/main/backend/src/config/cloudinary.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_eventsui,node_knowledgeui,node_legacyui,node_domainsui,node_adminui toneBlue
class node_api,node_eventroute,node_eventctrl,node_resroute,node_resctrl,node_challenge,node_legacy,node_sponsor,node_media toneAmber
class node_authcontext,node_authroute,node_authctrl,node_authmw toneMint
class node_db,node_eventmodel,node_resmodel,node_usermodel toneRose
class node_visitor,node_admin,node_google toneIndigo
class node_cloudinary toneTeal
```

## Components

### Public experience

- [Site router](https://github.com/tushar-313/elevate/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Club discovery](https://github.com/tushar-313/elevate/blob/main/frontend/src/pages/Home/Home.jsx): `frontend/src/pages/Home/Home.jsx`
- [Events browser](https://github.com/tushar-313/elevate/blob/main/frontend/src/pages/Events/EventsPage.jsx): `frontend/src/pages/Events/EventsPage.jsx`
- [Knowledge hub](https://github.com/tushar-313/elevate/blob/main/frontend/src/pages/KnowledgeHub/KnowledgeHubPage.jsx): `frontend/src/pages/KnowledgeHub/KnowledgeHubPage.jsx`
- [Club legacy](https://github.com/tushar-313/elevate/blob/main/frontend/src/pages/Legacy/LegacyPage.jsx): `frontend/src/pages/Legacy/LegacyPage.jsx`
- [Domain exploration](https://github.com/tushar-313/elevate/tree/main/frontend/src/pages/Domains): `frontend/src/pages/Domains`
- [Admin dashboard](https://github.com/tushar-313/elevate/blob/main/frontend/src/pages/Admin/Dashboard/AdminDashboard.jsx): `frontend/src/pages/Admin/Dashboard/AdminDashboard.jsx`

### Content API

- [API application](https://github.com/tushar-313/elevate/blob/main/backend/src/app.js): `backend/src/app.js`
- [Event routes](https://github.com/tushar-313/elevate/blob/main/backend/src/routes/event.routes.js): `backend/src/routes/event.routes.js`
- [Event management](https://github.com/tushar-313/elevate/blob/main/backend/src/controllers/event.controller.js): `backend/src/controllers/event.controller.js`
- [Resource routes](https://github.com/tushar-313/elevate/blob/main/backend/src/routes/resource.routes.js): `backend/src/routes/resource.routes.js`
- [Resource management](https://github.com/tushar-313/elevate/blob/main/backend/src/controllers/resource.controller.js): `backend/src/controllers/resource.controller.js`
- [Challenge content](https://github.com/tushar-313/elevate/blob/main/backend/src/routes/challenge.routes.js): `backend/src/routes/challenge.routes.js`
- [Legacy content](https://github.com/tushar-313/elevate/blob/main/backend/src/routes/legacy.routes.js): `backend/src/routes/legacy.routes.js`
- [Sponsor content](https://github.com/tushar-313/elevate/blob/main/backend/src/routes/sponsor.routes.js): `backend/src/routes/sponsor.routes.js`
- [Media management](https://github.com/tushar-313/elevate/blob/main/backend/src/routes/media.routes.js): `backend/src/routes/media.routes.js`

### Identity and access

- [Session context](https://github.com/tushar-313/elevate/blob/main/frontend/src/context/AuthContext.jsx): `frontend/src/context/AuthContext.jsx`
- [Auth routes](https://github.com/tushar-313/elevate/blob/main/backend/src/routes/auth.routes.js): `backend/src/routes/auth.routes.js`
- [Google login](https://github.com/tushar-313/elevate/blob/main/backend/src/controllers/auth.controller.js): `backend/src/controllers/auth.controller.js`
- [Access checks](https://github.com/tushar-313/elevate/blob/main/backend/src/middleware/auth.middleware.js): `backend/src/middleware/auth.middleware.js`

### Persistence and media

- [MongoDB](https://github.com/tushar-313/elevate/blob/main/backend/src/config/db.js): `backend/src/config/db.js`
- [Event records](https://github.com/tushar-313/elevate/blob/main/backend/src/models/Event.js): `backend/src/models/Event.js`
- [Resource records](https://github.com/tushar-313/elevate/blob/main/backend/src/models/Resource.js): `backend/src/models/Resource.js`
- [User records](https://github.com/tushar-313/elevate/blob/main/backend/src/models/User.js): `backend/src/models/User.js`

### Other components

- **Visitor**
- **Club admin**
- [Cloudinary](https://github.com/tushar-313/elevate/blob/main/backend/src/config/cloudinary.js): `backend/src/config/cloudinary.js`
- **Google identity**

## Connections

- Visitor → Site router: visits
- Club admin → Admin dashboard: manages content
- Site router → Club discovery: renders
- Site router → Events browser: routes to
- Site router → Knowledge hub: routes to
- Site router → Club legacy: routes to
- Site router → Domain exploration: routes to
- Site router → Admin dashboard: routes to
- Site router → Session context: provides session
- Session context → API application: posts login
- API application → Auth routes: dispatches
- Auth routes → Google login: invokes
- Google login → Google identity: verifies token
- Google login → User records: reads and writes
- Auth routes → Access checks: uses access checks
- API application → Event routes: dispatches
- Event routes → Event management: invokes
- Event management → Event records: reads and writes
- API application → Resource routes: dispatches
- Resource routes → Resource management: invokes
- Resource management → Resource records: reads and writes
- Resource routes → Access checks: protects admin actions
- Event routes → Access checks: protects admin actions
- Event routes → Cloudinary: uploads images
- Resource routes → Cloudinary: uploads images
- API application → Challenge content: dispatches
- API application → Legacy content: dispatches
- API application → Sponsor content: dispatches
- API application → Media management: dispatches
- MongoDB → Event records: connects store
- MongoDB → Resource records: connects store
- MongoDB → User records: connects store
