# sathvikboina/alucon architecture

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

- Interactive diagram: https://gitdiagram.com/sathvikboina/alucon
- Repository: https://github.com/sathvikboina/alucon

## Overview

AlumniConnect is a MERN alumni-engagement platform. Members enter through the React app, authenticate, and use it for profiles, networking, mentorship, community content, events, resources, and messaging; administrators also manage users, achievements, and institutional showcases. Express routes provide API capabilities backed by MongoDB models, with Socket.io for live messaging and a local embedding-based search service. The README documents additional deterministic matching and feed capabilities; their detailed wiring was not sampled, so those links are shown as unverified.

Main entry points: [`client/src/components/routing/Routes.js`](https://github.com/sathvikboina/alucon/blob/master/client/src/components/routing/Routes.js) (Page routing), [`server/server.js`](https://github.com/sathvikboina/alucon/blob/master/server/server.js) (Express API), [`server/services/searchIndex.js`](https://github.com/sathvikboina/alucon/blob/master/server/services/searchIndex.js) (Search ranking and index), [`server/routes/api/auth.js`](https://github.com/sathvikboina/alucon/blob/master/server/routes/api/auth.js) (Authentication API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Member application"]
  node_app["React application<br/>[App.js]"]
  node_routes["Page routing<br/>[Routes.js]"]
  node_auth_client["Login actions<br/>[auth.js]"]
  node_profile_ui["Profiles and dashboard"]
  node_groups_ui["Groups<br/>[GroupDetail.jsx]"]
  node_posts_ui["Posts and feed<br/>[Posts.jsx]"]
  node_events_ui["Events<br/>[event.jsx]"]
  node_achievements_ui["Achievements"]
  node_messenger_ui["Messenger<br/>[Messenger.jsx]"]
end

subgraph group_api["API and identity"]
  node_api_server["Express API<br/>[server.js]"]
  node_auth_api["Authentication API<br/>[auth.js]"]
  node_auth_guard["Token authorization<br/>[auth.js]"]
end

subgraph group_community["Community capabilities"]
  node_groups_api["Group API<br/>[groups.js]"]
  node_achievements_api["Achievement API<br/>[achievements.js]"]
  node_showcase_api["Showcase management<br/>[showcaseRoutes.js]"]
  node_socket_service["Live messaging<br/>[server.js]"]
end

subgraph group_discovery["Discovery and matching"]
  node_search_api["Unified search API<br/>[search.js]"]
  node_search_index["Search ranking and index<br/>[searchIndex.js]"]
  node_embeddings["Text embeddings<br/>[embeddings.js]"]
  node_matching["Mentor and job matching<br/>[matching.js]"]
end

subgraph group_data["Persistence and integrations"]
  node_user_model[("Member records<br/>[User.js]")]
  node_group_model[("Group records<br/>[Group.js]")]
  node_search_model[("Search documents<br/>[SearchDocument.js]")]
  node_achievement_model[("Achievement records<br/>[Achievement.js]")]
end

node_member(("Member"))
node_cloudinary{{"Cloudinary"}}
node_mongo[("MongoDB")]

node_member -->|"uses"| node_app
node_app -->|"routes to"| node_routes
node_routes -->|"routes to"| node_profile_ui
node_routes -->|"routes to"| node_groups_ui
node_routes -->|"routes to"| node_posts_ui
node_routes -->|"routes to"| node_events_ui
node_routes -.->|"routes to"| node_achievements_ui
node_routes -.->|"routes to"| node_messenger_ui
node_auth_client -->|"requests auth"| node_auth_api
node_api_server -->|"mounts route"| node_auth_api
node_api_server -->|"mounts route"| node_groups_api
node_api_server -->|"mounts route"| node_achievements_api
node_auth_api -->|"reads member"| node_user_model
node_auth_guard -->|"checks member"| node_user_model
node_groups_api -->|"reads and writes"| node_group_model
node_achievements_api -->|"reads and writes"| node_achievement_model
node_api_server -->|"mounts route"| node_showcase_api
node_showcase_api -.->|"uploads media"| node_cloudinary
node_search_api -->|"runs search"| node_search_index
node_search_index -->|"embeds text"| node_embeddings
node_search_index -->|"stores index"| node_search_model
node_search_index -->|"indexes members"| node_user_model
node_api_server -->|"hosts sockets"| node_socket_service
node_messenger_ui -.->|"exchanges messages"| node_socket_service
node_matching -.->|"matches members"| node_member
node_api_server -.->|"persists records"| node_mongo

click node_app "https://github.com/sathvikboina/alucon/blob/master/client/src/App.js"
click node_routes "https://github.com/sathvikboina/alucon/blob/master/client/src/components/routing/Routes.js"
click node_auth_client "https://github.com/sathvikboina/alucon/blob/master/client/src/actions/auth.js"
click node_groups_ui "https://github.com/sathvikboina/alucon/blob/master/client/src/components/groups/GroupDetail.jsx"
click node_posts_ui "https://github.com/sathvikboina/alucon/blob/master/client/src/components/posts/Posts.jsx"
click node_events_ui "https://github.com/sathvikboina/alucon/blob/master/client/src/components/Event/event.jsx"
click node_achievements_ui "https://github.com/sathvikboina/alucon/blob/master/client/src/components/achievements/AdminAchievements.jsx"
click node_messenger_ui "https://github.com/sathvikboina/alucon/blob/master/client/src/components/messenger/Messenger.jsx"
click node_api_server "https://github.com/sathvikboina/alucon/blob/master/server/server.js"
click node_auth_api "https://github.com/sathvikboina/alucon/blob/master/server/routes/api/auth.js"
click node_auth_guard "https://github.com/sathvikboina/alucon/blob/master/server/middleware/auth.js"
click node_groups_api "https://github.com/sathvikboina/alucon/blob/master/server/routes/api/groups.js"
click node_achievements_api "https://github.com/sathvikboina/alucon/blob/master/server/routes/achievement/achievements.js"
click node_showcase_api "https://github.com/sathvikboina/alucon/blob/master/server/routes/showcaseRoutes.js"
click node_search_api "https://github.com/sathvikboina/alucon/blob/master/server/routes/api/search.js"
click node_search_index "https://github.com/sathvikboina/alucon/blob/master/server/services/searchIndex.js"
click node_embeddings "https://github.com/sathvikboina/alucon/blob/master/server/services/embeddings.js"
click node_matching "https://github.com/sathvikboina/alucon/blob/master/server/services/matching.js"
click node_user_model "https://github.com/sathvikboina/alucon/blob/master/server/models/User.js"
click node_group_model "https://github.com/sathvikboina/alucon/blob/master/server/models/Group.js"
click node_search_model "https://github.com/sathvikboina/alucon/blob/master/server/models/SearchDocument.js"
click node_achievement_model "https://github.com/sathvikboina/alucon/blob/master/server/models/Achievement.js"
click node_socket_service "https://github.com/sathvikboina/alucon/blob/master/server/server.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_routes,node_auth_client,node_profile_ui,node_groups_ui,node_posts_ui,node_events_ui,node_achievements_ui,node_messenger_ui toneBlue
class node_api_server,node_auth_api,node_auth_guard,node_mongo toneAmber
class node_groups_api,node_achievements_api,node_showcase_api,node_socket_service toneMint
class node_search_api,node_search_index,node_embeddings,node_matching toneRose
class node_user_model,node_group_model,node_search_model,node_achievement_model,node_member,node_cloudinary toneIndigo
```

## Components

### Member application

- [React application](https://github.com/sathvikboina/alucon/blob/master/client/src/App.js): `client/src/App.js`
- [Page routing](https://github.com/sathvikboina/alucon/blob/master/client/src/components/routing/Routes.js): `client/src/components/routing/Routes.js`
- [Login actions](https://github.com/sathvikboina/alucon/blob/master/client/src/actions/auth.js): `client/src/actions/auth.js`
- **Profiles and dashboard**
- [Groups](https://github.com/sathvikboina/alucon/blob/master/client/src/components/groups/GroupDetail.jsx): `client/src/components/groups/GroupDetail.jsx`
- [Posts and feed](https://github.com/sathvikboina/alucon/blob/master/client/src/components/posts/Posts.jsx): `client/src/components/posts/Posts.jsx`
- [Events](https://github.com/sathvikboina/alucon/blob/master/client/src/components/Event/event.jsx): `client/src/components/Event/event.jsx`
- [Achievements](https://github.com/sathvikboina/alucon/blob/master/client/src/components/achievements/AdminAchievements.jsx): `client/src/components/achievements/AdminAchievements.jsx`
- [Messenger](https://github.com/sathvikboina/alucon/blob/master/client/src/components/messenger/Messenger.jsx): `client/src/components/messenger/Messenger.jsx`

### API and identity

- [Express API](https://github.com/sathvikboina/alucon/blob/master/server/server.js): `server/server.js`
- [Authentication API](https://github.com/sathvikboina/alucon/blob/master/server/routes/api/auth.js): `server/routes/api/auth.js`
- [Token authorization](https://github.com/sathvikboina/alucon/blob/master/server/middleware/auth.js): `server/middleware/auth.js`

### Community capabilities

- [Group API](https://github.com/sathvikboina/alucon/blob/master/server/routes/api/groups.js): `server/routes/api/groups.js`
- [Achievement API](https://github.com/sathvikboina/alucon/blob/master/server/routes/achievement/achievements.js): `server/routes/achievement/achievements.js`
- [Showcase management](https://github.com/sathvikboina/alucon/blob/master/server/routes/showcaseRoutes.js): `server/routes/showcaseRoutes.js`
- [Live messaging](https://github.com/sathvikboina/alucon/blob/master/server/server.js): `server/server.js`

### Discovery and matching

- [Unified search API](https://github.com/sathvikboina/alucon/blob/master/server/routes/api/search.js): `server/routes/api/search.js`
- [Search ranking and index](https://github.com/sathvikboina/alucon/blob/master/server/services/searchIndex.js): `server/services/searchIndex.js`
- [Text embeddings](https://github.com/sathvikboina/alucon/blob/master/server/services/embeddings.js): `server/services/embeddings.js`
- [Mentor and job matching](https://github.com/sathvikboina/alucon/blob/master/server/services/matching.js): `server/services/matching.js`

### Persistence and integrations

- [Member records](https://github.com/sathvikboina/alucon/blob/master/server/models/User.js): `server/models/User.js`
- [Group records](https://github.com/sathvikboina/alucon/blob/master/server/models/Group.js): `server/models/Group.js`
- [Search documents](https://github.com/sathvikboina/alucon/blob/master/server/models/SearchDocument.js): `server/models/SearchDocument.js`
- [Achievement records](https://github.com/sathvikboina/alucon/blob/master/server/models/Achievement.js): `server/models/Achievement.js`

### Other components

- **Member**
- **Cloudinary**
- **MongoDB**

## Connections

- Member → React application: uses (evidence: `client/src/App.js`)
- React application → Page routing: routes to (evidence: `client/src/App.js`)
- Page routing → Profiles and dashboard: routes to (evidence: `client/src/components/routing/Routes.js`)
- Page routing → Groups: routes to (evidence: `client/src/components/routing/Routes.js`)
- Page routing → Posts and feed: routes to (evidence: `client/src/components/routing/Routes.js`)
- Page routing → Events: routes to (evidence: `client/src/components/routing/Routes.js`)
- Page routing → Achievements: routes to
- Page routing → Messenger: routes to (evidence: `client/src/components/routing/Routes.js`)
- Login actions → Authentication API: requests auth (evidence: `client/src/actions/auth.js`)
- Express API → Authentication API: mounts route (evidence: `server/server.js`)
- Express API → Group API: mounts route (evidence: `server/server.js`)
- Express API → Achievement API: mounts route (evidence: `server/server.js`)
- Authentication API → Member records: reads member (evidence: `server/routes/api/auth.js`)
- Token authorization → Member records: checks member (evidence: `server/middleware/auth.js`)
- Group API → Group records: reads and writes (evidence: `server/routes/api/groups.js`)
- Achievement API → Achievement records: reads and writes (evidence: `server/routes/achievement/achievements.js`)
- Express API → Showcase management: mounts route (evidence: `server/server.js`)
- Showcase management → Cloudinary: uploads media
- Unified search API → Search ranking and index: runs search (evidence: `server/routes/api/search.js`)
- Search ranking and index → Text embeddings: embeds text (evidence: `server/services/searchIndex.js`)
- Search ranking and index → Search documents: stores index (evidence: `server/services/searchIndex.js`)
- Search ranking and index → Member records: indexes members (evidence: `server/services/searchIndex.js`)
- Express API → Live messaging: hosts sockets (evidence: `server/server.js`)
- Messenger → Live messaging: exchanges messages
- Mentor and job matching → Member: matches members
- Express API → MongoDB: persists records
