A task tracking API built with Django REST Framework, featuring JWT authentication, comment support, search & filtering, and real-time notifications via Telegram Bot. Ideal for managing personal or team to-dos with programmatic access.
- User authentication with JWT (
djangorestframework-simplejwt) - Task management API (CRUD operations)
- Comment system for tasks
- Filtering & Searching (by status, priority)
- Telegram bot integration for task notifications
- PostgreSQL (or SQLite for development)
- Clone the Repository
git clone https://github.com/yourusername/task-manager.git
cd task-manager- Create & Activate Virtual Environment
python -m venv venv
source venv/bin/activate # Mac/Linux
venv\Scripts\activate # Windows- Install Dependencies
pip install -r requirements.txt- Set Up Environment Variables
Create a
.envfile in the project root and add:
SECRET_KEY=your_secret_key
DEBUG=True
ALLOWED_HOSTS=127.0.0.1
TELEGRAM_BOT_TOKEN=your_bot_token
DATABASE_URL=sqlite:///db.sqlite3- Apply Migrations & Create Superuser
python manage.py migrate
python manage.py createsuperuser- Run the Server
python manage.py runserverAPI will be available at http://127.0.0.1:8000/api/.
- Python 3.10+
- Django 4+
- Django REST Framework
- PostgreSQL or SQLite
- Telegram Bot API
- JWT (djangorestframework-simplejwt)
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/token/ |
Obtain JWT access token |
| POST | /api/auth/token/refresh/ |
Refresh JWT token |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tasks/ |
List all tasks |
| POST | /api/tasks/ |
Create a new task |
| GET | /api/tasks/{id}/ |
Retrieve a specific task |
| PUT | /api/tasks/{id}/ |
Update a task |
| DELETE | /api/tasks/{id}/ |
Delete a task |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tasks/{task_id}/comments/ |
List comments for a task |
| POST | /api/tasks/{task_id}/comments/ |
Add a comment to a task |
python tasks/telegram_bot.py/start→ Register and link Telegram/tasks→ View tasks/newtask <task>→ Create a task/deletetask <task_id>→ Delete a task/updatetask <task_id> <status>→ Update task status
Valeriy Abramov
- GitHub: @abramov-v
- email: abramov.valeriy@hotmail.com