ุจูุช ุชูููุฌุฑุงู ุงุญุชุฑุงูู ูุฅุฏุงุฑุฉ ู ุนุณูุฑุงุช ุงูุฏุฑุงุณุฉ ุงูุฌู ุงุนูุฉ
StudyCamp ูู ุจูุช ุชูููุฌุฑุงู ู ุชุทูุฑ ูุฅูุดุงุก ูุฅุฏุงุฑุฉ ู ุนุณูุฑุงุช ุฏุฑุงุณูุฉ ุชูุงุนููุฉ ูู ุงูู ุฌู ูุนุงุช. ูุชู ูุฒ ุงูุจูุช ุจูุงุฌูุฉ ุนุฑุจูุฉ ุฌู ููุฉุ ููุญุฉ ุชุญูู ุญูุฉ ุชูุญุฏุซ ุชููุงุฆูุงูุ ูุฑูุงุจุท ุฏุนูุฉ ูุฑูุฏุฉ ููู ู ุนุณูุฑ.
- ๐ฏ ู ุนุงูุฌ ุฅูุดุงุก ุณูู - 3 ุฎุทูุงุช ููุท: ุงูู ุฏุฉ โ ุงูู ุงุฏุฉ โ ุงูุชุฃููุฏ
- ๐ ููุญุฉ ุชุญูู ุญูุฉ - ุชุญุฏูุซ ุชููุงุฆู ูู 10 ุซูุงูู
- ๐คฒ ุฏุนุงุก ุงูู ุฐุงูุฑุฉ - ูุธูุฑ ูู ูู ููุญุฉ ุชุญูู
- โฑ๏ธ ุนุฏุงุฏ ุชูุงุฒูู - ูุนุฑุถ ุงูููุช ุงูู ุชุจูู ุจุฏูุฉ
- ๐ ุฑูุงุจุท ุฏุนูุฉ ูุฑูุฏุฉ - ููู ู ุนุณูุฑ ุฑุงุจุท ุฎุงุต ููู ุดุงุฑูุฉ
- ๐ฅ ุชุชุจุน ุงูู ุดุงุฑููู - ุฅุญุตุงุฆูุงุช ููู ู ุดุงุฑู
- ๐ฑ ู ุชุงุจุนุฉ ุฎุงุตุฉ - ุฑุณุงูุฉ ุฎุงุตุฉ ููู ู ุณุชุฎุฏู
StudyCamp is a production-grade Telegram bot for running interactive study camps in group chats. Features a beautiful Arabic UI, live auto-updating dashboard, and unique invite links per camp.
- ๐ฏ Easy Setup Wizard - Just 3 steps: Duration โ Subject โ Confirm
- ๐ Live Dashboard - Auto-updates every 10 seconds
- ๐คฒ Study Dua - Islamic prayer displayed on dashboard
- โฑ๏ธ Countdown Timer - Precise remaining time display
- ๐ Unique Invite Links - Each camp has its own shareable link
- ๐ฅ Participant Tracking - Stats for each participant
- ๐ฑ Private Follow - Personal tracking message in DM
| Component | Technology |
|---|---|
| Language | Python 3.11+ |
| Bot Framework | python-telegram-bot v22+ (async) |
| Database | SQLite3 + SQLAlchemy 2.0 (aiosqlite) |
| Scheduling | PTB JobQueue |
| Timezone | Africa/Cairo |
| UI Language | Arabic-first |
study-camps/
โโโ app/
โ โโโ __init__.py
โ โโโ main.py # Entry point
โ โโโ config.py # Configuration
โ โโโ db.py # Database setup
โ โโโ models.py # SQLAlchemy models
โ โโโ handlers/
โ โ โโโ __init__.py
โ โ โโโ camp_wizard.py # Camp creation wizard
โ โ โโโ dashboard.py # Live dashboard
โ โ โโโ admin.py # Admin controls
โ โ โโโ tasks.py # Task management
โ โ โโโ stats.py # Stats & reports
โ โโโ services/
โ โ โโโ __init__.py
โ โ โโโ camp_service.py # Camp management
โ โ โโโ session_service.py # Study sessions
โ โ โโโ scheduler_service.py # Job scheduling
โ โ โโโ xp_service.py # XP system
โ โโโ utils/
โ โโโ __init__.py
โ โโโ markdown.py # MarkdownV2 helpers
โ โโโ rate_limit.py # Rate limiting
โ โโโ logging.py # Structured logging
โโโ requirements.txt # Python dependencies
โโโ .env.example # Environment template
โโโ .gitignore # Git ignore rules
โโโ README.md # This file
- Python 3.11 or higher
- Telegram Bot Token (from @BotFather)
- Clone the repository
git clone https://github.com/Mavdii/study-camps.git
cd study-camps- Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/macOS
# or
venv\Scripts\activate # Windows- Install dependencies
pip install -r requirements.txt- Configure environment
cp .env.example .env
# Edit .env and add your BOT_TOKEN- Run the bot
python -m app.main- Upload files to your VPS
scp -r study-camps/ user@your-vps:/opt/- Create systemd service
sudo nano /etc/systemd/system/studycamp.service[Unit]
Description=StudyCamp Telegram Bot
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/study-camps
Environment=BOT_TOKEN=your_bot_token_here
ExecStart=/opt/study-camps/venv/bin/python -m app.main
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target- Enable and start service
sudo systemctl daemon-reload
sudo systemctl enable studycamp
sudo systemctl start studycamp- Check status
sudo systemctl status studycamp
sudo journalctl -u studycamp -f # View logsFROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "-m", "app.main"]docker build -t studycamp .
docker run -d --name studycamp -e BOT_TOKEN=your_token studycamp| Command | Description | Scope |
|---|---|---|
/start |
Welcome message + help | All |
/help |
Help information | All |
/camp |
Start new camp wizard | Groups only |
/camps |
Show active camps | Groups only |
/stop |
Cancel camps (Admin) | Groups only |
/me |
Personal stats | All |
/top |
Leaderboard | All |
/privacy |
Privacy policy | All |
/delete_me |
Delete user data | All |
| Table | Description |
|---|---|
chats |
Group settings and preferences |
camps |
Study camp instances |
camp_members |
Participants in each camp |
sessions |
Individual study sessions |
tasks |
Camp tasks and assignments |
wizard_states |
Wizard flow state management |
| Variable | Required | Description |
|---|---|---|
BOT_TOKEN |
Yes | Telegram bot token from @BotFather |
DATABASE_URL |
No | SQLite path (default: sqlite+aiosqlite:///./studycamp.db) |
TZ |
No | Timezone (default: Africa/Cairo) |
The live dashboard displays:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐คฒ ุฏุนุงุก ุงูู
ุฐุงูุฑุฉ โ
โ "ุงููููููู
ูู ุงููููุนูููู ุจูู
ูุง โ
โ ุนููููู
ูุชูููู ููุนููููู
ูููู ู
ูุง โ
โ ููููููุนูููู ููุฒูุฏูููู ุนูููู
ูุง" โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ ู
ุนููู
ุงุช ุงูู
ุนุณูุฑ โ
โ โฑ๏ธ ุงูููุช ุงูู
ุชุจูู: 01:45:30 โ
โ ๐
ุงูู
ุฏุฉ: ุณุงุนุชูู โ
โ ๐ฅ ุงูู
ุดุงุฑููู: 5 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ ุฑุงุจุท ุงูุฏุนูุฉ โ
โ t.me/bot?start=join_CODE โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [ุงูุถู
ูููุงู
ุจ] [ู
ุชุงุจุนุฉ ุฎุงุตุฉ] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your 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.
If you encounter any issues or have questions, please open an issue on GitHub.
Made with ๐ & โ by Umar for students worldwide
Empowering minds, one study session at a time โจ