A comprehensive tournament management system with casino minigames
TournamentManager is a full-stack web application designed for organizing and managing competitive tournaments. It features a powerful bracket system, team management, real-time match scoring, and a casino entertainment section with multiple minigames. Built with React and Node.js, it provides a seamless experience for tournament organizers, players, and spectators.
- Create & Manage Tournaments - Set up tournaments with customizable settings
- Bracket Formats - Support for both single and double elimination brackets
- Team-Based Competition - Configurable team sizes for flexible competition formats
- Tournament Lifecycle - Track tournaments through all stages:
Upcoming โ Ongoing โ Finished - Bye Distribution - Automatic handling for non-power-of-2 team counts
- Walkover Handling - Manage no-show situations gracefully
- Visual Bracket Display - Tree-based layout algorithm for perfect alignment with SVG connectors
- Real-Time Winner Progression - Automatic bracket updates as matches complete
- Interactive Match Popups - View match details, players, and scores
- Role-Based Access Control
- Teachers - Create and manage tournaments
- Students - Join teams and view tournaments
- Owners - Full control over their tournaments
- User Profiles - Customizable avatars and personal statistics
- Authentication - Secure login system with Edupage integration
- Score Management - Track individual match scores
- Match Statuses -
PLAYED,NO_SHOW,WALK_OVER,NO_PARTY - Real-Time Updates - Live bracket updates for all viewers
- Tournament Stats - Track finals placements (1st, 2nd, 3rd, 4th place finishes)
- Match Statistics - Wins, losses, and overall tournament participation
- Game High Scores - Persistent high score tracking for minigames
A complete entertainment section with virtual credits:
| Game | Description |
|---|---|
| ๐ฐ Slot Machine | Classic slot machine with multiple symbols and payout multipliers |
| ๐ก Roulette | European roulette with full betting table, chip selection, and big win animations |
| ๐ Poker (Texas Hold'em) | Multiplayer poker with lobby system and real-time gameplay |
| ๐ฆ Flappy Bird | Classic side-scrolling minigame with high score tracking |
- Virtual Credits - Earn, spend, and track credits across games
- In-Game Shop - Purchase cosmetic items like profile pictures
A rich collection of reusable components:
- Buttons - Multiple variants and colors
- Cards - Tournament and navbar card types
- Notifications - Success, error, warning, and info alerts
- Confirmation Dialogs - Modal confirmation prompts
- Input Components - Text inputs, select dropdowns, multi-select
- Pagination - Navigate through large data sets
- Date/Time Picker - Tournament scheduling
Full multi-language support with 9 languages:
| Language | Code |
|---|---|
| ๐ฌ๐ง English | en |
| ๐ธ๐ฐ Slovak | sk |
| ๐จ๐ฟ Czech | cz |
| ๐ฉ๐ช German | de |
| ๐ญ๐บ Hungarian | hu |
| ๐ฏ๐ต Japanese | ja |
| ๐ต๐ฑ Polish | pl |
| ๐ท๐บ Russian | ru |
| ๐จ๐ณ Chinese | zh |
The project follows a clean client-server architecture:
TournamentManager/
โโโ uu_ritr_maing01-hi/ # ๐จ Frontend (React SPA)
โ โโโ src/
โ โโโ bricks/ # Reusable UI components
โ โ โโโ components/ # Core component library
โ โ โ โโโ brackets/ # Bracket visualization
โ โ โ โโโ poker/ # Poker game components
โ โ โ โโโ ui/ # UI primitives (Button, Card, Input...)
โ โ โ โโโ notifications/# Toast notifications
โ โ โโโ shop/ # Virtual shop system
โ โโโ routes/ # Page components
โ โโโ styles/ # CSS stylesheets
โ โโโ lsi/ # Language translations
โ โโโ hooks/ # Custom React hooks
โ โโโ calls.js # API client
โ
โโโ uu_ritr_maing01-server/ # โ๏ธ Backend (Node.js)
โ โโโ app/
โ โโโ abl/ # Business logic layer
โ โ โโโ tournament-abl.js
โ โ โโโ match-abl.js
โ โ โโโ player-abl.js
โ โ โโโ team-abl.js
โ โโโ api/ # Controllers & validation
โ โ โโโ controllers/
โ โ โโโ errors/ # Custom error classes
โ โ โโโ validation_types/ # Input validation schemas
โ โโโ dao/ # Data access layer
โ โโโ config/ # Server configuration
โ
โโโ docker-compose.yml # ๐ณ Docker orchestration
| Layer | Technologies |
|---|---|
| Frontend | React, uu5g05 (routing), Custom CSS, SVG graphics |
| Backend | Node.js, Express-like controllers, MongoDB |
| Deployment | Docker, Docker Compose |
- Node.js 14+
- MongoDB
- npm or yarn
- Docker (optional, for containerized deployment)
-
Clone the repository
git clone https://github.com/your-username/TournamentManager.git cd TournamentManager -
Install frontend dependencies
cd uu_ritr_maing01-hi npm install -
Install backend dependencies
cd ../uu_ritr_maing01-server npm install
Frontend:
cd uu_ritr_maing01-hi
npm startBackend:
cd uu_ritr_maing01-server
npm startdocker-compose up -d| Document | Description |
|---|---|
| Frontend Docs | Frontend architecture and components |
| Backend Docs | API endpoints and business logic |
| Bracket Algorithm | How the bracket system works |
| Page | Description |
|---|---|
| Home | Landing page with welcome message and navigation |
| Tournaments | Browse and join available tournaments |
| Tournament Detail | View bracket, matches, and tournament info |
| History | View past tournament results |
| Profile | User statistics, achievements, and avatar customization |
| Casino | Minigames section (Roulette, Slots, Poker, Flappy Bird) |
| About | Information about the application |
- uuAppg01Devkit Documentation
- uuSubApp Instance Descriptor
- uuApp Server Project (NodeJs)
- uuApp Client Project (UU5)
This project is part of the uuApp ecosystem.
Made with โค๏ธ for tournament enthusiasts