How jiteshck/campusassist works
CampusAssist is a student-service portal whose main workflow takes university PDFs through extraction and chunking into a searchable knowledge base, then retrieves cited context for student questions and generates grounded answers. The portal also provides authentication, document administration, and attendance tools. The graph combines README-documented capabilities with relationships visible in the supplied excerpts and source index; unsampled implementation details are not treated as inspected.
Main entry points: main.py FastAPI endpoints · App.jsx Student portal · vector_store.py Vector retrieval · index_chunks.py Chunk indexing
Components 26
Document ingestion
- University PDFs
data/raw - PDF extraction and OCR
campusassist_ingestion/pipeline.py - Page-aware chunking
campusassist_ingestion/chunking.py - Chunk dataset
data/chunks/core_chunks.jsonl - Admin upload processing
backend/main.py
Knowledge and answers
- FastAPI endpoints
backend/main.py - Text embeddings
backend/embeddings.py - Chunk indexing
backend/index_chunks.py - Vector retrieval
backend/vector_store.py - Supabase pgvector
database/migrations/001_document_chunks.sql - Grounded answer generation
backend/generator.py - Google Gemini
Authentication
- Sign-in and signup
frontend/src/components/layout/AuthPage.jsx - Auth endpoints
backend/main.py - User accounts
database/migrations/user_table.sql - Brevo email
- Google OAuth
Attendance services
- Attendance calculator
frontend/src/pages/AttendanceCalculator.tsx - Timetable and attendance API
backend/main.py - Attendance tables
database/migrations/002_timetable_attendance.sql - Attendance reminders
backend/main.py
Student and admin portal
- Student portal
frontend/src/App.jsx - Knowledge base admin
frontend/src/pages/AdminBoard.jsx
Other components
- Student
- Staff admin
- Browser user
Connections 28
- University PDFs → PDF extraction and OCR: provides PDFs
README.md - PDF extraction and OCR → Page-aware chunking: feeds records
README.md - Page-aware chunking → Chunk dataset: writes chunks
README.md - Chunk dataset → Chunk indexing: indexes dataset
README.md - Chunk indexing → Text embeddings: embeds text
backend/index_chunks.py - Chunk indexing → Vector retrieval: upserts chunks
backend/index_chunks.py - Vector retrieval → Supabase pgvector: writes and searches
backend/vector_store.py - Browser user → Student portal: opens portal
README.md - Student portal → Sign-in and signup: renders sign-in
frontend/src/App.jsx - Sign-in and signup → Auth endpoints: submits signup and OTP
frontend/src/components/layout/AuthPage.jsx - Auth endpoints → User accounts: persists accounts
README.md - Auth endpoints → Brevo email: sends verification
README.md - Sign-in and signup → Google OAuth: supports OAuth
README.md - Student portal → FastAPI endpoints: sends chat requests
README.md - FastAPI endpoints → Text embeddings: embeds query
backend/main.py - FastAPI endpoints → Vector retrieval: retrieves chunks
README.md - FastAPI endpoints → Grounded answer generation: generates response
README.md - Grounded answer generation → Google Gemini: requests generation
backend/generator.py - Knowledge base admin → FastAPI endpoints: uploads documents
frontend/src/pages/AdminBoard.jsx - FastAPI endpoints → PDF extraction and OCR: extracts uploaded PDF
backend/main.py - FastAPI endpoints → Page-aware chunking: chunks extracted record
backend/main.py - FastAPI endpoints → Text embeddings: embeds uploaded chunks
backend/main.py - FastAPI endpoints → Vector retrieval: indexes uploaded chunks
backend/main.py - Student portal → Attendance calculator: renders calculator
frontend/src/App.jsx - Attendance calculator → Timetable and attendance API: manages attendance
README.md - Timetable and attendance API → Attendance tables: reads and writes
README.md - Timetable and attendance API → Attendance reminders: schedules reminders
backend/main.py - Attendance reminders → Brevo email: sends reminders