{"id":15089328,"url":"https://github.com/ak4m410x01/todo_api","last_synced_at":"2026-02-18T03:02:10.216Z","repository":{"id":209369133,"uuid":"723837523","full_name":"ak4m410x01/TODO_API","owner":"ak4m410x01","description":" Created a Django Rest Framework API with PostgreSQL for seamless user registration and secure authentication. Allows task creation with Docker deployment, enabling users to mark tasks as complete.","archived":false,"fork":false,"pushed_at":"2024-04-22T15:14:28.000Z","size":303,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-22T12:49:21.505Z","etag":null,"topics":["api","auth","authentication","authorization","backend-api","django","django-rest-framework","docker","docker-compose","json","permissions","postgresql","postman","python3","rest-api","restful-api","todo","token","yml"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ak4m410x01.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}},"created_at":"2023-11-26T22:12:09.000Z","updated_at":"2024-05-11T17:48:51.000Z","dependencies_parsed_at":"2024-05-11T19:41:09.581Z","dependency_job_id":"88649474-7aba-4fd3-9a1f-3fcef7dca4d6","html_url":"https://github.com/ak4m410x01/TODO_API","commit_stats":null,"previous_names":["ak4m410x01/todo_api"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ak4m410x01/TODO_API","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ak4m410x01%2FTODO_API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ak4m410x01%2FTODO_API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ak4m410x01%2FTODO_API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ak4m410x01%2FTODO_API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ak4m410x01","download_url":"https://codeload.github.com/ak4m410x01/TODO_API/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ak4m410x01%2FTODO_API/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29566645,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T00:47:08.760Z","status":"online","status_checked_at":"2026-02-18T02:00:09.468Z","response_time":162,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","auth","authentication","authorization","backend-api","django","django-rest-framework","docker","docker-compose","json","permissions","postgresql","postman","python3","rest-api","restful-api","todo","token","yml"],"created_at":"2024-09-25T08:44:54.398Z","updated_at":"2026-02-18T03:02:10.201Z","avatar_url":"https://github.com/ak4m410x01.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TODO API\n\n## Details\n\n### Key Features:\n\n_Developed a robust TODO API leveraging **Django Rest Framework** and **PostgreSQL**, enabling users to seamlessly register with a unique username and password. Implemented secure authentication through security token features, facilitating secure login processes. The API further supports the creation of tasks with an initial false status, allowing users to mark them as complete upon task completion and then Deploy using **Docker** ._\n\n- **Django Rest Framework:** Implemented RESTful endpoints to facilitate seamless communication between the front and back end, ensuring optimal performance and scalability.\n- **PostgreSQL Database:** Designed and maintained a PostgreSQL database to store and manage TODO tasks efficiently, ensuring data integrity and reliability.\n- **User Authentication:** Implemented secure authentication mechanisms using Tokens to control access to the TODO API, prioritizing data security and privacy.\n\n\u003cdiv align=\"center\"\u003e\n   \u003cimg src=\"./assets/images/cover.png\"\u003e\n\u003c/div\u003e\n\n## ⚙ Tools and Technologies used\n\n1. [Python](https://www.python.org/)\n2. [Django Rest Framework](https://www.django-rest-framework.org/)\n3. [PostgreSQL](https://www.postgresql.org/)\n\n## 🛠 Installation and setup\n\n1. Install Docker [here](https://www.docker.com/get-started/)\n2. Install Git [here](https://git-scm.com/downloads)\n3. Create a working directory:\n\n   ```bash\n   mkdir ~/TODO \u0026\u0026 cd ~/TODO\n   ```\n\n4. Clone the repository\n\n   ```bash\n   git clone https://github.com/ak4m410x01/TODO_API/ .\n   ```\n\n5. Start the application\n\n   ```bash\n    docker-compose up -d\n   ```\n\n6. Access API: http://127.0.0.1:8000/api/\n\n7. Access DB: 127.0.0.1:5432\n\n8. Don't forget .env file with variables\n\n| Variable          | Value                                                                 |\n| ----------------- | --------------------------------------------------------------------- |\n| SECRET_KEY        | \"django-insecure-%2dmqnqj9v2e\u00268yk\\*t=#b+2-=i!45+153*@-g0*=\u0026%1od16z^m\" |\n| DEBUG             | False                                                                 |\n| DATABASE_ENGINE   | \"django.db.backends.postgresql\"                                       |\n| DATABASE_HOST     | \"db\"                                                                  |\n| DATABASE_PORT     | \"5432\"                                                                |\n| DATABASE_NAME     | \"todo\"                                                                |\n| DATABASE_USER     | \"todo\"                                                                |\n| DATABASE_PASSWORD | \"todo\"                                                                |\n| POSTGRES_DB       | \"todo\"                                                                |\n| POSTGRES_USER     | \"todo\"                                                                |\n| POSTGRES_PASSWORD | \"todo\"                                                                |\n\nyou can use this .env file [here](./.env)\n\nnote:\nthese variables are for the lab environment only... don't use these in xxx production environments xxx\n\n---\n\n## Todo Database Schema\n\n#### 1. users\n\n    +------------+---------+----------------------+\n    | Field      | Type    | Use                  |\n    | ---------- | ------- | -------------------- |\n    | id         | INTEGER | To Store primary key |\n    | username   | VARCHAR | To store username    |\n    | password   | VARCHAR | To store password    |\n    | first_name | VARCHAR | To store first name  |\n    | last_name  | VARCHAR | To store last name   |\n    | email      | VARCHAR | To store email       |\n    +------------+---------+----------------------+\n\n\u003cbr /\u003e\n\n#### 2. tasks\n\n    +-------------+-------------+-----------------------+\n    | Field       | Type        | Use                   |\n    | ----------- | ----------- | --------------------- |\n    | id          | INTEGER     | To Store primary key  |\n    | title       | VARCHAR     | To Store title        |\n    | description | VARCHAR     | To Store description  |\n    | start_time  | TIMESTAMP   | to store start time   |\n    | end_time    | TIMESTAMP   | to store end time     |\n    | done        | BOOL        | to store state        |\n    | created_at  | TIMESTAMP   | to store created time |\n    | updated_at  | TIMESTAMP   | to store created time |\n    | user        | Foreign key | to store user         |\n    +-------------+-------------+-----------------------+\n\n---\n\n## API Endpoints\n\n- base_url: http://127.0.0.1:8000/api/\n\n  - Users:\n\n        +--------------------------------------------+---------------------+\n        | Endpoints                                  | Use                 |\n        | ------------------------------------------ | ------------------- |\n        | POST `{{base_url}}/api/users/`             | Rgister New User    |\n        | GET `{{base_url}}/api/users/\u003cint:id\u003e/`     | Get User Details    |\n        | PUT `{{base_url}}/api/users/\u003cint:id\u003e/`     | Update User Details |\n        | DELETE `{{base_url}}/api/users/\u003cint:id\u003e/`  | Delete Task         |\n        +--------------------------------------------+---------------------+\n\n  - Tasks\n\n        +--------------------------------------------+---------------------+\n        | Endpoints                                  | Use                 |\n        | ------------------------------------------ | ------------------- |\n        | GET `{{base_url}}/api/tasks/`              | List All Tasks      |\n        | POST `{{base_url}}/api/tasks/`             | Create New Task     |\n        | GET `{{base_url}}/api/tasks/\u003cint:id\u003e/`     | Get Task Details    |\n        | PUT `{{base_url}}/api/tasks/\u003cint:id\u003e/`     | Update Task Details |\n        | DELETE `{{base_url}}/api/tasks/\u003cint:id\u003e/`  | Delete Task         |\n        +--------------------------------------------+---------------------+\n\n  - Token\n\n        +--------------------------------------------+----------------------+\n        | Endpoints                                  | Use                  |\n        | ------------------------------------------ | -------------------- |\n        | GET `{{base_url}}/users/token/`            | Get Token            |\n        | POST `{{base_url}}/users/token/`           | Regenerate New Token |\n        +--------------------------------------------+----------------------+\n\n---\n\n## PIP Packages\n\n    +---------------------+---------+-------------------+\n    | Name                | Version | Use               |\n    | ------------------- | ------- | ----------------- |\n    | Python              | 3.11.6  | Programming Lang  |\n    | Django              | 5.0.0   | Django Framework  |\n    | djangorestframework | 3.14.0  | Restful Framework |\n    | psycopg2-binary     | 2.9.9   | PostgreSQL DB lib |\n    | python-dotenv       | 1.0.0   | To use .env file  |\n    +---------------------+---------+-------------------+\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fak4m410x01%2Ftodo_api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fak4m410x01%2Ftodo_api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fak4m410x01%2Ftodo_api/lists"}