<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ritik Ahirwar</title>
    <description>The latest articles on DEV Community by Ritik Ahirwar (@ritik_ahirwar_8168).</description>
    <link>https://dev.to/ritik_ahirwar_8168</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4160326%2Ff2c719d4-5ea1-494f-b794-48a071520441.png</url>
      <title>DEV Community: Ritik Ahirwar</title>
      <link>https://dev.to/ritik_ahirwar_8168</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ritik_ahirwar_8168"/>
    <language>en</language>
    <item>
      <title>Campus Copilot — AI Academic Assistant for a College Student</title>
      <dc:creator>Ritik Ahirwar</dc:creator>
      <pubDate>Sun, 04 Oct 2026 21:00:02 +0000</pubDate>
      <link>https://dev.to/ritik_ahirwar_8168/campus-copilot-ai-academic-assistant-for-a-college-student-19kc</link>
      <guid>https://dev.to/ritik_ahirwar_8168/campus-copilot-ai-academic-assistant-for-a-college-student-19kc</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;College students often have information scattered across attendance, assignments, exams, notes, and to-do lists. A generic chatbot can give advice, but it does not necessarily understand the student's actual academic situation.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;Campus Copilot&lt;/strong&gt;, an AI-powered academic assistant designed around that problem.&lt;/p&gt;

&lt;p&gt;It combines deterministic academic logic with an open-weight AI workflow to turn campus context into concrete actions.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it does
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard&lt;/strong&gt; — attendance ring, warnings, deadlines, and today's recommended actions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attendance&lt;/strong&gt; — subject-level attendance, 75% warnings, and skip/attend simulation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Academics&lt;/strong&gt; — assignments, exams, and notes CRUD&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Productivity&lt;/strong&gt; — tasks and study plans ranked by risk and due dates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assistant&lt;/strong&gt; — contextual chat with structured actions such as:

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;create_task&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;start_study_block&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;flag_attendance&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Daily Priorities&lt;/strong&gt; — personalised academic priority planning&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Summarize&lt;/strong&gt; — converts study material into concise bullet points&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quiz Generator&lt;/strong&gt; — generates interactive MCQs with explanations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flashcards&lt;/strong&gt; — generates tap-to-flip Q&amp;amp;A cards&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Study Plan&lt;/strong&gt; — enhances the deterministic study plan with AI recommendations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key idea is simple: instead of saying &lt;em&gt;"study DSA today"&lt;/em&gt;, the assistant can use actual attendance risk, deadlines, tasks, and academic context to recommend what the student should do next.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;All AI features have graceful rule-based fallbacks when Ollama is unavailable, so the core application remains functional without a GPU.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Live Demo
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Frontend:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://campus-chatbot-kbkdt49ms-ritikahirwar8168-dev.vercel.app" rel="noopener noreferrer"&gt;https://campus-chatbot-kbkdt49ms-ritikahirwar8168-dev.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend API:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://campus-chatbot-bzk0.onrender.com" rel="noopener noreferrer"&gt;https://campus-chatbot-bzk0.onrender.com&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Demo Login
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Username&lt;/td&gt;
&lt;td&gt;&lt;code&gt;demo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Password&lt;/td&gt;
&lt;td&gt;&lt;code&gt;campus&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The seeded demo student is &lt;strong&gt;Ritik&lt;/strong&gt;, a B.Tech CSE semester 5 student with subjects, assignments, exams, notes, and tasks.&lt;/p&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/ritikahirwar8168-dev/campus-chatbot" rel="noopener noreferrer"&gt;https://github.com/ritikahirwar8168-dev/campus-chatbot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains both the FastAPI backend and React/Vite frontend:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;campus-chatbot/
├── backend/
└── frontend/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;Campus Copilot is built around &lt;strong&gt;Gemma 3 4B&lt;/strong&gt;, Google's open-weight model, served locally through &lt;strong&gt;Ollama&lt;/strong&gt; during development.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model:&lt;/strong&gt; Gemma 3 4B&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inference:&lt;/strong&gt; Ollama&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; FastAPI + SQLAlchemy + SQLite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React 18 + Vite 6 + Tailwind CSS 3&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authentication:&lt;/strong&gt; JWT + bcrypt&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; Render + Vercel&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The backend keeps the AI integration in a dedicated service:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;backend/app/services/ollama_service.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Prompt templates are separated into:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;backend/app/services/prompts.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The assistant and AI endpoints then use the shared AI service rather than exposing model calls directly to the browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  Deterministic + AI architecture
&lt;/h3&gt;

