A simple and functional ToDo List API built with Django REST Framework.
This project allows users to create, read, update, and delete their personal todo items.
- Full CRUD functionality for todo items
- Both Function-Based Views and Class-Based Views are implemented
- Usage of:
mixins
generics
viewsets
- Multiple authentication methods:
- Simple authentication
- Token-based authentication
- JWT (JSON Web Token) authentication
- Integrated with Swagger for better and standardized API documentation
The project supports three authentication mechanisms:
- Basic Authentication — suitable for testing purposes
- Token Authentication — provides a token upon login
- JWT Authentication — recommended for production and modern frontend integrations
Swagger UI is included for interactive API exploration and easier frontend-backend collaboration.
You can access the Swagger docs by navigating to:
http://127.0.0.1:8000/api/schema/swagger/
- Python
- Django
- Django REST Framework
- drf-yasg (for Swagger)
- djangorestframework-simplejwt
- Clone the repository:
git clone https://github.com/AliMRBS/todo.git cd todo
- Create and activate a virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies
pip install -r requirements.txt
- Run migrations
python manage.py migrate
- Start the development server
python manage.py runserver