https://github.com/logifex/shahoot
Interactive full stack quiz app made with React, Express and Socket.IO
https://github.com/logifex/shahoot
express mongodb nodejs quiz quizapp react socket-io
Last synced: 3 months ago
JSON representation
Interactive full stack quiz app made with React, Express and Socket.IO
- Host: GitHub
- URL: https://github.com/logifex/shahoot
- Owner: logifex
- Created: 2025-01-03T16:29:40.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-03T09:17:05.000Z (over 1 year ago)
- Last Synced: 2025-03-03T09:35:22.596Z (over 1 year ago)
- Topics: express, mongodb, nodejs, quiz, quizapp, react, socket-io
- Language: TypeScript
- Homepage: https://shahoot.onrender.com
- Size: 327 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Shahoot!
Shahoot! is a quiz application inspired by Kahoot. It allows users to create, host, and participate in quizzes in a fun and interactive way.
## Live Demo
You can try the live version of Shahoot! here: \
(The loading or login can take up to a minute because of Render's cold boot)
## Features
- Create Quizzes: Users can create custom quizzes with multiple-choice questions.
- Host Quizzes: Start live sessions where players can join and answer questions in real time.
- Join Quizzes: Players can join hosted sessions using a unique code.
- Authentication: JWT-based authentication.
- Email Verification: New users must verify their email address to activate their accounts.
## Environment Variables
Create a .env file in the server directory with the following variables:
| Variable | Description |
| --- | --- |
| CLIENT_URL | The URL of the client application |
| JWT_SECRET | Secret key for signing JWT tokens |
| MAIL_SECRET | Secret key for signing email verification tokens |
| MAILJET_API_KEY | API key for Mailjet to send verification emails |
| MAILJET_API_SECRET | API secret for Mailjet to send verification emails |
| EMAIL_ADDRESS | Sender email address for verification emails |
| EMAIL_NAME | Sender email name for verification emails |
You can also change the VITE_SERVER_URL environment variable in the .env file in the client directory.
## Technologies Used
- **React**: Frontend
- **Express**: Backend
- **Socket.IO**: Sockets for the live quiz sessions
- **MongoDB**: Database
- **PassportJS**: Authentication
- **Mailjet**: Sending verification emails