Skip to content

jmettler27/Pop

Repository files navigation

logo

Pop!

Pop! is a real-time, interactive quiz game web app built with Next.js and Firebase, hosted on Vercel.

Create, organize, play, and spectate quiz games with friends β€” covering video games, movies, anime/manga, music, literature, Internet culture, and more.

Note: The game is designed to be played while chatting in-person or on a VoIP app such as Discord or Zoom.

Features

  • Real-time multiplayer β€” play with friends in teams or solo
  • 12 unique round types β€” Progressive Clues, Image, Emoji, Blindtest, Quote, Labelling, Enumeration, Odd One Out, Matching, Reordering, MCQ, and Nagui
  • Role-based gameplay β€” organizers control the game, players answer, spectators watch
  • Buzzer system β€” race to answer first in buzzer-based rounds
  • Scoring & leaderboards β€” round scores, global scores, and dynamic charts
  • Sound effects & soundboard β€” immersive audio feedback
  • Question database β€” submit, review, and reuse community questions
  • OAuth2 authentication β€” sign in with Google or Discord
  • Internationalization β€” English and French

Documentation

For detailed gameplay rules, round type descriptions, scoring mechanics, and more, visit the Wiki.

Tech Stack

Layer Technology
Framework Next.js
UI React, Material UI, Tailwind CSS
Auth NextAuth.js (Google, Discord)
Database Firestore
Storage Firebase Storage
Hosting Vercel
Forms Formik, Yup

Getting Started

Prerequisites

Installation

# Clone the repository
git clone https://github.com/jmettler27/Pop.git
cd Pop

# Install dependencies
npm install

# Set up environment variables
# Copy process.env and fill in your Firebase + OAuth credentials

# Start the development server
npm run dev

The app will be available at http://localhost:3000.

Available Scripts

Command Description
npm run dev Start the development server
npm run build Build for production
npm run start Start the production server
npm run lint Run ESLint

Project Structure

src/
β”œβ”€β”€ app/            # Next.js App Router pages & layouts
β”‚   β”œβ”€β”€ (game)/     # Game pages
β”‚   β”œβ”€β”€ api/        # API routes (NextAuth)
β”‚   β”œβ”€β”€ edit/       # Game editor
β”‚   β”œβ”€β”€ join/       # Join game flow
β”‚   └── submit/     # Question submission forms
β”œβ”€β”€ backend/        # Server-side logic
β”‚   β”œβ”€β”€ firebase/   # Firebase configuration
β”‚   β”œβ”€β”€ models/     # Data models
β”‚   β”œβ”€β”€ repositories/ # Data access layer
β”‚   └── services/   # Business logic
β”œβ”€β”€ frontend/       # Client-side components & utilities
β”‚   β”œβ”€β”€ components/ # React components
β”‚   β”œβ”€β”€ hooks/      # Custom React hooks
β”‚   └── utils/      # Client utilities
└── i18n/           # Internationalization (EN/FR)

About

🍿 Pop! is a multi-player quiz game revolving around pop culture, built with Next.js, React and Firebase.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages