A simple but effective ranking system designed to track Spikeball matches and tournament results within the AImageLab team at the University of Modena and Reggio Emilia. Built with Django and powered by both TrueSkill and ELO rating systems, ZipLeague brings competitive fun to our research group's recreational activities.
- Player Management: Create and manage player profiles with both TrueSkill and ELO ratings
- Match Tracking: Record 2v2 matches with automatic TrueSkill and ELO calculations
- Live Rankings: Real-time player rankings based on TrueSkill ratings (with ELO as secondary)
- Match History: Detailed match records with scores and rating changes
- Admin Dashboard: Complete administrative interface for league management
- Token-based Registration: Secure user registration system with invitation tokens
- Rating Recomputation: Admin tool to recalculate all ratings from scratch
- Dual Rating Systems: TrueSkill for accuracy, ELO for familiarity
-
Clone and Setup:
git clone https://github.com/LucaLumetti/ZipLeague.git cd ZipLeague cp .env.example .env -
Run with Docker:
docker compose up -d --build docker compose exec web python manage.py migrate docker compose exec web python manage.py createsuperuser
- Backend: Django 5.2, PostgreSQL
- Frontend: Bootstrap 5, Django Templates
- Deployment: Docker, Gunicorn, Whitenoise
- Authentication: Django Auth with custom registration tokens
MIT License - see LICENSE file for details.
See CONTRIBUTING.md for development setup, coding standards, and contribution guidelines.