{"id":15802019,"url":"https://github.com/swimmwatch/road-to-the-python-assignment-1","last_synced_at":"2026-02-09T07:31:48.430Z","repository":{"id":217097801,"uuid":"739867206","full_name":"swimmwatch/road-to-the-python-assignment-1","owner":"swimmwatch","description":"Road to the Python Assignment","archived":false,"fork":false,"pushed_at":"2024-01-19T20:54:14.000Z","size":75,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-20T02:49:42.914Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/swimmwatch.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":"2024-01-06T19:33:39.000Z","updated_at":"2024-01-14T08:20:54.000Z","dependencies_parsed_at":"2024-01-14T15:26:54.258Z","dependency_job_id":"63370ac3-7c42-4379-b254-b6fd2af0c4f9","html_url":"https://github.com/swimmwatch/road-to-the-python-assignment-1","commit_stats":null,"previous_names":["swimmwatch/road-to-the-python-assignment-1"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/swimmwatch/road-to-the-python-assignment-1","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swimmwatch%2Froad-to-the-python-assignment-1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swimmwatch%2Froad-to-the-python-assignment-1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swimmwatch%2Froad-to-the-python-assignment-1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swimmwatch%2Froad-to-the-python-assignment-1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/swimmwatch","download_url":"https://codeload.github.com/swimmwatch/road-to-the-python-assignment-1/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swimmwatch%2Froad-to-the-python-assignment-1/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29258740,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T04:11:57.159Z","status":"ssl_error","status_checked_at":"2026-02-09T04:11:56.117Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":[],"created_at":"2024-10-05T01:41:40.834Z","updated_at":"2026-02-09T07:31:48.413Z","avatar_url":"https://github.com/swimmwatch.png","language":null,"readme":"# road-to-the-python-assignment-1\n\nНеобходимо разработать HTTP REST API для ведения учета питомцев (собак, кошек, и т.д).\n\n## Требования\n- Результат задания нужно залить ввиде PR.\n- Написать к нему README ввиде комментария в PR (инструкция по запуску, замечания и т.д.)\n\n### Опционально\n- Автотесты\n- Линтеры\n\n## Технологии\nТребуется использовать следующие технологии:\n- Python\n- FastAPI\n- PostgreSQL\n- S3 (minio)\n- Docker (docker-compose)\n- Swagger\n\n## Модели\n**Питомец:**\n- ID. \n- Дата создания\n- Дата обновления\n- Фотографии.\n- Имя\n  - Мин. кол-во символов `3`.\n  - Макс. кол-во символов `28`.\n- Во́зраст (кол-во лет).\n- Дата рождения\n  - Мин. дата `01.01.1900`.\n- Дата смерти\n  - Опциональное поле \n- Тип (кошка, собака и т.д)\n- Пол\n- Описание\n  - Мин. кол-во символов `0`.\n  - Макс. кол-во символов `1024`.\n\n**Фотография:**\n- ID. \n- Дата создания\n- Ссылка\n\n## Описание API\n### API Key Authentication\n- В конфиге проекта нужно добавить параметр `API_KEY`\n- Все обработчики запросов должны принимать header `X-API-KEY`\n- Переданный `X-API-KEY` сравнивается с эталонным `API_KEY`\n\n### Функционал\n- Создание записи питомца. **Примечание:** при создании записи питомца не нужно указывать фотограции;\n- Загрузить фотографию питомца. Поддерживаются следующие форматы фотографий: `png`, `jpeg`, `webp`. При загрузке файлов, сами файлы нужно конвертировать в один формат (например, `jpeg`);\n- Получение детальной запись питомца по ID;\n- Удаление фотографии питомца по ID;\n- Получение списка питомцев. Нужно реализовать:\n  - Поиск. Включение подстроки в строку. Игнорировать регистр. Поля:\n    - Имя\n    - Описание\n  - Фильтрация:\n    - Возраст `\u003e=`\n    - Возраст `\u003c=`\n  - Пагинация (limit/offset)\n  - Сортировка:\n    - Дата создания\n    - Возраст\n- Редактирование записи питомца по ID. Поля, которые можно редактировать:\n  - Имя\n  - Дата рождения\n  - Дата смерти\n  - Описание\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswimmwatch%2Froad-to-the-python-assignment-1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswimmwatch%2Froad-to-the-python-assignment-1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswimmwatch%2Froad-to-the-python-assignment-1/lists"}