Inspiration

In the last semester, we roamed around endlessly just to update our activity points and duty leave. We realized that it wasn't just a struggle for us; teachers also faced this hectic situation at the end of every semester. This shared frustration inspired us to build an app that makes the entire process seamless, secure, and automated.

What it does

What it does is simple,

We have two separate, purpose-built interfaces:

  • For Students: A secure portal where they can upload various academic artifacts (Certificates, Duty Leave Forms, Internship Reports). Instead of manual data entry, our integrated AI Auditor scans the document, extracts the student details, validates the event date, and instantly predicts the KTU activity points based on the official regulations.
  • For Teachers: A tactical "Command Console" where faculty can review incoming submissions. The system automatically flags "High Risk" documents (potential fraud) and provides a clear summary, allowing teachers to Approve or Reject requests with a single click.

How we built it

We treated this like a high-tech production, utilizing a modern, scalable tech stack:

  • The Face (Frontend): Built with React + Vite for blazing-fast performance and styled with Tailwind CSS to create our signature "Cyber-Glass" aesthetic.
  • The Brain (AI): We integrated Google Gemini (2.0 Flash) to act as our intelligent auditor. We engineered custom prompts that allow the AI to switch contexts (e.g., judging an Internship differently from a Sports Certificate) and detect non-academic images.
  • The Backbone (Backend): A robust Node.js & Express server manages the data flow, using MongoDB Atlas as our secure cloud vault.
  • The Messenger: We implemented Resend to handle transactional emails, ensuring students receive instant notifications when their submissions are processed.

Challenges we ran into

  • The "Context" Problem: Initially, the AI treated every upload the same. We had to implement a "Category Selector" on the frontend and pass that context to the backend so the AI knew whether to look for attendance dates (Duty Leave) or achievement levels (Certificates).
  • The CORS Blockade: Connecting our modern Vite frontend (Port 5173) to our Express backend (Port 5000) caused significant security friction. We had to carefully configure our CORS policies and proxy settings to ensure smooth communication.
  • Invisible Enemies: We spent hours debugging syntax errors that turned out to be invisible non-breaking spaces hidden in our codebase, teaching us the importance of clean coding environments.

Accomplishments that we're proud of

  • The "Bouncer" Logic: We successfully built a fraud detection system where the AI automatically assigns 0 points and flags a submission as "Suspicious" if the uploaded image is invalid (e.g., a blurry photo or food menu).
  • The Full Loop: Achieving a seamless flow where a file upload triggers an AI analysis, saves to a database, updates the UI, and sends an email notification—all in under 3 seconds.
  • Dynamic Dashboard: Creating a Teacher Dashboard that updates in real-time as submissions are processed, complete with color-coded status badges and risk indicators.

What we learned

  • Prompt Engineering is Key: We learned that the quality of AI output is entirely dependent on the structure of the input prompt. Giving the AI a "Persona" (Academic Auditor) significantly improved accuracy.
  • State Management: We gained a deeper understanding of managing complex state in React, specifically syncing the UI with asynchronous backend responses.
  • Security First: We learned the importance of separating concerns—keeping our API keys secure in environment variables and never exposing them to the client side.

What's next for Campus Vault

  • Real-Time War Room: Implementing WebSockets to allow teachers to see submissions pop up on their screen instantly without refreshing.
  • Blockchain Integration: We plan to hash approved certificates onto a blockchain ledger, making the academic record immutable and tamper-proof.
  • Mobile App: Porting the "Cyber-Glass" interface to React Native for on-the-go access.

Built With

Share this project:

Updates