{"id":28075179,"url":"https://github.com/tareksaleh99/task-management-api","last_synced_at":"2026-04-29T12:33:03.716Z","repository":{"id":292705309,"uuid":"981679019","full_name":"TarekSaleh99/task-management-api","owner":"TarekSaleh99","description":"A robust and scalable Task Management API built with Django and Django REST Framework that enables efficient project and task management with real-time notifications.","archived":false,"fork":false,"pushed_at":"2025-05-11T17:00:21.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-13T00:55:08.427Z","etag":null,"topics":["api","celery","django","django-rest-framework","docker","documentation","email-notifications","jwt-authentication","project-management","redis","task-management"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TarekSaleh99.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-11T16:50:02.000Z","updated_at":"2025-05-11T17:12:05.000Z","dependencies_parsed_at":"2025-05-11T18:18:48.985Z","dependency_job_id":"6c52fe61-74bb-42d0-b48f-2a31015c4084","html_url":"https://github.com/TarekSaleh99/task-management-api","commit_stats":null,"previous_names":["tareksaleh99/task-anagement-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TarekSaleh99%2Ftask-management-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TarekSaleh99%2Ftask-management-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TarekSaleh99%2Ftask-management-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TarekSaleh99%2Ftask-management-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TarekSaleh99","download_url":"https://codeload.github.com/TarekSaleh99/task-management-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253850891,"owners_count":21973672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","celery","django","django-rest-framework","docker","documentation","email-notifications","jwt-authentication","project-management","redis","task-management"],"created_at":"2025-05-13T00:55:09.087Z","updated_at":"2026-04-29T12:33:03.672Z","avatar_url":"https://github.com/TarekSaleh99.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Simple Task Management API\n\nThis is a backend API for a task management application built using Django and Django Rest Framework (DRF). The project allows users to create and manage tasks and projects, assign members to projects, and track task statuses. It also includes user authentication and notifications through emails when tasks are assigned or updated.\n\n## Features\n\n- User authentication (Sign up, login)\n- Project management (Create, update, delete projects)\n- Task management (Create, update, delete tasks)\n- Assigning members to projects and tasks\n- Email notifications for task assignments and updates\n- Celery for asynchronous task processing\n\n## Technologies\n\n- Django\n- Django Rest Framework (DRF)\n- Celery\n- Redis\n- Docker\n- PostgreSQL\n\n## Prerequisites\n\nBefore setting up the project, ensure you have the following installed:\n\n- **Docker**: To run the project in containers.\n- **Docker Compose**: For orchestrating multi-container Docker applications.\n\n## Setup Instructions\n\nFollow these steps to run the Task Management API on your local machine.\n\n### 1. Clone the Repository\n\nClone this repository to your local machine using Git:\n\n```bash\ngit clone https://github.com/TarekSaleh99/task-management-api.git\ncd task-management-api\n```\n\n### 2. Set up Docker Containers\n\n1. **Build and run the containers**:\n\n   Run the following command in your terminal:\n\n   ```bash\n   docker-compose up --build\n   ```\n\n   This command will:\n   - Build the Docker images\n   - Start the containers for the web service, Redis, Celery worker, and Celery beat.\n\n2. **Run migrations**:\n\n   Open a new terminal window and run the following command to apply the migrations:\n\n   ```bash\n   docker-compose exec web python manage.py migrate\n   ```\n\n3. **Create a superuser**:\n\n   To create an admin user, run the following command:\n\n   ```bash\n   docker-compose exec web python manage.py createsuperuser\n   ```\n\n   Follow the prompts to create your superuser.\n\n### 3. Run the API\n\nOnce your containers are up and running, the API will be accessible at:\n\n- **API**: `http://localhost:8000`\n- **Admin Panel**: `http://localhost:8000/admin`\n\n### 4. Using the API\n\nThe Task Management API is organized into several key endpoints:\n\n- **API-Documentation:**\n  - `http://127.0.0.1:8000/api/docs/`\n  \n- **Notifications**: Notifications are sent via email when a task is assigned or updated.\n\n\n## Docker Configuration\n\n### `docker-compose.yml`\n\nThis file defines the services required to run the project:\n\n- **web**: The main web service, runs the Django application using `gunicorn`.\n- **redis**: A Redis service, used as a message broker for Celery.\n- **celery_worker**: A Celery worker, processes asynchronous tasks.\n- **celery_beat**: A Celery Beat service, schedules periodic tasks.\n\n### `Dockerfile`\n\nThis file specifies how to build the Docker image for the web service:\n\n- It uses the official Python 3.11 image.\n- Installs dependencies from `requirements.txt`.\n- Copies the project files into the container.\n- Runs the Celery worker or beat based on the command given.\n\n### 6. Environment Variables\n\nEnsure you have the following environment variables set up in your `.env` file or directly in your Docker configuration:\n\n```env\n# Email settings for task notifications\nEMAIL_HOST_USER=your_email@example.com\nEMAIL_HOST_PASSWORD=your_email_password\nEMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend\nEMAIL_HOST=smtp.example.com\nEMAIL_PORT=587\n\n# Celery and Redis configuration\nCELERY_BROKER_URL=redis://redis:6379/0\nCELERY_RESULT_BACKEND=redis://redis:6379/0\n```\n\nYou can modify these values based on your email service and other configurations.\n\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftareksaleh99%2Ftask-management-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftareksaleh99%2Ftask-management-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftareksaleh99%2Ftask-management-api/lists"}