The Task Management API is a robust backend service that helps users organize and monitor their tasks with comprehensive management and tracking features. This API is designed for efficiency, providing essential task operations along with advanced progress tracking, filtering, and sorting capabilities. Built with Django and Django REST Framework (DRF), the API leverages PostgreSQL for data storage and token-based authentication for secure access.
- Features
- Tech Stack
- Prerequisites
- Installation
- Environment Setup
- Usage
- Documentation
- Contributing
- License
- Acknowledgments
- User Authentication: Token-based authentication for secure access.
- Task Management: Create, update, delete, and list tasks.
- Filtering & Sorting: Filter tasks by status, priority, and category; sort by due date or priority.
- Progress Tracking: View statistics like total tasks, completed tasks, overdue tasks, and completion percentage.
- Backend: Django & Django REST Framework
- Database: PostgreSQL
- Authentication: Token-based (DRF)
- Environment Management: Python Decouple
Ensure the following are installed:
- Python 3.9+
- PostgreSQL
- Clone the repository:
git clone https://github.com/Samuel-Tefera/task_management_api.git
- Navigate to the project directory:
cd task_management_api
- Install dependencies:
pip install -r requirements.txt
- Set up the
.env
file: Refer to.env.example
for the required variables. - Apply migrations:
python manage.py migrate
- Run the development server:
python manage.py runserver
Create a .env
file in the project root with the following variables:
SECRET_KEY=your_secret_key
DEBUG=True
DB_NAME=your_db_name
DB_PASSWORD=your_db_password
DB_HOST=locahost
DB_PORT=5432
- Start the server:
python manage.py runserver
- Access the API at
http://127.0.0.1:8000/
.
Detailed API documentation, including endpoints and usage, is available in the API Documentation.
Contributions are welcome! To contribute:
- Fork the repository.
- Create a feature branch (
git checkout -b feature-name
). - Commit your changes (
git commit -m 'Add feature'
). - Push to your branch (
git push origin feature-name
). - Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
Special thanks to:
- Django and Django REST Framework communities
- OpenAI for technical guidance