# vinith-krish/campus-connect architecture

> Architecture diagram of the GitHub repository vinith-krish/campus-connect, 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/vinith-krish/campus-connect
- Repository: https://github.com/vinith-krish/campus-connect

## Overview

CampusConnect is a student-and-club campus event platform. Students browse and filter events, inspect details, register or save interest, then review those events and manage their profile; club admins also create and manage events and track engagement. The React app routes users to pages and API services, while Spring controllers delegate event, user, and authentication work to backend services and repositories. README capabilities are included where their source was not sampled; those internal details are not expanded beyond supported paths and calls.

Main entry points: [`campus-connect-frontend/src/App.jsx`](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/App.jsx) (Routes and providers), [`campus-connect-backend/src/main/java/com/campusconnect/repository`](https://github.com/vinith-krish/campus-connect/tree/main/campus-connect-backend/src/main/java/com/campusconnect/repository) (JPA repositories), [`campus-connect-backend/src/main/java/com/campusconnect/controller/AuthController.java`](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/controller/AuthController.java) (Authentication endpoints), [`campus-connect-backend/src/main/java/com/campusconnect/controller/UserController.java`](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/controller/UserController.java) (User endpoints)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["React application"]
  node_app["Routes and providers<br/>[App.jsx]"]
  node_auth_pages["Sign-in and registration"]
  node_event_pages["Event discovery and details"]
  node_create_page["Event management<br/>[CreateEvent.jsx]"]
  node_profile_page["Profile dashboard<br/>[Profile.jsx]"]
  node_auth_context["Authentication state<br/>[AuthContext.jsx]"]
  node_auth_client["Authentication API client<br/>[authService.js]"]
  node_event_client["Event API client<br/>[eventService.js]"]
  node_user_client["User API client<br/>[userService.js]"]
end

subgraph group_api["Spring API"]
  node_auth_controller["Authentication endpoints"]
  node_event_controller["Event endpoints"]
  node_user_controller["User endpoints"]
end

subgraph group_domain["Application services"]
  node_auth_service["Authentication service<br/>[AuthService.java]"]
  node_event_service["Event workflows<br/>[EventService.java]"]
  node_user_service["Profile and dashboard<br/>[UserService.java]"]
  node_jwt_service["JWT operations<br/>[JwtService.java]"]
end

subgraph group_data["Persistence"]
  node_repositories["JPA repositories"]
end

node_visitor(("Student or admin"))
node_postgres[("PostgreSQL")]

node_visitor -->|"uses"| node_app
node_app -->|"routes to"| node_auth_pages
node_app -->|"routes to"| node_event_pages
node_app -->|"routes to"| node_create_page
node_app -->|"routes to"| node_profile_page
node_auth_pages -->|"requests auth"| node_auth_client
node_auth_context -->|"uses"| node_auth_client
node_event_pages -->|"requests events"| node_event_client
node_create_page -->|"manages events"| node_event_client
node_profile_page -->|"requests profile"| node_user_client
node_auth_client -->|"HTTP requests"| node_auth_controller
node_event_client -->|"HTTP requests"| node_event_controller
node_user_client -->|"HTTP requests"| node_user_controller
node_auth_controller -->|"looks up and saves users"| node_user_service
node_auth_controller -->|"issues tokens"| node_jwt_service
node_auth_service -->|"reads and saves users"| node_repositories
node_auth_service -->|"issues tokens"| node_jwt_service
node_event_controller -->|"dispatches event actions"| node_event_service
node_user_controller -->|"dispatches user actions"| node_user_service
node_user_controller -->|"extracts user ID"| node_jwt_service
node_event_service -->|"reads and writes events"| node_repositories
node_user_service -->|"reads and updates user data"| node_repositories
node_repositories -->|"persists data"| node_postgres

click node_app "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/App.jsx"
click node_auth_pages "https://github.com/vinith-krish/campus-connect/tree/main/campus-connect-frontend/src/pages"
click node_event_pages "https://github.com/vinith-krish/campus-connect/tree/main/campus-connect-frontend/src/pages"
click node_create_page "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/pages/CreateEvent.jsx"
click node_profile_page "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/pages/Profile.jsx"
click node_auth_context "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/context/AuthContext.jsx"
click node_auth_client "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/services/authService.js"
click node_event_client "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/services/eventService.js"
click node_user_client "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/services/userService.js"
click node_auth_controller "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/controller/AuthController.java"
click node_event_controller "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/controller/EventController.java"
click node_user_controller "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/controller/UserController.java"
click node_auth_service "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/service/AuthService.java"
click node_event_service "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/service/EventService.java"
click node_user_service "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/service/UserService.java"
click node_jwt_service "https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/service/JwtService.java"
click node_repositories "https://github.com/vinith-krish/campus-connect/tree/main/campus-connect-backend/src/main/java/com/campusconnect/repository"

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_auth_pages,node_event_pages,node_create_page,node_profile_page,node_auth_context,node_auth_client,node_event_client,node_user_client toneBlue
class node_auth_controller,node_event_controller,node_user_controller,node_postgres toneAmber
class node_auth_service,node_event_service,node_user_service,node_jwt_service toneMint
class node_repositories toneRose
class node_visitor toneIndigo
```

## Components

### React application

- [Routes and providers](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/App.jsx): `campus-connect-frontend/src/App.jsx`
- [Sign-in and registration](https://github.com/vinith-krish/campus-connect/tree/main/campus-connect-frontend/src/pages): `campus-connect-frontend/src/pages`
- [Event discovery and details](https://github.com/vinith-krish/campus-connect/tree/main/campus-connect-frontend/src/pages): `campus-connect-frontend/src/pages`
- [Event management](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/pages/CreateEvent.jsx): `campus-connect-frontend/src/pages/CreateEvent.jsx`
- [Profile dashboard](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/pages/Profile.jsx): `campus-connect-frontend/src/pages/Profile.jsx`
- [Authentication state](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/context/AuthContext.jsx): `campus-connect-frontend/src/context/AuthContext.jsx`
- [Authentication API client](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/services/authService.js): `campus-connect-frontend/src/services/authService.js`
- [Event API client](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/services/eventService.js): `campus-connect-frontend/src/services/eventService.js`
- [User API client](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-frontend/src/services/userService.js): `campus-connect-frontend/src/services/userService.js`

### Spring API

- [Authentication endpoints](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/controller/AuthController.java): `campus-connect-backend/src/main/java/com/campusconnect/controller/AuthController.java`
- [Event endpoints](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/controller/EventController.java): `campus-connect-backend/src/main/java/com/campusconnect/controller/EventController.java`
- [User endpoints](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/controller/UserController.java): `campus-connect-backend/src/main/java/com/campusconnect/controller/UserController.java`

### Application services

- [Authentication service](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/service/AuthService.java): `campus-connect-backend/src/main/java/com/campusconnect/service/AuthService.java`
- [Event workflows](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/service/EventService.java): `campus-connect-backend/src/main/java/com/campusconnect/service/EventService.java`
- [Profile and dashboard](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/service/UserService.java): `campus-connect-backend/src/main/java/com/campusconnect/service/UserService.java`
- [JWT operations](https://github.com/vinith-krish/campus-connect/blob/main/campus-connect-backend/src/main/java/com/campusconnect/service/JwtService.java): `campus-connect-backend/src/main/java/com/campusconnect/service/JwtService.java`

### Persistence

- [JPA repositories](https://github.com/vinith-krish/campus-connect/tree/main/campus-connect-backend/src/main/java/com/campusconnect/repository): `campus-connect-backend/src/main/java/com/campusconnect/repository`

### Other components

- **Student or admin**
- **PostgreSQL**

## Connections

- Student or admin → Routes and providers: uses
- Routes and providers → Sign-in and registration: routes to
- Routes and providers → Event discovery and details: routes to
- Routes and providers → Event management: routes to
- Routes and providers → Profile dashboard: routes to
- Sign-in and registration → Authentication API client: requests auth
- Authentication state → Authentication API client: uses
- Event discovery and details → Event API client: requests events
- Event management → Event API client: manages events
- Profile dashboard → User API client: requests profile
- Authentication API client → Authentication endpoints: HTTP requests
- Event API client → Event endpoints: HTTP requests
- User API client → User endpoints: HTTP requests
- Authentication endpoints → Profile and dashboard: looks up and saves users
- Authentication endpoints → JWT operations: issues tokens
- Authentication service → JPA repositories: reads and saves users
- Authentication service → JWT operations: issues tokens
- Event endpoints → Event workflows: dispatches event actions
- User endpoints → Profile and dashboard: dispatches user actions
- User endpoints → JWT operations: extracts user ID
- Event workflows → JPA repositories: reads and writes events
- Profile and dashboard → JPA repositories: reads and updates user data
- JPA repositories → PostgreSQL: persists data
