One campus. One platform. Zero friction.
CampusLink collapses the fragmented digital life of a college — WhatsApp announcements, email chains, scattered portals — into a single, intelligent campus hub that actually works the way students and faculty think.
The Story
The Problem
Campus communication is broken. Important announcements get buried in 50-message WhatsApp threads. Event registrations are Google Forms shared via screenshots. Faculty post assignments in three different places. Students miss deadlines not because they're careless, but because information is everywhere and nowhere.
Why It Matters
Poor campus communication isn't just an inconvenience — it creates inequity. Students who are in the right WhatsApp group get opportunities; those who aren't, miss them. A centralised platform levels that playing field entirely.
The Solution
A React + Supabase campus platform with an AI assistant (Gemini) for answering campus queries, real-time announcements, event discovery, resource sharing, and a faculty-student communication layer — all in one authenticated app.
Product Features
A Gemini-powered chatbot that answers questions about timetables, exam schedules, campus facilities, and academic policies — trained on campus-specific context.
Faculty and admins post announcements that appear instantly on student dashboards via Supabase real-time subscriptions. Priority announcements trigger push notifications.
Discover, register, and get reminders for all campus events — clubs, fests, workshops, and academic events in a unified calendar view.
Faculty upload notes, past papers, and assignments — students access them by subject, semester, and branch. Version history for updated documents.
Students, faculty, club coordinators, and admins each have scoped views and permissions enforced by Supabase Row Level Security.
System Architecture
Client → Supabase (Auth + RLS + Realtime) → PostgreSQL | Gemini API for AI queries
Technical Deep Dive
The Gemini-powered assistant is grounded with a campus-specific knowledge base — timetables, academic calendar, faculty directory, and policy documents stored as embeddings in pgvector. When a student asks 'When is the internal assessment for Data Structures?', the system retrieves the most relevant context chunks and injects them into the Gemini prompt before answering. This prevents hallucinations about campus-specific data.
Every table has Row Level Security policies. Students can only read announcements targeted to their branch and year. Faculty can only modify resources for subjects they're assigned to. Admins have unrestricted access. No application-level permission checks — all enforced at the database layer. This makes the system secure even if the frontend has a bug.
-- RLS policy: students see only their branch announcements
CREATE POLICY "students_view_branch_announcements"
ON announcements FOR SELECT
USING (
branch = (SELECT branch FROM students WHERE id = auth.uid())
OR branch = 'all'
);Engineering Decisions
Performance & Scale
Deployment & Infrastructure
Deployment
React SPA on Netlify. Supabase hosted PostgreSQL + Auth + Storage. Gemini API for AI queries. pgvector for semantic search.
CI/CD
GitHub Actions — lint + type check on PR. Netlify preview deploy on every branch.
Monitoring
Supabase dashboard for DB performance and Auth events. Netlify Analytics.
Challenges & Failures
What I Learned
Supabase RLS eliminates an entire class of security bugs — enforce access at the DB, not the client.
RAG accuracy depends on knowledge base quality more than model choice — garbage in, garbage out.
Campus software needs offline-resilient UX — network conditions in institutions are unpredictable.
Future Roadmap
v2.0 — 2026
Screenshots
Student dashboard — announcements and events
Gemini-powered campus assistant interface
Technology Stack
Frontend
Backend / DB
Database
AI / Search
AI
Deployment
Ready to dive in?