Skip to the content.

🚀 Vi-SlideS API Documentation

🌐 Base URL


🔐 Authentication

All protected routes require:

Authorization: Bearer <JWT_TOKEN>

👤 Authentication APIs

Register

POST /api/auth/register

{
  "name": "John Doe",
  "email": "john@example.com",
  "password": "password",
  "role": "student"
}

Login

POST /api/auth/login

{
  "email": "john@example.com",
  "password": "password"
}

Google Login

POST /api/auth/google-login

{
  "token": "google_id_token"
}

Get Profile 🔐

GET /api/auth/profile


🧑‍🏫 Session APIs

Create Session 🔐 (Teacher)

POST /api/session/create-session

{
  "name": "Session Name",
  "code": "AUTO"
}

Get Session 🔐

GET /api/session/:code


Get Teacher Sessions 🔐

GET /api/session/teacher-sessions


End Session 🔐

PATCH /api/session/:code/end


❓ Question APIs

Submit Question (Live) 🔐

POST /api/session/:code/question


Submit QR Question (Public)

POST /api/session/ask/:sessionCode


Get QR Form

GET /api/session/ask/:sessionCode


💬 Answer APIs

Manual Answer 🔐

POST /api/session/:code/question/:questionId/answer


AI Answer 🔐

POST /api/session/:code/question/:questionId/ask-ai


🎮 Session Controls

Pause / Resume 🔐

PATCH /api/session/:code/pause

{
  "paused": true
}

Get Server IP

GET /api/session/server-ip


⚡ Socket.IO Events

Client → Server

Server → Client


❗ Error Codes

Code Meaning
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Server Error

⚙️ Notes


🔄 Quick Flow

  1. Teacher creates session
  2. Students send questions (Socket)
  3. Teacher answers / uses AI
  4. Updates broadcast in real-time
  5. Session ends