A modern TypeScript-based tournament platform for gaming competitions, built with React, Express.js, and PostgreSQL.
- Tournament Management: Create and manage gaming tournaments with customizable settings
- User Authentication: Telegram-based authentication system
- Real-time Updates: WebSocket support for live tournament updates
- Responsive Design: Modern UI built with React and Tailwind CSS
- Database Integration: PostgreSQL with Drizzle ORM for type-safe database operations
├── client/ # React frontend application
├── server/ # Express.js backend API
├── shared/ # Shared types and database schemas
├── attached_assets/ # Static assets and media files
└── dist/ # Build output directory
- React 18 with TypeScript
- Vite for fast development and building
- Tailwind CSS for styling
- Radix UI components for accessible UI
- TanStack Query for data fetching
- Framer Motion for animations
- Express.js with TypeScript
- PostgreSQL database
- Drizzle ORM for database operations
- WebSocket support for real-time features
- Passport.js for authentication
- TypeScript for type safety
- ESLint and Prettier for code quality
- Vite for development server and building
- Node.js 18 or higher
- PostgreSQL database
- npm or yarn package manager
- Clone the repository:
git clone <repository-url>
cd WZ- Install dependencies:
npm install- Set up environment variables:
cp .env.example .env
# Edit .env with your configuration- Set up the database:
npm run db:push- (Optional) Seed demo tournaments:
npm run seed- Start the development server:
npm run devThe application will be available at http://localhost:5173
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run check- Type check with TypeScriptnpm run db:push- Push database schema changesnpm run seed- Seed demo tournaments with sample data
- Battle Royale Tournaments: Support for battle royale style competitions
- Entry Fees & Prizes: Configurable entry fees and prize pools
- Participant Management: Handle participant registration and limits
- Tournament Status: Track upcoming, active, and completed tournaments
- User Stars System: Track user achievements and standings
This project uses ESLint and Prettier for consistent code formatting. Run the linters before committing:
npm run lint
npm run formatThe project uses Drizzle ORM with PostgreSQL. Schema files are located in the
shared/ directory.
To make database changes:
- Edit schema files in
shared/schema.ts - Run
npm run db:pushto apply changes
- Build the project:
npm run build-
Set production environment variables
-
Start the production server:
npm run start- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.