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.
- 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.
- Node.js
- Docker
- VSCode
- Clone the Repository
git clone https://git.helv.io/helvio/bracket-night
cd bracket-night- Install Dependencies
npm install-
Configure TypeScript Ensure
tsconfig.jsonis properly set up for the project. -
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
- Run the Project
npm run dev- Build Docker Image
docker build -t bracket-night .- Run Docker Container
docker run -p 3000:3000 bracket-night- Main Page: Opens the bracket screen with a random QR code for game attachment.
- Mobile Page: Redirects to the contestants form at
/newif accessed via a mobile device.
- 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.
Feel free to submit issues and pull requests to improve the project.
This project does not currently have a License. It will be licensed once development is more stable.