Gaming Telegram bot: slots, dice, bets, profiles, and statistics
Main functionality:
- User registration system with age verification (18+).
- Gaming mechanics based on Telegram Dice API (slots, dice, football, basketball, darts, bowling, heads/tails).
- Betting system and user internal balance.
- User profile displaying statistics (games played, wins, biggest win, total winnings, ranking).
- Leaderboard based on winnings.
- Admin panel with the ability to credit balance to users by ID.
- Full operation with the database (creating, updating records, saving statistics).
Technologies and tools:
- Python 3.10+
- Aiogram 3.x (asynchronous framework for Telegram bots)
- FSM (Finite State Machine) for processing gaming scenarios
- SQLite (local database)
- SQLAlchemy (ORM for working with the database)
- dotenv for managing configuration and tokens
Architecture:
- Modular structure: separate handlers for bot sections (start, games, profile, admin).
- Separation of logic by modules (config, db, models, handlers).
- Use of asynchronous approach and context managers for working with database sessions.
- User registration system with age verification (18+).
- Gaming mechanics based on Telegram Dice API (slots, dice, football, basketball, darts, bowling, heads/tails).
- Betting system and user internal balance.
- User profile displaying statistics (games played, wins, biggest win, total winnings, ranking).
- Leaderboard based on winnings.
- Admin panel with the ability to credit balance to users by ID.
- Full operation with the database (creating, updating records, saving statistics).
Technologies and tools:
- Python 3.10+
- Aiogram 3.x (asynchronous framework for Telegram bots)
- FSM (Finite State Machine) for processing gaming scenarios
- SQLite (local database)
- SQLAlchemy (ORM for working with the database)
- dotenv for managing configuration and tokens
Architecture:
- Modular structure: separate handlers for bot sections (start, games, profile, admin).
- Separation of logic by modules (config, db, models, handlers).
- Use of asynchronous approach and context managers for working with database sessions.