# kalkitarun1120/campus-ai architecture

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

## Overview

CampusIQ+ is a role-based university management platform. Admins, faculty, and students use the React application to access secured campus services; the backend exposes REST APIs for academic records, fees, analytics, and communication. The result-publishing path is evidenced in the sampled controller and service: faculty or admins publish marks, which are calculated and stored, while students can retrieve results and GPA. The README documents the other major capabilities; their exact internal wiring is not shown in the excerpts, so the graph avoids asserting unverified service calls.

Main entry points: [`frontend/src/App.js`](https://github.com/kalkitarun1120/campus-ai/blob/main/frontend/src/App.js) (Role-based routes), [`frontend/src/services/api.js`](https://github.com/kalkitarun1120/campus-ai/blob/main/frontend/src/services/api.js) (API client), [`frontend/src/pages/fees/FeePage.jsx`](https://github.com/kalkitarun1120/campus-ai/blob/main/frontend/src/pages/fees/FeePage.jsx) (Fee payment page), [`backend/src/main/java/com/campusiq/service/AuthService.java`](https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/service/AuthService.java) (Authentication service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web application"]
  node_app["Role-based routes<br/>[App.js]"]
  node_auth_context["Auth state<br/>[AuthContext.js]"]
  node_api_client["API client<br/>[api.js]"]
  node_dashboards["Role dashboards"]
  node_academic_pages["Academic pages"]
  node_fee_page["Fee payment page<br/>[FeePage.jsx]"]
  node_ai_pages["AI pages"]
end

subgraph group_identity["Identity and access"]
  node_auth_controller["Authentication API"]
  node_auth_service["Authentication service<br/>[AuthService.java]"]
  node_user_details["User lookup"]
  node_jwt["JWT security"]
  node_user_repo[("User records")]
end

subgraph group_academics["Academic records"]
  node_result_api["Results API"]
  node_result_service["Results and GPA<br/>[ResultService.java]"]
  node_result_repo[("Result records")]
end

subgraph group_campus["Campus services"]
  node_campus_api["Campus APIs"]
  node_campus_services["Campus services"]
  node_campus_data[("Campus records")]
end

subgraph group_ai["AI assistance"]
  node_chat_api["Chatbot API"]
  node_chat_service["Campus chatbot"]
  node_ollama["Local language model<br/>[OllamaService.java]"]
end

node_admin(("Admin"))
node_faculty(("Faculty"))
node_student(("Student"))
node_ollama_service{{"Ollama"}}
node_payments{{"Razorpay"}}
node_push{{"Firebase push"}}

node_admin -->|"uses"| node_app
node_faculty -->|"uses"| node_app
node_student -->|"uses"| node_app
node_app -->|"manages access"| node_auth_context
node_app -->|"routes to"| node_dashboards
node_app -->|"routes to"| node_academic_pages
node_app -->|"routes to"| node_fee_page
node_app -->|"routes to"| node_ai_pages
node_auth_context -->|"requests"| node_api_client
node_dashboards -->|"requests"| node_api_client
node_academic_pages -->|"requests"| node_api_client
node_fee_page -->|"requests"| node_api_client
node_ai_pages -->|"requests"| node_api_client
node_api_client -->|"calls REST"| node_auth_controller
node_api_client -->|"calls REST"| node_campus_api
node_api_client -->|"calls REST"| node_result_api
node_auth_controller -->|"delegates"| node_auth_service
node_auth_service -->|"reads and writes"| node_user_repo
node_auth_service -->|"creates tokens"| node_jwt
node_user_details -->|"looks up users"| node_user_repo
node_result_api -->|"delegates"| node_result_service
node_result_service -->|"reads and writes"| node_result_repo
node_result_service -->|"uses academic entities"| node_campus_data
node_campus_api -->|"serves campus operations"| node_campus_services
node_chat_api -->|"delegates"| node_chat_service
node_chat_service -.->|"requests generation"| node_ollama
node_ollama -.->|"sends prompt"| node_ollama_service
node_fee_page -.->|"pays fees"| node_payments
node_campus_services -.->|"sends notifications"| node_push

click node_app "https://github.com/kalkitarun1120/campus-ai/blob/main/frontend/src/App.js"
click node_auth_context "https://github.com/kalkitarun1120/campus-ai/blob/main/frontend/src/context/AuthContext.js"
click node_api_client "https://github.com/kalkitarun1120/campus-ai/blob/main/frontend/src/services/api.js"
click node_dashboards "https://github.com/kalkitarun1120/campus-ai/tree/main/frontend/src/pages"
click node_academic_pages "https://github.com/kalkitarun1120/campus-ai/tree/main/frontend/src/pages"
click node_fee_page "https://github.com/kalkitarun1120/campus-ai/blob/main/frontend/src/pages/fees/FeePage.jsx"
click node_ai_pages "https://github.com/kalkitarun1120/campus-ai/tree/main/frontend/src/pages/ai"
click node_auth_controller "https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/controller/AuthController.java"
click node_auth_service "https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/service/AuthService.java"
click node_user_details "https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/security/CustomUserDetailsService.java"
click node_jwt "https://github.com/kalkitarun1120/campus-ai/tree/main/backend/src/main/java/com/campusiq/security"
click node_user_repo "https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/repository/UserRepository.java"
click node_result_api "https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/controller/ResultController.java"
click node_result_service "https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/service/ResultService.java"
click node_result_repo "https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/repository/ResultRepository.java"
click node_campus_api "https://github.com/kalkitarun1120/campus-ai/tree/main/backend/src/main/java/com/campusiq/controller"
click node_campus_services "https://github.com/kalkitarun1120/campus-ai/tree/main/backend/src/main/java/com/campusiq/service"
click node_campus_data "https://github.com/kalkitarun1120/campus-ai/tree/main/backend/src/main/java/com/campusiq/entity"
click node_chat_api "https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/controller/ChatbotController.java"
click node_chat_service "https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/service/AIChatbotService.java"
click node_ollama "https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/service/OllamaService.java"

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_context,node_api_client,node_dashboards,node_academic_pages,node_fee_page,node_ai_pages toneBlue
class node_auth_controller,node_auth_service,node_user_details,node_jwt,node_user_repo toneAmber
class node_result_api,node_result_service,node_result_repo toneMint
class node_campus_api,node_campus_services,node_campus_data toneRose
class node_chat_api,node_chat_service,node_ollama,node_admin,node_faculty,node_student,node_ollama_service,node_payments,node_push toneIndigo
```

## Components

### Web application

- [Role-based routes](https://github.com/kalkitarun1120/campus-ai/blob/main/frontend/src/App.js): `frontend/src/App.js`
- [Auth state](https://github.com/kalkitarun1120/campus-ai/blob/main/frontend/src/context/AuthContext.js): `frontend/src/context/AuthContext.js`
- [API client](https://github.com/kalkitarun1120/campus-ai/blob/main/frontend/src/services/api.js): `frontend/src/services/api.js`
- [Role dashboards](https://github.com/kalkitarun1120/campus-ai/tree/main/frontend/src/pages): `frontend/src/pages`
- [Academic pages](https://github.com/kalkitarun1120/campus-ai/tree/main/frontend/src/pages): `frontend/src/pages`
- [Fee payment page](https://github.com/kalkitarun1120/campus-ai/blob/main/frontend/src/pages/fees/FeePage.jsx): `frontend/src/pages/fees/FeePage.jsx`
- [AI pages](https://github.com/kalkitarun1120/campus-ai/tree/main/frontend/src/pages/ai): `frontend/src/pages/ai`

### Identity and access

- [Authentication API](https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/controller/AuthController.java): `backend/src/main/java/com/campusiq/controller/AuthController.java`
- [Authentication service](https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/service/AuthService.java): `backend/src/main/java/com/campusiq/service/AuthService.java`
- [User lookup](https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/security/CustomUserDetailsService.java): `backend/src/main/java/com/campusiq/security/CustomUserDetailsService.java`
- [JWT security](https://github.com/kalkitarun1120/campus-ai/tree/main/backend/src/main/java/com/campusiq/security): `backend/src/main/java/com/campusiq/security`
- [User records](https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/repository/UserRepository.java): `backend/src/main/java/com/campusiq/repository/UserRepository.java`

### Academic records

- [Results API](https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/controller/ResultController.java): `backend/src/main/java/com/campusiq/controller/ResultController.java`
- [Results and GPA](https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/service/ResultService.java): `backend/src/main/java/com/campusiq/service/ResultService.java`
- [Result records](https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/repository/ResultRepository.java): `backend/src/main/java/com/campusiq/repository/ResultRepository.java`

### Campus services

- [Campus APIs](https://github.com/kalkitarun1120/campus-ai/tree/main/backend/src/main/java/com/campusiq/controller): `backend/src/main/java/com/campusiq/controller`
- [Campus services](https://github.com/kalkitarun1120/campus-ai/tree/main/backend/src/main/java/com/campusiq/service): `backend/src/main/java/com/campusiq/service`
- [Campus records](https://github.com/kalkitarun1120/campus-ai/tree/main/backend/src/main/java/com/campusiq/entity): `backend/src/main/java/com/campusiq/entity`

### AI assistance

- [Chatbot API](https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/controller/ChatbotController.java): `backend/src/main/java/com/campusiq/controller/ChatbotController.java`
- [Campus chatbot](https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/service/AIChatbotService.java): `backend/src/main/java/com/campusiq/service/AIChatbotService.java`
- [Local language model](https://github.com/kalkitarun1120/campus-ai/blob/main/backend/src/main/java/com/campusiq/service/OllamaService.java): `backend/src/main/java/com/campusiq/service/OllamaService.java`

### Other components

- **Admin**
- **Faculty**
- **Student**
- **Ollama**
- **Razorpay**
- **Firebase push**

## Connections

- Admin → Role-based routes: uses
- Faculty → Role-based routes: uses
- Student → Role-based routes: uses
- Role-based routes → Auth state: manages access
- Role-based routes → Role dashboards: routes to
- Role-based routes → Academic pages: routes to
- Role-based routes → Fee payment page: routes to
- Role-based routes → AI pages: routes to
- Auth state → API client: requests
- Role dashboards → API client: requests
- Academic pages → API client: requests
- Fee payment page → API client: requests
- AI pages → API client: requests
- API client → Authentication API: calls REST
- API client → Campus APIs: calls REST
- API client → Results API: calls REST
- Authentication API → Authentication service: delegates
- Authentication service → User records: reads and writes
- Authentication service → JWT security: creates tokens
- User lookup → User records: looks up users
- Results API → Results and GPA: delegates
- Results and GPA → Result records: reads and writes
- Results and GPA → Campus records: uses academic entities
- Campus APIs → Campus services: serves campus operations
- Chatbot API → Campus chatbot: delegates
- Campus chatbot → Local language model: requests generation
- Local language model → Ollama: sends prompt
- Fee payment page → Razorpay: pays fees
- Campus services → Firebase push: sends notifications
