# abhishek2006-create/sports-council-website architecture

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

- Interactive diagram: https://gitdiagram.com/abhishek2006-create/sports-council-website
- Repository: https://github.com/abhishek2006-create/sports-council-website

## Overview

This is a Sports Council information and query portal: students browse events and council information, retrieve it through a shared frontend data context and API, and can submit queries that are stored and emailed to the Council. The README describes event information and announcements; the route and model structure also supports teams, clubs, gallery and Hall of Fame, updates, statistics, and query messages. Some page and model implementations were not sampled, so their internal details are represented only where the tree or API routes support them.

Main entry points: [`Backend/mern-backend/routes/apiRoutes.js`](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/routes/apiRoutes.js) (API Routes), [`frontend/src/App.jsx`](https://github.com/abhishek2006-create/sports-council-website/blob/main/frontend/src/App.jsx) (Website Router), [`frontend/src/context/DisplayContext.jsx`](https://github.com/abhishek2006-create/sports-council-website/blob/main/frontend/src/context/DisplayContext.jsx) (Data Context), [`Backend/mern-backend/server.js`](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/server.js) (HTTP Server)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Student Website"]
  node_app["Website Router<br/>[App.jsx]"]
  node_events_page["Events<br/>[Events.jsx]"]
  node_other_pages["Information Pages<br/>[Home.jsx]"]
  node_contact_page["Contact Form<br/>[contact.jsx]"]
  node_context["Data Context<br/>[DisplayContext.jsx]"]
end

subgraph group_data["API and Content"]
  node_api["API Routes<br/>[apiRoutes.js]"]
  node_server["HTTP Server<br/>[server.js]"]
end

subgraph group_storage["Persistent Data"]
  node_event_model[("Event Records<br/>[Event.js]")]
  node_team_model[("Team Records<br/>[TeamMember.js]")]
  node_club_model[("Club Records<br/>[Club.js]")]
  node_clubmember_model[("Club Members<br/>[ClubMember.js]")]
  node_gallery_model[("Gallery Images<br/>[GalleryImage.js]")]
  node_hof_model[("Hall Of Fame<br/>[HallOfFame.js]")]
  node_update_model[("Announcements<br/>[Update.js]")]
  node_stat_model[("Sports Statistics<br/>[Stat.js]")]
  node_message_model[("Query Records<br/>[Message.js]")]
  node_db["MongoDB Connection<br/>[db.js]"]
end

subgraph group_messaging["Query Delivery"]
  node_mailer["Email Sender<br/>[mailer.js]"]
end

node_students(("Students"))
node_council_mail(("Council Inbox"))

node_students -->|"browse"| node_app
node_app -->|"routes to"| node_events_page
node_app -->|"routes to"| node_other_pages
node_app -->|"routes to"| node_contact_page
node_events_page -->|"requests events"| node_context
node_other_pages -->|"loads content"| node_context
node_contact_page -->|"submits query"| node_context
node_context -->|"HTTP requests"| node_server
node_server -->|"dispatches"| node_api
node_server -->|"connects"| node_db
node_api -->|"reads"| node_event_model
node_api -->|"reads"| node_team_model
node_api -->|"reads"| node_club_model
node_api -->|"reads"| node_clubmember_model
node_api -->|"reads"| node_gallery_model
node_api -->|"reads"| node_hof_model
node_api -->|"reads"| node_update_model
node_api -->|"reads"| node_stat_model
node_api -->|"reads and writes"| node_message_model
node_api -->|"sends query"| node_mailer
node_mailer -->|"delivers email"| node_council_mail

click node_app "https://github.com/abhishek2006-create/sports-council-website/blob/main/frontend/src/App.jsx"
click node_events_page "https://github.com/abhishek2006-create/sports-council-website/blob/main/frontend/src/pages/Events.jsx"
click node_other_pages "https://github.com/abhishek2006-create/sports-council-website/blob/main/frontend/src/pages/Home.jsx"
click node_contact_page "https://github.com/abhishek2006-create/sports-council-website/blob/main/frontend/src/pages/contact.jsx"
click node_context "https://github.com/abhishek2006-create/sports-council-website/blob/main/frontend/src/context/DisplayContext.jsx"
click node_api "https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/routes/apiRoutes.js"
click node_server "https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/server.js"
click node_event_model "https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/Event.js"
click node_team_model "https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/TeamMember.js"
click node_club_model "https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/Club.js"
click node_clubmember_model "https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/ClubMember.js"
click node_gallery_model "https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/GalleryImage.js"
click node_hof_model "https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/HallOfFame.js"
click node_update_model "https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/Update.js"
click node_stat_model "https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/Stat.js"
click node_message_model "https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/Message.js"
click node_db "https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/config/db.js"
click node_mailer "https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/utils/mailer.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_events_page,node_other_pages,node_contact_page,node_context toneBlue
class node_api,node_server toneAmber
class node_event_model,node_team_model,node_club_model,node_clubmember_model,node_gallery_model,node_hof_model,node_update_model,node_stat_model,node_message_model,node_db toneMint
class node_mailer toneRose
class node_students,node_council_mail toneIndigo
```

## Components

### Student Website

- [Website Router](https://github.com/abhishek2006-create/sports-council-website/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Events](https://github.com/abhishek2006-create/sports-council-website/blob/main/frontend/src/pages/Events.jsx): `frontend/src/pages/Events.jsx`
- [Information Pages](https://github.com/abhishek2006-create/sports-council-website/blob/main/frontend/src/pages/Home.jsx): `frontend/src/pages/Home.jsx`
- [Contact Form](https://github.com/abhishek2006-create/sports-council-website/blob/main/frontend/src/pages/contact.jsx): `frontend/src/pages/contact.jsx`
- [Data Context](https://github.com/abhishek2006-create/sports-council-website/blob/main/frontend/src/context/DisplayContext.jsx): `frontend/src/context/DisplayContext.jsx`

### API and Content

- [API Routes](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/routes/apiRoutes.js): `Backend/mern-backend/routes/apiRoutes.js`
- [HTTP Server](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/server.js): `Backend/mern-backend/server.js`

### Persistent Data

- [Event Records](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/Event.js): `Backend/mern-backend/models/Event.js`
- [Team Records](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/TeamMember.js): `Backend/mern-backend/models/TeamMember.js`
- [Club Records](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/Club.js): `Backend/mern-backend/models/Club.js`
- [Club Members](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/ClubMember.js): `Backend/mern-backend/models/ClubMember.js`
- [Gallery Images](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/GalleryImage.js): `Backend/mern-backend/models/GalleryImage.js`
- [Hall Of Fame](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/HallOfFame.js): `Backend/mern-backend/models/HallOfFame.js`
- [Announcements](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/Update.js): `Backend/mern-backend/models/Update.js`
- [Sports Statistics](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/Stat.js): `Backend/mern-backend/models/Stat.js`
- [Query Records](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/models/Message.js): `Backend/mern-backend/models/Message.js`
- [MongoDB Connection](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/config/db.js): `Backend/mern-backend/config/db.js`

### Query Delivery

- [Email Sender](https://github.com/abhishek2006-create/sports-council-website/blob/main/Backend/mern-backend/utils/mailer.js): `Backend/mern-backend/utils/mailer.js`

### Other components

- **Students**
- **Council Inbox**

## Connections

- Students → Website Router: browse
- Website Router → Events: routes to
- Website Router → Information Pages: routes to
- Website Router → Contact Form: routes to
- Events → Data Context: requests events
- Information Pages → Data Context: loads content
- Contact Form → Data Context: submits query
- Data Context → HTTP Server: HTTP requests
- HTTP Server → API Routes: dispatches
- HTTP Server → MongoDB Connection: connects
- API Routes → Event Records: reads
- API Routes → Team Records: reads
- API Routes → Club Records: reads
- API Routes → Club Members: reads
- API Routes → Gallery Images: reads
- API Routes → Hall Of Fame: reads
- API Routes → Announcements: reads
- API Routes → Sports Statistics: reads
- API Routes → Query Records: reads and writes
- API Routes → Email Sender: sends query
- Email Sender → Council Inbox: delivers email
