{"id":25857960,"url":"https://github.com/frnn4268/kanban_api_pfp-gsi","last_synced_at":"2026-04-30T22:37:11.697Z","repository":{"id":279821206,"uuid":"940095468","full_name":"Frnn4268/kanban_api_PFP-gsi","owner":"Frnn4268","description":"This project is a Kanban Task Management API built with FastAPI, SQLAlchemy, and PostgreSQL. It provides CRUD operations for managing tasks and follows a structured architecture to ensure scalability and maintainability.","archived":false,"fork":false,"pushed_at":"2025-02-28T14:59:14.000Z","size":76,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-04T21:31:39.078Z","etag":null,"topics":["docker-compose","dockerfile","fastapi","fastapi-sqlalchemy","makefile","poetry","postgresql","postman-collection","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Frnn4268.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-02-27T15:56:01.000Z","updated_at":"2025-02-28T14:59:18.000Z","dependencies_parsed_at":"2025-02-27T22:42:45.228Z","dependency_job_id":"66c9ca57-b214-48ce-ab37-206c4b533f84","html_url":"https://github.com/Frnn4268/kanban_api_PFP-gsi","commit_stats":null,"previous_names":["frnn4268/kanban_api_pfp-gsi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Frnn4268/kanban_api_PFP-gsi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frnn4268%2Fkanban_api_PFP-gsi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frnn4268%2Fkanban_api_PFP-gsi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frnn4268%2Fkanban_api_PFP-gsi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frnn4268%2Fkanban_api_PFP-gsi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Frnn4268","download_url":"https://codeload.github.com/Frnn4268/kanban_api_PFP-gsi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Frnn4268%2Fkanban_api_PFP-gsi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32479448,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["docker-compose","dockerfile","fastapi","fastapi-sqlalchemy","makefile","poetry","postgresql","postman-collection","python"],"created_at":"2025-03-01T19:18:44.296Z","updated_at":"2026-04-30T22:37:06.682Z","avatar_url":"https://github.com/Frnn4268.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kanban API - GSI\r\n\r\n## Overview\r\n\r\nThis project is a Task Management API built with FastAPI, SQLAlchemy, and PostgreSQL. It provides CRUD operations for managing tasks and follows a structured architecture to ensure scalability and maintainability.\r\n\r\n## Features\r\n\r\n- Create, read, update, and delete (CRUD) tasks.\r\n\r\n- Database schema and seed data included.\r\n\r\n- Containerized deployment using Docker Compose.\r\n\r\n- Preconfigured Makefile for easier command execution.\r\n\r\n- Postman collection for testing API endpoints.\r\n\r\n## Directory Structure\r\n\r\n```plaintext\r\n├── app\r\n│   ├── crud\r\n│   │   └── crud.py           # CRUD operations for tasks\r\n│   ├── database\r\n│   │   ├── database.py       # Database connection\r\n│   │   └── schemas.py        # Pydantic models for request validation\r\n│   ├── main.py               # FastAPI application entry point\r\n│   ├── models\r\n│   │   └── models.py         # SQLAlchemy database models\r\n│   ├── __pycache__\r\n│   └── routes\r\n│       └── tasks.py          # API routes for task management\r\n├── db\r\n│   ├── schema.sql            # Database schema\r\n│   └── seed-data.sql         # Initial seed data for testing\r\n├── docker-compose.yml        # Docker Compose configuration\r\n├── Dockerfile                # Docker image definition\r\n├── entrypoint.sh             # Script to initialize the application\r\n├── Makefile                  # Makefile for common commands\r\n├── poetry.lock               # Poetry dependencies lock file\r\n├── postman_collection.json   # Postman collection for API testing\r\n├── pyproject.toml            # Project dependencies and configuration\r\n└── README.md                 # Project documentation\r\n```\r\n\r\n## Services\r\n\r\nThis project consists of the following services:\r\n\r\n| Service  | Description  | Port  |\r\n| ------------ | ------------ | ------------ |\r\n| FastAPI | Main application handling API requests  | 8000  |\r\n| PostgreSQL  | Database service storing task data  | 5432  |\r\n\r\n## Installation \u0026 Setup\r\n\r\n### Prerequisites\r\n\r\nEnsure you have the following installed:\r\n\r\n- Docker \u0026 Docker Compose\r\n- Make (optional, for simplified commands)\r\n\r\n### Running the Application with Docker Compose\r\n\r\n1. Clone the repository:\r\n\r\n\t```bash\r\n\tgit clone https://github.com/Frnn4268/kanban_api_PFP-gsi\r\n\t\t \r\n\tcd kanban_api_PFP-gsi\r\n\t```\r\n\r\n2. Start the application:\r\n\r\n\t```bash\r\n\tdocker-compose up --build\r\n\t```\r\n\tFor other hand\r\n\t```bash\r\n\tdocker-compose up --build -d\r\n\t```\r\n\r\n\t#### When to use:\r\n\r\n\t\u003e - Use docker-compose up --build if you want to see logs in the terminal and ensure the containers are running.\r\n\t\u003e -  Use docker-compose up --build -d if you prefer the containers to run in the background without keeping the terminal session open for logs.\r\n\r\n3. The API will be available at:\r\n\r\n\t```bash\r\n\thttp://localhost:8000\r\n\t```\r\n\r\n4. Stop the application:\r\n\r\n\t```bash\r\n\tdocker-compose down\r\n\t```\r\n\r\n### Running the Application with Makefile\r\n\r\nTo run the application using the ***Makefile***, you can use the following commands:\r\n\r\n- Start PostgreSQL:\r\n\r\n\t```bash\r\n\tmake run-postgres\r\n\t```\r\n\t\r\n\tThis will start a PostgreSQL container with a persistent volume.\r\n\r\n- Run the FastAPI application locally:\r\n\r\n\t```bash\r\n\tmake run-api-fastapi\r\n\t```\r\n\t\r\n\tThis runs the FastAPI application using uvicorn.\r\n\r\n- Build the Docker Compose services:\r\n\r\n\t```bash\r\n\tmake compose-build\r\n\t```\r\n\t\r\n\tThis builds the images defined in docker-compose.yml.\r\n\r\n- Start the entire application (recommended):\r\n\r\n\t```bash\r\n\tmake compose-up-build\r\n\t```\r\n\t\r\n\t**Use this command to bring up all services, ensuring everything is built correctly.** It will start the database, initialize it with the necessary schema and seed data, and then launch the FastAPI backend.\r\n\r\n- Stop all services:\r\n\r\n\t```bash\r\n\tmake compose-down\r\n\t```\r\n\t\r\n\tThis shuts down the running containers.\r\n\r\n- Manually initialize the database:\r\n\r\n\t```bash\r\n\tmake run-init-db\r\n\t```\r\n\t \r\n\t This runs the database migration and seed scripts separately.\r\n\r\n## API Endpoints\r\n\r\n| Method  | Endpoint  | Description  |\r\n| ------------ | ------------ | ------------ |\r\n|  GET |  /tasks/  |  Retrieve all tasks  |\r\n| GET  |  /tasks/{id}  | Retrieve a specific task by ID |\r\n| GET  | /tasks/kanban/all | Retrieve all tasks of Kanban  |\r\n| POST  | /tasks/  | Create a new task  |\r\n| PUT  | /tasks/{id}  | Update an existing task  |\r\n| DELETE  | /tasks/{id}  | Delete a task  |\r\n\r\n## Database Requirements\r\n\r\n- Database URL: ***DATABASE_URL=postgresql://postgres:frnn4268@db:5432/postgres***\r\n\r\n| Database | Password  | \r\n| ------------ | ------------ | \r\n|  postgres |  frnn4268  |  \r\n\r\n## Testing with Postman Collection\r\n\r\nTo test the API, you can use:\r\n\r\n- Postman: Import ***postman_collection.json***.\r\n\t(Collection attached to this project.)\r\n\r\n## Contributors\r\n\r\n- Fernando Martínez - [Github Profile](https://github.com/Frnn4268 \"Github Profile\")\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrnn4268%2Fkanban_api_pfp-gsi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrnn4268%2Fkanban_api_pfp-gsi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrnn4268%2Fkanban_api_pfp-gsi/lists"}