# vrunda2005/wmc-project architecture

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

## Overview

Epsilon Recruitment Website is a React/Express community site themed around the fictional Epsilon Program. Visitors navigate public pages, while members can manage accounts and participate in membership, quiz, donation, event, story, inquiry, and volunteer features; admins manage content and requests. The client route table and server route/controller wiring are sampled, as are selected persistence operations. Client-to-API wiring for individual screens is not shown in the excerpts, so those links are omitted; several other backend capabilities are documented in the README but their implementation was not sampled.

Main entry points: [`react_frontend/Client/src/main.jsx`](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/main.jsx) (Site shell and routes), [`react_frontend/Server/routes/allRoutes.js`](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/routes/allRoutes.js) (Route dispatch), [`react_frontend/Server/controllers/eventController.js`](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/controllers/eventController.js) (Event registration), [`react_frontend/Server/controllers/membershipController.js`](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/controllers/membershipController.js) (Membership and quiz points)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_app["Site shell and routes<br/>[main.jsx]"]
  node_home["Home and discovery<br/>[Home.jsx]"]
  node_authui["Login and signup<br/>[Login.jsx]"]
  node_membershipui["Membership pages"]
  node_eventsui["Events and signup<br/>[Events.jsx]"]
  node_donateui["Donation page<br/>[Donate.jsx]"]
  node_quizui["Personality quiz<br/>[Quiz.jsx]"]
  node_storiesui["Member stories<br/>[Blog.jsx]"]
  node_newsui["News and inquiries<br/>[News_See.jsx]"]
  node_volunteerui["Volunteering<br/>[Volunteering.jsx]"]
  node_mapui["Program map<br/>[EpsilonMap.jsx]"]
  node_adminui["Admin tools<br/>[Admin.jsx]"]
end

subgraph group_api["API and workflows"]
  node_server["HTTP server<br/>[server.js]"]
  node_routes["Route dispatch<br/>[allRoutes.js]"]
  node_auth["Authentication<br/>[authController.js]"]
  node_donations["Donation totals"]
  node_events["Event registration<br/>[eventController.js]"]
  node_membership["Membership and quiz points"]
  node_volunteers["Volunteer requests"]
end

subgraph group_data["Persistent data"]
  node_userdb[("User records<br/>[User.js]")]
  node_donationdb[("Donation records<br/>[Donation.js]")]
  node_eventdb[("Event records<br/>[Event.js]")]
  node_registrationdb[("Event registrations<br/>[Registration.js]")]
  node_volunteerdb[("Volunteer records<br/>[Volunteer.js]")]
  node_storydb[("Story records<br/>[Story.js]")]
end

node_visitor(("Visitor or member"))

node_visitor -->|"browses"| node_app
node_app -->|"routes to"| node_home
node_app -->|"routes to"| node_authui
node_app -->|"routes to"| node_membershipui
node_app -->|"routes to"| node_eventsui
node_app -->|"routes to"| node_donateui
node_app -->|"routes to"| node_quizui
node_app -->|"routes to"| node_storiesui
node_app -->|"routes to"| node_newsui
node_app -->|"routes to"| node_volunteerui
node_app -->|"routes to"| node_mapui
node_app -->|"routes to"| node_adminui
node_server -->|"mounts"| node_routes
node_routes -->|"dispatches"| node_auth
node_routes -->|"dispatches"| node_donations
node_routes -->|"dispatches"| node_events
node_routes -->|"dispatches"| node_membership
node_routes -->|"dispatches"| node_volunteers
node_auth -->|"reads and writes"| node_userdb
node_donations -->|"reads and writes"| node_userdb
node_donations -->|"reads and writes"| node_donationdb
node_events -->|"reads and writes"| node_eventdb
node_events -->|"reads and writes"| node_registrationdb
node_events -->|"reads and writes"| node_userdb
node_events -->|"updates"| node_volunteerdb
node_membership -->|"reads and writes"| node_userdb
node_membership -->|"updates"| node_eventdb
node_membership -->|"deletes"| node_registrationdb
node_volunteers -->|"reads"| node_eventdb
node_volunteers -->|"reads and writes"| node_volunteerdb

