Skip to content

Bracket Night is a fun and interactive game similar to a Jackbox Party game. Players join the game by scanning a QR code and vote on contestants in a classic tournament bracket. The game is built using TypeScript, with an ExpressJS backend and a NextJS frontend.

Notifications You must be signed in to change notification settings

helv-io/bracket-night

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bracket Night

Bracket Night is a fun and interactive game similar to a Jackbox Party game. Players join the game by scanning a QR code and vote on contestants in a classic tournament bracket. The game is built using TypeScript, with an ExpressJS backend and a NextJS frontend.

Features

  • Bracket Setup: Create a bracket with a title, subtitle, and 16 contestants, each with a small picture.
  • Voting System: Players vote on contestants, with winners advancing through Quarter Finals, Semi Finals, and Finals.
  • Tie Resolution: In case of a tie, a random winner is picked.
  • Player Management: Up to 10 players can join the game via QR code.
  • Bracket Code: The first player to join can enter a Bracket Code to pre-fill contestants and images.
  • Mobile Friendly: A mobile-friendly page allows players to enter bracket details and save them to a database.
  • Game Management: Each device can vote only once per game.
  • Docker Support: The project includes a Dockerfile for easy distribution.
  • Environment Variables: Use environment variables to configure the QR code generation.

Setup Instructions

Prerequisites

  • Node.js
  • Docker
  • VSCode

Project Setup

  1. Clone the Repository
git clone https://git.helv.io/helvio/bracket-night
cd bracket-night
  1. Install Dependencies
npm install
  1. Configure TypeScript Ensure tsconfig.json is properly set up for the project.

  2. Folder Structure

bracket-night/
├── backend/
│   ├── controllers/
│   ├── models/
│   ├── routes/
│   ├── services/
│   ├── config.ts
│   └── server.ts
├── frontend/
│   ├── components/
│   ├── pages/
│   ├── public/
│   ├── styles/
│   └── next.config.js
├── Dockerfile
├── package.json
└── README.md
  1. Run the Project
npm run dev

Docker Setup

  1. Build Docker Image
docker build -t bracket-night .
  1. Run Docker Container
docker run -p 3000:3000 bracket-night

Usage

  • Main Page: Opens the bracket screen with a random QR code for game attachment.
  • Mobile Page: Redirects to the contestants form at /new if accessed via a mobile device.

Development Notes

  • TypeScript: Use 2-space indentation and avoid semicolons.
  • Database: Use SQLite for storing bracket details and game management.
  • Effects: Add pleasant night-time colors and effects to enhance the game experience.

Contributing

Feel free to submit issues and pull requests to improve the project.

License

This project does not currently have a License. It will be licensed once development is more stable.

Star History

Star History Chart

About

Bracket Night is a fun and interactive game similar to a Jackbox Party game. Players join the game by scanning a QR code and vote on contestants in a classic tournament bracket. The game is built using TypeScript, with an ExpressJS backend and a NextJS frontend.

Resources

Stars

Watchers

Forks

Languages