A Discord bot designed to manage Zwift racing communities, providing registration, club management, and team organization features.
- Registration System
- Secure rider registration with Zwift ID verification
- Terms of Service and Privacy Policy acceptance
- Duplicate registration prevention
- Profile linking with ZwiftPower and ZwiftRacing
- Create and manage cycling clubs
- Link clubs with Zwift Power teams
- Manage club administrators
- Active/Inactive status tracking
- Team organization within clubs
- Create and organize teams within clubs
- Team administrator management
- Active status tracking
- Discord API: discord.py (pycord)
- Database: MongoDB with Beanie ODM
- Logging: Logfire
- Configuration: Environment variables via python-dotenv
- Python 3.8+
- MongoDB
- Discord Bot Token
- Zwift Power API access (optional)
- Clone the repository:
git clone https://github.com/vincentdavis/Virtual_Worlds_Racing_discord.git
cd Virtual_Worlds_Racing_discord
- Install dependencies:
uv sync --frozen
- Create a
.env
file:
cp .env.example .env
uv run main.py
/register
- Register as a new rider/lookup <user>
- Look up rider information
/create_club <name> [zp_club_id]
- Create a new club/add_team <club_name> <team_name>
- Add a team to a club/remove_team <club_name> <team_name>
- Remove a team from a club/add_admin <club_name> <admin_discord_id>
- Add an admin to a club/remove_admin <club_name> <admin_discord_id>
- Remove an admin from a club/mark_inactive <club_name>
- Mark a club as inactive/mark_active <club_name>
- Mark a club as active
- Discord ID verification
- Terms of Service acceptance required
- Duplicate registration prevention
- Admin-only actions for sensitive operations
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Discord.py community
- Zwift Power API
- MongoDB team
- All contributors and testers
For support, please join our Discord server or open an issue in the GitHub repository.
Made with ❤️ for the Zwift racing community