Inspiration
What it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for “Adversarial Exam Intelligence System (AEIS)
Build a full-stack web application called “Adversarial Exam Intelligence System (AEIS)” that generates AI-resistant exam questions and evaluates them using Gemini API.
🎯 Core Features
- Generate adversarial exam questions
- Send generated questions to Gemini API to simulate AI answering
- Evaluate if the question is too easy for AI
- Assign an “LLM Resistance Score”
- Accept or reject the question
- Store accepted questions in database
- Show results in a dashboard UI
🧱 Tech Stack Requirements
- Frontend: React.js (with Tailwind CSS)
- Backend: Node.js with Express
- Database: MongoDB (Mongoose)
- API Integration: Gemini API (mock if API key not available)
- Use Axios for API calls
🖥️ Frontend Requirements
Create a clean modern dashboard UI with:
Pages:
- Home Dashboard
- Generate Question Page
- Question Review Page
- Final Question Bank Page
Components:
- Navbar
- Sidebar
- Question Card
- Score Badge (LLM Resistance Score)
- AI Response Viewer
- Approve / Reject Buttons
Features:
- Input field to define question type (UPSC/JEE/University)
- Button: “Generate Question”
Display:
- Generated Question
- AI Answer (from backend)
- Score
Buttons:
- Accept → Save to DB
- Reject → Regenerate
⚙️ Backend Requirements
API Routes:
- POST /generate-question
- Use Gemini API (or mock)
Generate adversarial question based on:
- Local context
- Multi-language hint
- Real-world reasoning
- POST /test-question
- Send question to Gemini API
- Get AI-generated answer
- POST /evaluate
Calculate LLM Resistance Score based on:
- Specificity
- Local dependency
- Personalization requirement
- Generic answer detection
- POST /save-question
- Save accepted questions to MongoDB
- GET /questions
- Fetch all accepted questions
🧠 Evaluation Logic
Implement a scoring system:
score = (specificity * 0.3) + (local_context * 0.3) + (non_generic * 0.2) + (real_time * 0.2)
Reject if score < 0.75
🗄️ Database Schema (MongoDB)
Collection: questions
Fields:
- questionText (String)
- aiAnswer (String)
- score (Number)
- status (accepted/rejected)
- createdAt (Date)
🔗 Integration
- Connect frontend to backend using Axios
- Show loading states
- Handle errors gracefully
- Use environment variables for API keys
🎨 UI Style
- Use Tailwind CSS
- Dark mode dashboard
- Cards with shadows and rounded corners
- Clean typography
🚀 Bonus Features (if possible)
- Add “Regenerate Question” button
- Add filter in Question Bank
- Add simple analytics (average score)
📁 Folder Structure
/client → React frontend /server → Node backend
⚡ Deliverable
- Fully working full-stack app
- All components connected
- Ready to run locally with: npm install npm run dev
Generate clean, modular, production-ready code with comments explaining logic.
Built With
- javascript
- python
- tailwandcss
Log in or sign up for Devpost to join the conversation.