AI-Powered-Quiz-and-Assessment-Platform

🧠 Wayground — AI-Powered Quiz Platform

A full-stack quiz platform where teachers create quizzes (with AI), students play them, and results are tracked.


⚡ Quick Start

1. Prerequisites

2. Clone & Install

# Install all dependencies
cd wayground
npm run install:all

3. Configure Backend

cd backend
cp .env.example .env

Edit .env:

PORT=5000
MONGODB_URI=mongodb://localhost:27017/wayground
# OR for Atlas: mongodb+srv://<user>:<pass>@cluster.mongodb.net/wayground
JWT_SECRET=any_long_random_string_here
JWT_EXPIRE=7d
GEMINI_API_KEY=your_key_from_aistudio_google_com

4. Run

# Terminal 1 — Backend
cd backend && npm run dev

# Terminal 2 — Frontend
cd frontend && npm run dev

Open http://localhost:5173 🎉


🏗️ Architecture

wayground/
├── backend/               # Node.js + Express API
│   └── src/
│       ├── models/        # Mongoose schemas
│       │   ├── User.js    # Auth + roles
│       │   ├── Quiz.js    # Quiz + questions
│       │   └── Result.js  # Scores + answers
│       ├── routes/
│       │   ├── auth.js    # /api/auth/*
│       │   ├── quiz.js    # /api/quizzes/*
│       │   ├── result.js  # /api/results/*
│       │   └── ai.js      # /api/ai/generate
│       ├── middleware/
│       │   └── auth.js    # JWT + role guard
│       └── server.js      # Entry point
│
└── frontend/              # React + Vite + Tailwind
    └── src/
        ├── pages/
        │   ├── Landing.jsx
        │   ├── Login.jsx
        │   ├── Register.jsx
        │   ├── Dashboard.jsx     # Teacher & Student views
        │   ├── CreateQuiz.jsx    # + AI generator
        │   ├── EditQuiz.jsx
        │   ├── PlayQuiz.jsx      # Timer + question flow
        │   ├── Results.jsx       # Score + review
        │   └── MyResults.jsx     # Student history
        ├── components/
        │   └── Navbar.jsx
        ├── context/
        │   └── AuthContext.jsx   # Global auth state
        └── api/
            └── index.js          # Axios instance

🔌 API Reference

Method Endpoint Auth Description
POST /api/auth/register — Create account
POST /api/auth/login — Login
GET /api/auth/me ✓ Current user
GET /api/quizzes ✓ All published quizzes
GET /api/quizzes/my Teacher My quizzes
POST /api/quizzes Teacher Create quiz
PUT /api/quizzes/:id Teacher Edit quiz
DELETE /api/quizzes/:id Teacher Delete quiz
POST /api/results/submit Student Submit quiz
GET /api/results/my Student My history
GET /api/results/quiz/:id Teacher Quiz leaderboard
POST /api/ai/generate Teacher AI question gen

🤖 AI Question Generation

Uses Google Gemini 1.5 Flash (free, 1M tokens/day).

  1. Get your key at aistudio.google.com/app/apikey
  2. Add to .env as GEMINI_API_KEY
  3. In Create Quiz → type a topic → click Generate

🚀 Next Features to Add


🛠️ Tech Stack

Layer Tech
Frontend React 18 + Vite + Tailwind CSS
Backend Node.js + Express
Database MongoDB + Mongoose
Auth JWT (jsonwebtoken + bcryptjs)
AI Google Gemini 1.5 Flash
Icons Lucide React
Fonts Syne + DM Sans