Overview
This guide will help you set up PROPPR locally and run your first alert bot. You’ll clone the repository, configure credentials, and start monitoring betting markets in under 10 minutes.PROPPR requires Python 3.11+, MongoDB, and valid API credentials for Telegram and odds providers.
Prerequisites
Before you begin, ensure you have:- Python 3.11 or higher installed
- MongoDB running locally or Atlas connection string
- Git for cloning the repository
- Telegram Bot Token (get from @BotFather)
- Odds API Key (from odds-api.io)
Installation Steps
Create Virtual Environment
Set up an isolated Python environment for the project:
The virtual environment keeps PROPPR’s dependencies separate from your system Python packages.
Configure Credentials
Create a The credentials module (
.env file in the PROPPR root directory with your credentials:.env
config/credentials.py) automatically loads these environment variables:config/credentials.py
Running Different Bots
PROPPR includes 6 specialized alert bots. Run any of them using Python’s-m flag:
Testing Your Bot
Once your bot is running, test it by sending commands in Telegram:Send /start Command
Initialize the bot and register your user:The bot should respond with a welcome message and menu options.
Configure Settings
Use Configure:
/settings to customize your alert preferences:- Minimum odds (e.g., 1.5+)
- Maximum odds (e.g., 10.0)
- Leagues to monitor
- Markets to track (goals, assists, etc.)
- Stake size for Kelly calculations
Data Pipeline Services
For bots to send alerts, data services must be running to populate MongoDB:WebSocket Updater
Real-time odds updates via WebSocket connections:WebsocketUpdater/runners/run_websocket_updater.py:28:
Unified API Poller
Polls odds APIs at regular intervals:Stats Update Pipeline
Fetches player/team statistics from FotMob:In development, you typically run 1-2 bots + 1 data service. In production, all services run as systemd units.
Common Issues
ModuleNotFoundError: No module named 'PROPPR'
ModuleNotFoundError: No module named 'PROPPR'
Make sure you’re running from the parent directory:The import path expects the
PROPPR directory to be in your current working directory or sys.path.CredentialError: Required environment variable not set
CredentialError: Required environment variable not set
Your
.env file is missing required credentials. Check that:.envfile exists in PROPPR root directory- All required variables are set (see Step 4 above)
- No extra quotes around values:
MONGO_URI=mongodb://...notMONGO_URI="mongodb://..."
Bot starts but no alerts appear
Bot starts but no alerts appear
The bot depends on data services to populate MongoDB:
-
Check MongoDB: Verify collections exist and have recent data
- Run data services: Start WebsocketUpdater or UnifiedAPIPoller to populate data
-
Check settings: Use
/settingsin Telegram to verify your preferences allow alerts
Rate limiting errors from Odds API
Rate limiting errors from Odds API
The free tier of odds-api.io has strict rate limits:Consider upgrading your API plan or using multiple backup keys.
- 500 requests/day for free tier
- 5000 requests/hour for paid tier
SharedServices/tracking/request_tracker.py
Next Steps
Architecture
Learn how PROPPR’s microservices work together
Development
Contributing guide and code structure
Deployment
Deploy to production with systemd services
API Reference
Complete API documentation for all modules