# kalviumcommunity/s64_saanvi_capstone_eventease architecture

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

## Overview

EventEase is an event-planning web app: users enter through the React client, then manage events and related planning areas through an Express API backed by MongoDB. The sampled code confirms event, guest, and budget persistence, profile management, and a Foursquare-backed vendor search. The README also describes logistics tracking, invitations, and vendor-growth features, but their wiring is not established by the sampled source, so they are not drawn as runtime flows.

Main entry points: [`Frontend/client/src/App.jsx`](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/App.jsx) (App routing), [`Backend/server.js`](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/server.js) (Express server), [`Backend/routes/eventRoutes.js`](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/routes/eventRoutes.js) (Event routes), [`Backend/controllers/eventController.js`](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/controllers/eventController.js) (Event operations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_app["App routing<br/>[App.jsx]"]
  node_eventui["Event views<br/>[EventDetails.jsx]"]
  node_dashboardui["Dashboard<br/>[Dashboard.jsx]"]
  node_budgetui["Budget pages"]
  node_guestui["Guest management<br/>[Guests.jsx]"]
  node_vendorui["Vendor marketplace<br/>[Vendor.jsx]"]
  node_profileui["Profile page<br/>[Profile.jsx]"]
  node_reviewui["Review page<br/>[ReviewPage.jsx]"]
  node_clientapi["API client<br/>[api.js]"]
end

subgraph group_api["API services"]
  node_server["Express server<br/>[server.js]"]
  node_eventroutes["Event routes<br/>[eventRoutes.js]"]
  node_eventcontroller["Event operations<br/>[eventController.js]"]
  node_guestroutes["Guest routes<br/>[guestsRoutes.js]"]
  node_guestcontroller["Guest operations<br/>[guestController.js]"]
  node_budgetroutes["Budget routes<br/>[budgetItem.js]"]
  node_budgetcontroller["Budget operations"]
  node_profileroutes["Profile routes<br/>[profileRoutes.js]"]
end

subgraph group_planning["Planning data"]
  node_eventmodel["Event records<br/>[event.js]"]
  node_guestmodel["Guest records<br/>[Guest.js]"]
  node_budgetmodel["Budget records<br/>[budgetItem.js]"]
  node_usermodel["User records<br/>[User.js]"]
end

subgraph group_integrations["External services"]
  node_mongo[("MongoDB")]
  node_foursquare["Foursquare Places"]
end

node_user(("Planner"))

node_user -->|"uses"| node_app
node_app -->|"routes to"| node_eventui
node_app -->|"routes to"| node_dashboardui
node_app -->|"routes to"| node_budgetui
node_app -->|"routes to"| node_guestui
node_app -->|"routes to"| node_vendorui
node_app -->|"routes to"| node_profileui
node_app -->|"routes to"| node_reviewui
node_eventroutes -->|"dispatches"| node_eventcontroller
node_guestroutes -->|"dispatches"| node_guestcontroller
node_budgetroutes -->|"dispatches"| node_budgetcontroller
node_server -->|"mounts"| node_eventroutes
node_server -->|"mounts"| node_guestroutes
node_server -->|"mounts"| node_budgetroutes
node_server -->|"mounts"| node_profileroutes
node_server -->|"searches places"| node_foursquare
node_eventcontroller -->|"reads/writes"| node_eventmodel
node_guestcontroller -->|"reads/writes"| node_guestmodel
node_budgetcontroller -->|"reads/writes"| node_budgetmodel
node_profileroutes -->|"reads/writes"| node_usermodel
node_server -->|"connects"| node_mongo

click node_app "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/App.jsx"
click node_eventui "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/EventDetails.jsx"
click node_dashboardui "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/Dashboard.jsx"
click node_budgetui "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/BudgetManagementPage.jsx"
click node_guestui "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/Guests.jsx"
click node_vendorui "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/Vendor.jsx"
click node_profileui "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/Profile.jsx"
click node_reviewui "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/ReviewPage.jsx"
click node_clientapi "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/api.js"
click node_server "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/server.js"
click node_eventroutes "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/routes/eventRoutes.js"
click node_eventcontroller "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/controllers/eventController.js"
click node_guestroutes "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/routes/guestsRoutes.js"
click node_guestcontroller "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/controllers/guestController.js"
click node_budgetroutes "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/routes/budgetItem.js"
click node_budgetcontroller "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/controllers/budgetController.js"
click node_profileroutes "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/routes/profileRoutes.js"
click node_eventmodel "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/models/event.js"
click node_guestmodel "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/models/Guest.js"
click node_budgetmodel "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/models/budgetItem.js"
click node_usermodel "https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/models/User.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_eventui,node_dashboardui,node_budgetui,node_guestui,node_vendorui,node_profileui,node_reviewui,node_clientapi toneBlue
class node_server,node_eventroutes,node_eventcontroller,node_guestroutes,node_guestcontroller,node_budgetroutes,node_budgetcontroller,node_profileroutes toneAmber
class node_eventmodel,node_guestmodel,node_budgetmodel,node_usermodel toneMint
class node_mongo,node_foursquare toneRose
class node_user toneIndigo
```

## Components

### Web client

- [App routing](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/App.jsx): `Frontend/client/src/App.jsx`
- [Event views](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/EventDetails.jsx): `Frontend/client/src/pages/EventDetails.jsx`
- [Dashboard](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/Dashboard.jsx): `Frontend/client/src/pages/Dashboard.jsx`
- [Budget pages](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/BudgetManagementPage.jsx): `Frontend/client/src/pages/BudgetManagementPage.jsx`
- [Guest management](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/Guests.jsx): `Frontend/client/src/pages/Guests.jsx`
- [Vendor marketplace](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/Vendor.jsx): `Frontend/client/src/pages/Vendor.jsx`
- [Profile page](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/Profile.jsx): `Frontend/client/src/pages/Profile.jsx`
- [Review page](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/pages/ReviewPage.jsx): `Frontend/client/src/pages/ReviewPage.jsx`
- [API client](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Frontend/client/src/api.js): `Frontend/client/src/api.js`

### API services

- [Express server](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/server.js): `Backend/server.js`
- [Event routes](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/routes/eventRoutes.js): `Backend/routes/eventRoutes.js`
- [Event operations](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/controllers/eventController.js): `Backend/controllers/eventController.js`
- [Guest routes](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/routes/guestsRoutes.js): `Backend/routes/guestsRoutes.js`
- [Guest operations](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/controllers/guestController.js): `Backend/controllers/guestController.js`
- [Budget routes](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/routes/budgetItem.js): `Backend/routes/budgetItem.js`
- [Budget operations](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/controllers/budgetController.js): `Backend/controllers/budgetController.js`
- [Profile routes](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/routes/profileRoutes.js): `Backend/routes/profileRoutes.js`

### Planning data

- [Event records](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/models/event.js): `Backend/models/event.js`
- [Guest records](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/models/Guest.js): `Backend/models/Guest.js`
- [Budget records](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/models/budgetItem.js): `Backend/models/budgetItem.js`
- [User records](https://github.com/kalviumcommunity/s64_saanvi_capstone_eventease/blob/main/Backend/models/User.js): `Backend/models/User.js`

### External services

- **MongoDB**
- **Foursquare Places**

### Other components

- **Planner**

## Connections

- Planner → App routing: uses
- App routing → Event views: routes to
- App routing → Dashboard: routes to
- App routing → Budget pages: routes to
- App routing → Guest management: routes to
- App routing → Vendor marketplace: routes to
- App routing → Profile page: routes to
- App routing → Review page: routes to
- Event routes → Event operations: dispatches
- Guest routes → Guest operations: dispatches
- Budget routes → Budget operations: dispatches
- Express server → Event routes: mounts
- Express server → Guest routes: mounts
- Express server → Budget routes: mounts
- Express server → Profile routes: mounts
- Express server → Foursquare Places: searches places
- Event operations → Event records: reads/writes
- Guest operations → Guest records: reads/writes
- Budget operations → Budget records: reads/writes
- Profile routes → User records: reads/writes
- Express server → MongoDB: connects