&lt;p&gt;I deliberately kept academic calculations deterministic.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;attendance calculations are handled by application logic&lt;/li&gt;
&lt;li&gt;deadlines and risk ranking are handled by application logic&lt;/li&gt;
&lt;li&gt;study-plan structure is generated deterministically&lt;/li&gt;
&lt;li&gt;AI is used for contextual language generation, summaries, quizzes, flashcards, priorities, and enhanced recommendations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This prevents an LLM from becoming the source of truth for calculations that should be exact.&lt;/p&gt;

&lt;h3&gt;
  
  
  Graceful fallback
&lt;/h3&gt;

&lt;p&gt;The project is designed to work even when the local model is unavailable.&lt;/p&gt;

&lt;p&gt;If Ollama is offline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the assistant can fall back to rule-based responses&lt;/li&gt;
&lt;li&gt;AI tools can return fallback behavior&lt;/li&gt;
&lt;li&gt;attendance, academics, productivity, and other core workflows continue to work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This also makes the application practical to demo without requiring a GPU.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Using an open-weight model made the AI layer more transparent and controllable during development.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;Gemma + Ollama&lt;/strong&gt;, I could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;run the model locally&lt;/li&gt;
&lt;li&gt;keep the inference architecture under my control&lt;/li&gt;
&lt;li&gt;develop without requiring a hosted proprietary AI endpoint&lt;/li&gt;
&lt;li&gt;isolate the model behind my own FastAPI service&lt;/li&gt;
&lt;li&gt;design deterministic fallbacks instead of making the entire application dependent on an external model API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For an academic assistant, this architecture is particularly useful because the application works with structured student context. The AI is an enhancement on top of the application logic rather than the entire application itself.&lt;/p&gt;

&lt;p&gt;The result is a hybrid design:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Student Context
      ↓
Deterministic Academic Logic
      ↓
AI Context + Prompts
      ↓
Gemma via Ollama
      ↓
Personalised Assistance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Optional: Add your DevRelay / agent session link here if you have one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The project was developed with an AI-assisted coding workflow, while keeping the application architecture, deterministic logic, deployment setup, and integration under project control.&lt;/p&gt;




&lt;h2&gt;
  
  
  Deployment
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Frontend — Vercel
&lt;/h3&gt;

&lt;p&gt;The React/Vite frontend is deployed on Vercel.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Root directory: &lt;code&gt;frontend&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Framework: Vite&lt;/li&gt;
&lt;li&gt;Environment variable:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VITE_API_URL=https://campus-chatbot-bzk0.onrender.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Live frontend:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://campus-chatbot-kbkdt49ms-ritikahirwar8168-dev.vercel.app" rel="noopener noreferrer"&gt;https://campus-chatbot-kbkdt49ms-ritikahirwar8168-dev.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Backend — Render
&lt;/h3&gt;

&lt;p&gt;The FastAPI backend is deployed on Render.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Root directory: &lt;code&gt;backend&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Build command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Start command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uvicorn app.main:app &lt;span class="nt"&gt;--host&lt;/span&gt; 0.0.0.0 &lt;span class="nt"&gt;--port&lt;/span&gt; &lt;span class="nv"&gt;$PORT&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Production configuration includes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OLLAMA_ENABLED=false
CORS_ORIGINS=https://campus-chatbot-kbkdt49ms-ritikahirwar8168-dev.vercel.app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Backend:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://campus-chatbot-bzk0.onrender.com" rel="noopener noreferrer"&gt;https://campus-chatbot-bzk0.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Production AI note
&lt;/h3&gt;

&lt;p&gt;The production Render deployment currently has:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OLLAMA_ENABLED=false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;because the deployed Render service does not run a local Ollama/Gemma instance.&lt;/p&gt;

&lt;p&gt;The application therefore uses its graceful fallback behavior in production. Gemma + Ollama is fully supported for local development and is the open-weight AI technology used to build the AI layer.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🏆 Best Use of Render — $200
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why this project fits:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Campus Copilot uses Render to host the production FastAPI backend.&lt;/p&gt;

&lt;p&gt;The backend is responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;authentication&lt;/li&gt;
&lt;li&gt;student context&lt;/li&gt;
&lt;li&gt;attendance logic&lt;/li&gt;
&lt;li&gt;academic data&lt;/li&gt;
&lt;li&gt;productivity workflows&lt;/li&gt;
&lt;li&gt;assistant actions&lt;/li&gt;
&lt;li&gt;AI endpoints&lt;/li&gt;
&lt;li&gt;fallback behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Render deployment:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Repository: ritikahirwar8168-dev/campus-chatbot
Root Directory: backend
Build: pip install -r requirements.txt
Start: uvicorn app.main:app --host 0.0.0.0 --port $PORT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Live backend:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://campus-chatbot-bzk0.onrender.com" rel="noopener noreferrer"&gt;https://campus-chatbot-bzk0.onrender.com&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🏆 Best Use of Gemma — $200
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why this project fits:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Campus Copilot uses &lt;strong&gt;Gemma 3 4B&lt;/strong&gt;, Google's open-weight model, as its primary AI model during local development.&lt;/p&gt;

