A simple and practical support ticketing system built with Django REST Framework and Telegram Bot.
Users can create tickets via the Telegram bot, and admins can respond either through the Django admin panel or directly in Telegram.
- User registration and login (Token Authentication)
- Profile management and Telegram ID binding
- Ticket submission and response
- Admin response via bot or web
- Complete API documentation with Swagger (drf-spectacular)
- Modular structure (separate apps: accounts, ticket, bot)
- Logging for debugging and monitoring
- Python 3.10+
- Django 5+
- Django REST Framework
- drf-spectacular (Swagger / OpenAPI docs)
- python-telegram-bot
- SQLite3 (for development) / PostgreSQL (for production)
# 1. Clone the project
git clone https://github.com/Satrap18/Ticketly.git
cd Ticketlypython -m venv venv
source venv/bin/activate # Linux
venv\Scripts\activate # Windowspip install -r requirements.txtpython manage.py migratepython manage.py createsuperuserpython manage.py runserverFollow these steps to configure your Telegram bot:
-
Create a new bot via BotFather
- Send
/newbotand follow instructions. - Copy the generated bot token.
- Send
-
Save your bot token and admin ID in a
.envfile at the root of the project:
TOKEN=YOUR_BOT_TOKEN_HERE
ADMIN_ID=YOUR_TELEGRAM_USER_ID📖 API Documentation
After running the server, visit:
Swagger UI → http://127.0.0.1:8000/api/docs/
OpenAPI Schema → http://127.0.0.1:8000/api/schema/
🎥 Demo
Here's a quick overview of how the app works:
📸 Screenshots
- User authentication & registration
- Ticket creation via Telegram
- Write unit and API tests
- Add rate limiting to prevent spam
- Support ticket categories and priorities
- Dockerize the project
- Add CI/CD (GitHub Actions)
👤 Author
MohammadReza Karimi
This project is licensed under the MIT License - see the LICENSE file for details.






