This is RESTful API for a simple task management app. It is built using Django and Django Rest Framework. The API allows users to create, read, update and delete tasks. It also allows users to put tags on tasks and filter tasks by tags and much more.
- Create, Read, Update and Delete tasks
- Add tags to tasks
- Filter tasks by tags
- Search tasks by title
- Sort tasks by title, due date and priority
- User authentication
- User registration
- User login
- User logout
- User profile
- User password reset
- User password change
- User email verification
- User email change
- User email resend verification
- Python
- Django
- Django Rest Framework
- PostgreSQL
- Gunicorn
- Celery
- Swagger
- JWT
- Celery Beat
- Clone the repository
git clone https://github.com/Mohab96/todo-app.git
- Change to the project directory
cd task-manager
- Create a virtual environment
python -m venv venv
- Activate the virtual environment
source venv/bin/activate
- Install the project dependencies
pip install -r requirements.txt
- Create a
.env
file in the root of the project and add the following environment variables
SECRET_KEY=your_secret_key
DEBUG=True
ALLOWED_HOSTS=localhost
DATABASE_URL=postgres://your_db_user:your_db_password@localhost:5432/your_db_name
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_HOST_USER=your_email
EMAIL_HOST_PASSWORD=your_email_password
EMAIL_USE_TLS=True
EMAIL_USE_SSL=False
- Run the migrations
python manage.py migrate
- Create a superuser
python manage.py createsuperuser
- Run the development server
python manage.py runserver
- Open your browser and navigate to
http://localhost:8000/api/
The API documentation is available at http://localhost:8000/swagger/