click node_app "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/main.jsx"
click node_home "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Home/Home.jsx"
click node_authui "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Login/Login.jsx"
click node_membershipui "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Membership/membership_temp.jsx"
click node_eventsui "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Events/Events.jsx"
click node_donateui "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Donate/Donate.jsx"
click node_quizui "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Quiz/Quiz.jsx"
click node_storiesui "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Blog/Blog.jsx"
click node_newsui "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/InquiryForm/News_See.jsx"
click node_volunteerui "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Volunteering/Volunteering.jsx"
click node_mapui "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/epsilonMap/EpsilonMap.jsx"
click node_adminui "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Admin/Admin.jsx"
click node_server "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/server.js"
click node_routes "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/routes/allRoutes.js"
click node_auth "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/controllers/authController.js"
click node_donations "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/controllers/donationController.js"
click node_events "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/controllers/eventController.js"
click node_membership "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/controllers/membershipController.js"
click node_volunteers "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/controllers/volunteerController.js"
click node_userdb "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/models/User.js"
click node_donationdb "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/models/Donation.js"
click node_eventdb "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/models/Event.js"
click node_registrationdb "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/models/Registration.js"
click node_volunteerdb "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/models/Volunteer.js"
click node_storydb "https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/models/Story.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_authui,node_membershipui,node_eventsui,node_donateui,node_quizui,node_storiesui,node_newsui,node_volunteerui,node_mapui,node_adminui toneBlue
class node_server,node_routes,node_auth,node_donations,node_events,node_membership,node_volunteers toneAmber
class node_userdb,node_donationdb,node_eventdb,node_registrationdb,node_volunteerdb,node_storydb toneMint
class node_visitor toneIndigo
```

## Components

### Web client

- [Site shell and routes](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/main.jsx): `react_frontend/Client/src/main.jsx`
- [Home and discovery](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Home/Home.jsx): `react_frontend/Client/src/components/Home/Home.jsx`
- [Login and signup](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Login/Login.jsx): `react_frontend/Client/src/components/Login/Login.jsx`
- [Membership pages](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Membership/membership_temp.jsx): `react_frontend/Client/src/components/Membership/membership_temp.jsx`
- [Events and signup](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Events/Events.jsx): `react_frontend/Client/src/components/Events/Events.jsx`
- [Donation page](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Donate/Donate.jsx): `react_frontend/Client/src/components/Donate/Donate.jsx`
- [Personality quiz](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Quiz/Quiz.jsx): `react_frontend/Client/src/components/Quiz/Quiz.jsx`
- [Member stories](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Blog/Blog.jsx): `react_frontend/Client/src/components/Blog/Blog.jsx`
- [News and inquiries](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/InquiryForm/News_See.jsx): `react_frontend/Client/src/components/InquiryForm/News_See.jsx`
- [Volunteering](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Volunteering/Volunteering.jsx): `react_frontend/Client/src/components/Volunteering/Volunteering.jsx`
- [Program map](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/epsilonMap/EpsilonMap.jsx): `react_frontend/Client/src/components/epsilonMap/EpsilonMap.jsx`
- [Admin tools](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Client/src/components/Admin/Admin.jsx): `react_frontend/Client/src/components/Admin/Admin.jsx`

### API and workflows

- [HTTP server](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/server.js): `react_frontend/Server/server.js`
- [Route dispatch](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/routes/allRoutes.js): `react_frontend/Server/routes/allRoutes.js`
- [Authentication](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/controllers/authController.js): `react_frontend/Server/controllers/authController.js`
- [Donation totals](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/controllers/donationController.js): `react_frontend/Server/controllers/donationController.js`
- [Event registration](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/controllers/eventController.js): `react_frontend/Server/controllers/eventController.js`
- [Membership and quiz points](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/controllers/membershipController.js): `react_frontend/Server/controllers/membershipController.js`
- [Volunteer requests](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/controllers/volunteerController.js): `react_frontend/Server/controllers/volunteerController.js`

### Persistent data

- [User records](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/models/User.js): `react_frontend/Server/models/User.js`
- [Donation records](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/models/Donation.js): `react_frontend/Server/models/Donation.js`
- [Event records](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/models/Event.js): `react_frontend/Server/models/Event.js`
- [Event registrations](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/models/Registration.js): `react_frontend/Server/models/Registration.js`
- [Volunteer records](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/models/Volunteer.js): `react_frontend/Server/models/Volunteer.js`
- [Story records](https://github.com/vrunda2005/wmc-project/blob/main/react_frontend/Server/models/Story.js): `react_frontend/Server/models/Story.js`

### Other components

- **Visitor or member**

## Connections

- Visitor or member → Site shell and routes: browses
- Site shell and routes → Home and discovery: routes to
- Site shell and routes → Login and signup: routes to
- Site shell and routes → Membership pages: routes to
- Site shell and routes → Events and signup: routes to
- Site shell and routes → Donation page: routes to
- Site shell and routes → Personality quiz: routes to
- Site shell and routes → Member stories: routes to
- Site shell and routes → News and inquiries: routes to
- Site shell and routes → Volunteering: routes to
- Site shell and routes → Program map: routes to
- Site shell and routes → Admin tools: routes to
- HTTP server → Route dispatch: mounts
- Route dispatch → Authentication: dispatches
- Route dispatch → Donation totals: dispatches
- Route dispatch → Event registration: dispatches
- Route dispatch → Membership and quiz points: dispatches
- Route dispatch → Volunteer requests: dispatches
- Authentication → User records: reads and writes
- Donation totals → User records: reads and writes
- Donation totals → Donation records: reads and writes
- Event registration → Event records: reads and writes
- Event registration → Event registrations: reads and writes
- Event registration → User records: reads and writes
- Event registration → Volunteer records: updates
- Membership and quiz points → User records: reads and writes
- Membership and quiz points → Event records: updates
- Membership and quiz points → Event registrations: deletes
- Volunteer requests → Event records: reads
- Volunteer requests → Volunteer records: reads and writes
