A full-stack web quiz game inspired by Kahoot, built with Django REST Framework (backend) and Vue 3 + Vite (frontend).
Players can create quizzes, join games using a public code, answer questions in real time, and compete on a leaderboard.
📄 User Guide: Guia Uso.pdf
(Contains detailed instructions on how to create questionnaires, host games, and participate.)
- Create and manage quiz questionnaires
- Generate unique game codes for participants
- Join games using an alias
- Submit answers and view rankings
- REST API for quizzes, participants, and answers
- Admin interface for managing users and questions
- Responsive Vue 3 interface built with Vite
- Supports deployment on Render (Gunicorn + Whitenoise)
| Layer | Technology | Description |
|---|---|---|
| Frontend | Vue 3 + Vite | Single-page app that consumes the REST API |
| Backend | Django 3.2 + DRF | Exposes endpoints for games, participants, and guesses |
| Database | PostgreSQL (Render) / SQLite (local) | Persists games, participants, and questions |
| Server | Gunicorn + Whitenoise | Handles production deployment |
| API Auth | Token-based (SimpleJWT, limited endpoints) | Protects admin/host operations |
- Backend: Django 3.2 · Django REST Framework · dj-database-url · psycopg2-binary · Whitenoise · Gunicorn
- Frontend: Vue 3 · Vite · Axios
- Database: PostgreSQL (prod) / SQLite (dev)
- Utilities: dotenv · django-cors-headers · coverage
git clone https://github.com/<yourusername>/<repo>.git
cd <repo>
python -m venv .venv
# Activate it
. .venv/Scripts/activate # Windows PowerShell
# or
source .venv/bin/activate # macOS / Linux
pip install -r requirements.txtThen run:
python manage.py migrate
python manage.py createsuperuser
python manage.py runservercd vueClient
npm install
# Optional: set backend URL
echo "VITE_API_URL=http://127.0.0.1:8000" > .env.development
npm run dev