&lt;p&gt;Gemma powers the project's AI-oriented features, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;contextual academic assistance&lt;/li&gt;
&lt;li&gt;daily priorities&lt;/li&gt;
&lt;li&gt;summarization&lt;/li&gt;
&lt;li&gt;quiz generation&lt;/li&gt;
&lt;li&gt;flashcard generation&lt;/li&gt;
&lt;li&gt;AI-enhanced study plans&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The model is served through &lt;strong&gt;Ollama&lt;/strong&gt;, with the AI integration isolated in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;backend/app/services/ollama_service.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This keeps the model layer replaceable and prevents direct AI calls from the frontend.&lt;/p&gt;

&lt;p&gt;Local setup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull gemma3:4b
ollama serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Local / AI-enabled
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────┐        ┌──────────────────────┐
│   React Frontend    │        │    Ollama Server     │
│   Vite + Tailwind   │        │    gemma3:4b         │
└────────┬────────────┘        └──────────┬───────────┘
         │                                │
         │ HTTP                           │ HTTP
         ▼                                │
┌────────────────────────────────────────────────────┐
│                  FastAPI Backend                   │
│                                                    │
│  Routers → Services → ollama_service.py           │
│      │          │                                  │
│      ▼          ▼                                  │
│   Models      Prompts                              │
│      │                                             │
│      ▼                                             │
│   SQLite                                           │
└────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Production
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────────┐
│     Vercel Frontend      │
│     React + Vite         │
└────────────┬─────────────┘
             │ HTTPS
             ▼
┌──────────────────────────┐
│     Render Backend       │
│     FastAPI + SQLite     │
│                          │
│  Deterministic logic    │
│  + AI fallback logic    │
└──────────────────────────┘
             │
             └── OLLAMA_ENABLED=false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Key Design Decisions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AI calls are &lt;strong&gt;never exposed directly to the frontend&lt;/strong&gt; — they go through the backend.&lt;/li&gt;
&lt;li&gt;Ollama configuration lives in &lt;strong&gt;environment variables&lt;/strong&gt;, not hard-coded application logic.&lt;/li&gt;
&lt;li&gt;The AI provider is isolated in &lt;strong&gt;&lt;code&gt;ollama_service.py&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Deterministic logic such as attendance calculations and deadlines is &lt;strong&gt;never delegated to AI&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Every AI endpoint has a &lt;strong&gt;graceful fallback&lt;/strong&gt; when Ollama is offline.&lt;/li&gt;
&lt;li&gt;The application remains usable for core academic workflows &lt;strong&gt;without a GPU&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Frontend and backend are deployed separately using &lt;strong&gt;Vercel&lt;/strong&gt; and &lt;strong&gt;Render&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  API Highlights
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Auth&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /api/auth/login&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Login and JWT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Attendance&lt;/td&gt;
&lt;td&gt;&lt;code&gt;GET /api/attendance&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Subject attendance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Attendance&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /api/attendance/simulate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;What-if simulator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dashboard&lt;/td&gt;
&lt;td&gt;&lt;code&gt;GET /api/dashboard&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Academic dashboard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Academics&lt;/td&gt;
&lt;td&gt;&lt;code&gt;GET /api/academics/assignments&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Assignments&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Productivity&lt;/td&gt;
&lt;td&gt;&lt;code&gt;GET /api/productivity/study-plan&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Study plan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Assistant&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /api/assistant/chat&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Contextual chat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Assistant&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /api/assistant/apply&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Apply recommended action&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /api/ai/summarize&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Summarization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /api/ai/quiz&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quiz generation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /api/ai/flashcards&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Flashcard generation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;GET /api/ai/daily-priorities&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Daily priorities&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;Building Campus Copilot reinforced an important lesson about AI applications:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The best AI feature is not always the part that generates the answer. It is the system that gives the model the right context and knows when not to use the model.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For this project, deterministic academic logic provides the reliable foundation, while Gemma adds natural-language reasoning and personalised assistance on top.&lt;/p&gt;

&lt;p&gt;That combination made it possible to build an academic assistant that is useful, explainable, and still functional when the model is unavailable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;p&gt;If I continue developing Campus Copilot, I would like to add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;persistent production database storage&lt;/li&gt;
&lt;li&gt;hosted Gemma inference for production AI features&lt;/li&gt;
&lt;li&gt;richer student-context retrieval&lt;/li&gt;
&lt;li&gt;calendar integration&lt;/li&gt;
&lt;li&gt;notifications for attendance and deadlines&lt;/li&gt;
&lt;li&gt;more personalised study analytics&lt;/li&gt;
&lt;li&gt;stronger evaluation of AI-generated quizzes and study plans&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
