RocketQuiz is a modern, production-ready, Kahoot-like quizzer web app built with React, Vite, Tailwind CSS, and Supabase. It supports both anonymous and registered user experiences, real-time multiplayer, and a beautiful, responsive UI.
Check it out here: https://rocketquiz.us
- Browsing & Searching Quizzes:
- Anonymous users can browse a list of available quizzes.
- Search screen with filters: language (default English), popularity, tags, keywords.
- Single-Player Mode:
- Anonymous users can play quizzes solo.
- After each session: see correct answers, percentage of players per option, and a session-specific leaderboard.
- Nickname-based Participation:
- Anonymous users join live games with a nickname.
- Game Session Initiation:
- Registered users can start multiplayer games from existing quizzes.
- Unique game session URLs for sharing.
- Real-time Feedback:
- After each question: correct answer, option distribution, and current leaderboard.
- Final Leaderboard:
- End-of-game leaderboard with top nicknames and scores.
- Anonymous-to-Registered Transition:
- Users can register for a full profile.
- Registered users can start multiplayer games and create quizzes.
- Quiz Content:
- Registered users can create quizzes with title, description, language, and tags.
- Question Setup:
- Each quiz has one or more questions, each with one correct and several wrong answers.
- Multimedia Options:
- Optional image URLs for quizzes and questions.
- Search Quiz Screen:
- Filter by language, popularity, tags, and keywords.
- Landing/Home:
- Greeted by featured/trending quizzes.
- Quiz Discovery:
- Search and filter quizzes.
- Quiz Engagement:
- Play quiz, answer questions.
- Results & Feedback:
- See correct answers, option stats, and leaderboard after each question and at the end.
- Joining via URL:
- Click unique session URL.
- Nickname Creation:
- Enter nickname before joining.
- Game Play:
- Wait in lobby, play quiz, see real-time feedback and leaderboard.
- Final Standings:
- View final leaderboard.
- Registration/Login:
- Register and log in.
- Session Creation:
- Start multiplayer game from quiz search.
- Sharing Game URL:
- Share unique session URL.
- Game Management:
- View real-time feedback and final leaderboard.
- Access Creation Page:
- Go to “Create Quiz” from dashboard.
- Quiz Setup:
- Enter title, description, language, tags.
- Question Addition:
- Add questions, correct/wrong answers, optional images.
- Publishing & Management:
- Publish quiz, manage from dashboard.
- Elements: Navbar, featured quizzes carousel.
- Purpose: Gateway for quiz discovery or joining live sessions.
- Elements: Search bar, filters (language, tags, popularity, keywords), quiz list/grid with thumbnails.
- Purpose: Find quizzes by interest.
- Elements: Progress indicator, question display (text/image), multiple-choice answers, timer.
- Feedback: Post-question modal with correct answer, option stats, and leaderboard.
- Elements: Nickname prompt, waiting area visuals.
- Purpose: Manage player identity and game start.
- Elements: Real-time question display, answer buttons, timer.
- Live Feedback: Summary panel with correct answer, stats, and live leaderboard.
- Elements: Final scores, top rankings, performance breakdown.
- Purpose: Closure and recognition.
- Elements: Username, email, password fields, forgot password link.
- Purpose: Register and log in.
- Profile Dashboard: User activity, navigation to create/manage quizzes.
- Quiz Creation: Form for quiz details, image URLs, dynamic question entry.
- Responsive Design: All screens adapt to mobile, tablet, and desktop.
- Real-Time Performance: Uses WebSocket or similar for multiplayer feedback.
- Security & Data Integrity: Secure storage, validation, authentication, and authorization.
- Analytics & Feedback: Track quiz plays and user behavior for future improvements.
- Frontend: React, Vite, Tailwind CSS, Lucide React (icons)
- Backend: Supabase (SaaS, SQL migrations in
supabase/migrations) - Config: Environment variables in
.env(see.env.example) - Images: Stock photos from Unsplash (linked, not downloaded)
- Clone the repository
- Install dependencies
npm install
- Configure environment variables
- Copy
.env.exampleto.envand fill in required values.
- Copy
- Run the development server
npm run dev
src/- React source codesrc/components/- Reusable UI componentssrc/pages/- Page-level componentssupabase/migrations/- SQL migration files for Supabase.env- Environment variables (not committed).env.example- Example env file with documentation
GNU AFFERO GENERAL PUBLIC LICENSE (AGPL) - see LICENSE.txt for more details.