Skip to main content

Python SDK for the Paircraft API - Chess Tournament Management

Project description

Chess Tournament Director

A comprehensive chess tournament management system with React frontend and Node.js backend, featuring Swiss-system pairings, player management, and tournament analytics.

๐Ÿ† Features

  • Tournament Management: Create and manage chess tournaments with multiple sections
  • Swiss System Pairings: Automated pairing algorithm with USCF compliance
  • Player Management: Add, edit, and search players with rating lookup
  • Real-time Standings: Live tournament standings with tiebreakers
  • Export Capabilities: PDF reports, CSV exports, and DBF file generation
  • Responsive Design: Modern React UI with Tailwind CSS
  • Authentication: Secure user authentication and authorization

๐Ÿš€ Quick Start

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • Git

Installation

  1. Clone the repository

    git clone <repository-url>
    cd ratings
    
  2. Install dependencies

    npm run install-all
    
  3. Set up environment variables

    cp .env.example .env
    # Edit .env with your configuration
    
  4. Start the development server

    npm run dev
    
  5. Access the application

    • Frontend: http://localhost:3000
    • Backend API: http://localhost:5000

๐Ÿ“ฆ Project Structure

ratings/
โ”œโ”€โ”€ client/                 # React frontend application
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/     # Reusable UI components
โ”‚   โ”‚   โ”œโ”€โ”€ pages/         # Application pages
โ”‚   โ”‚   โ”œโ”€โ”€ services/      # API services
โ”‚   โ”‚   โ””โ”€โ”€ contexts/      # React contexts
โ”œโ”€โ”€ server/                # Node.js backend
โ”‚   โ”œโ”€โ”€ routes/           # API routes
โ”‚   โ”œโ”€โ”€ services/         # Business logic
โ”‚   โ”œโ”€โ”€ middleware/       # Express middleware
โ”‚   โ””โ”€โ”€ database.js       # Database configuration
โ”œโ”€โ”€ uploads/              # File uploads
โ””โ”€โ”€ docs/                 # Documentation

๐Ÿ› ๏ธ Available Scripts

  • npm run dev - Start development server (both frontend and backend)
  • npm run client - Start React development server
  • npm run server - Start Node.js backend server
  • npm run build - Build React app for production
  • npm start - Start production server
  • npm run setup - Create admin user

๐ŸŒ Deployment

Heroku Deployment

This application is configured for easy Heroku deployment:

  1. Quick Deploy

    ./deploy.sh
    
  2. Manual Deploy

    • See HEROKU_DEPLOYMENT.md for detailed instructions
    • Or follow QUICK_DEPLOY.md for quick reference

Environment Variables

Variable Description Default
NODE_ENV Environment mode development
PORT Server port 5000
JWT_SECRET JWT token secret Required
CORS_ORIGIN CORS allowed origins http://localhost:3000

๐ŸŽฏ Core Features

Tournament Management

  • Create tournaments with custom settings
  • Manage multiple tournament sections
  • Set time controls and prize structures
  • Export tournament data in multiple formats

Pairing System

  • Swiss-system pairings with USCF compliance
  • Automatic bye assignment
  • Pairing history tracking
  • Conflict resolution

Player Management

  • Add players manually or import via CSV
  • USCF rating lookup integration
  • Player search and filtering
  • Rating history tracking

Analytics & Reporting

  • Real-time tournament standings
  • Comprehensive tiebreaker calculations
  • PDF report generation
  • Tournament statistics

๐Ÿ”ง Technology Stack

Frontend

  • React 18 - Modern React with hooks
  • TypeScript - Type-safe development
  • Tailwind CSS - Utility-first CSS framework
  • Axios - HTTP client for API calls

Backend

  • Node.js - JavaScript runtime
  • Express.js - Web application framework
  • SQLite - Lightweight database
  • JWT - Authentication tokens

Additional Tools

  • Helmet - Security middleware
  • CORS - Cross-origin resource sharing
  • Rate Limiting - API protection
  • Multer - File upload handling

๐Ÿ“š Documentation

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • USCF (United States Chess Federation) for pairing rules
  • Chess.com for inspiration
  • The open-source community for excellent tools and libraries

๐Ÿ“ž Support

For support and questions:

  • Create an issue in this repository
  • Check the documentation files in the root directory
  • Review the code comments for implementation details

Built with โค๏ธ for the chess community

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

paircraft-1.1.0.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

paircraft-1.1.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file paircraft-1.1.0.tar.gz.

File metadata

  • Download URL: paircraft-1.1.0.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for paircraft-1.1.0.tar.gz
Algorithm Hash digest
SHA256 95a6bf90fa442f2fa2b43500452bd235e19c7c63df8d85fee6ed5676af9f290b
MD5 e339efc301845d53c951ba1939d27003
BLAKE2b-256 68dd8053225d00fead7bd9d5b9062b11cf3432eab651ea39febf5ae3ccbc8e1b

See more details on using hashes here.

File details

Details for the file paircraft-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: paircraft-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for paircraft-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1f13431b906c3742366f2b66d02257a0b9c0535da7339bbf5f08ef69afdcdbe8
MD5 b67fa8601ad0bfeeb2dcee6b3ca23fcf
BLAKE2b-256 da1f6d27ef017efc10418663745efc80dc8f72acd50a60bd9ecb9e1166d5b98d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page