{"id":50120139,"url":"https://github.com/algorithm-ssau/kurabye-bisquits","last_synced_at":"2026-05-23T18:05:29.749Z","repository":{"id":290918671,"uuid":"974388305","full_name":"algorithm-ssau/kurabye-bisquits","owner":"algorithm-ssau","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-17T00:43:52.000Z","size":15622,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-17T01:31:04.360Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://dev-vexyzy.ru","language":"JavaScript","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/algorithm-ssau.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,"zenodo":null}},"created_at":"2025-04-28T17:43:37.000Z","updated_at":"2025-05-17T00:43:55.000Z","dependencies_parsed_at":"2025-05-08T11:19:34.702Z","dependency_job_id":null,"html_url":"https://github.com/algorithm-ssau/kurabye-bisquits","commit_stats":null,"previous_names":["algorithm-ssau/kurabye-bisquits"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/algorithm-ssau/kurabye-bisquits","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2Fkurabye-bisquits","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2Fkurabye-bisquits/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2Fkurabye-bisquits/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2Fkurabye-bisquits/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/algorithm-ssau","download_url":"https://codeload.github.com/algorithm-ssau/kurabye-bisquits/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2Fkurabye-bisquits/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33406508,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"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":[],"created_at":"2026-05-23T18:05:00.094Z","updated_at":"2026-05-23T18:05:29.698Z","avatar_url":"https://github.com/algorithm-ssau.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍪 [Kurabye Bisquits - Онлайн магазин кондитерских изделий](http://dev-vexyzy.ru)\n\nХостинг: https://dev-vexyzy.ru\n\nДобро пожаловать в \"Kurabye Bisquits\" – восхитительный мир свежей выпечки и сладостей! Это FastAPI приложение представляет собой бэкенд для онлайн-магазина кондитерских изделий, с каталогом продукции, управлением корзиной, оформлением заказов и аутентификацией пользователей.\n\n## Структура проекта\n```\nkurabye-bisquits-main/\n├── app/\n│   ├── api/                  # API эндпоинты\n│   │   └── v1/               # v1 версия эндпоитнов\n│   │       └── endpoints/    # Роутеры для auth, cart, product, admin\n│   ├── core/                 # Основная конфигурация, настройки БД, логирование\n│   ├── domain/               # Бизнес-логика: сущности, перечисления, исключения\n│   ├── models/               # SQLAlchemy модели\n│   ├── repository/           # Слой доступа к данным (реальные и fake репозитории)\n│   │   └── sql/              # SQL запросы\n│   ├── schemas/              # Pydantic схемы для валидации данных API\n│   ├── services/             # Сервисный слой (бизнес-логика)\n│   ├── static/               # Статические файлы (CSS, JS, изображения)\n│   ├── templates/            # HTML шаблоны (Jinja2)\n│   ├── utils/                # Вспомогательные утилиты (аутентификация, работа с корзиной)\n│   └── app.py                # Главный файл приложения FastAPI\n├── logs/                     # Директория для лог-файлов\n├── tests/                    # Юнит и интеграционные тесты\n├── .env.example              # Пример файла переменных окружения (создайте свой .env)\n├── pyproject.toml            # Описание проекта и его зависимостей для PEP 517/PEP 621\n├── uv.lock                   # Lock-файл для зависимостей (генерируется uv)\n└── README.md                 # Этот файл\n```\n\n## 🛠️ Технологический стек\n\n*   **Бэкенд:**\n    *   Python 3.13+\n    *   FastAPI\n    *   SQLAlchemy (асинхронный режим с AsyncPG)\n    *   PostgreSQL\n    *   Uvicorn (ASGI сервер)\n    *   Pydantic (валидация данных)\n    *   Passlib[bcrypt] (хеширование паролей)\n    *   PyJWT (работа с JSON Web Tokens)\n    *   Sentry-SDK (мониторинг ошибок)\n    *   UV (менеджер пакетов и установщик)\n*   **Фронтенд (примеры):**\n    *   HTML5, CSS3\n    *   JavaScript (Vanilla JS для взаимодействия с API)\n    *   Jinja2 (шаблонизация)\n*   **База Данных:**\n    *   PostgreSQL\n*   **Инструменты:**\n    *   Docker, Docker Compose\n    *   Nginx / Apache (для reverse proxy в production)\n    *   Ruff (линтер и форматер)\n    *   Pyright (проверка типов)\n\n## 🚀 Начало работы\n\n### Предварительные требования\n\n*   Python 3.13+\n*   PostgreSQL (если не используется Docker для БД)\n*   `uv` ([официальная документация](https://docs.astral.sh/uv/))\n\n### 1. Клонирование репозитория\n\n```bash\ngit clone https://github.com/algorithm-ssau/kurabye-bisquits\ncd kurabye-bisquits\n```\n\n### 2. Настройка окружения\n\nСоздайте файл .env в корневой директории проекта (kurabye-bisquits) на основе примера .env_example.\n\n### 3. Перейдите в /app и запустите приложение\n\n```bash\ncd app/\nuv run app.py \u0026\n```\n\nПриложение будет доступно по адресу http://localhost:8000.\n\nВеб-интерфейс: http://localhost:8000\nДокументация API (ReDoc): http://localhost:8000/redoc\n\n## 📜 API Эндпоинты\n\nОсновные эндпоинты находятся по префиксу /api/v1/.\n\nАутентификация (/api/v1/auth):\n\nPOST /token: Получение JWT токена (логин).\n\nPOST /registration: Регистрация нового пользователя.\n\nGET /protected: Пример защищенного эндпоинта.\n\nКаталог (/api/v1/product):\n\nGET /all: Получение списка продуктов с пагинацией и сортировкой.\n\nGET /: Получение детальной информации о продукте по ID.\n\nКорзина (/api/v1/cart):\n\nGET /: Получение содержимого корзины пользователя.\n\nPATCH /{product_id}: Добавление/обновление количества товара в корзине.\n\nDELETE /{product_id}: Удаление товара из корзины.\n\nPOST /create_order: Создание заказа из корзины.\n\nGET /get_user_orders: Получение списка заказов пользователя.\n\nGET /get_order: Получение деталей конкретного заказа.\n\nДетальное описание эндпоинтов доступно в Swagger документации по адресу /redoc после запуска приложения.\n\n## 🤝 Команда разработчиков\n\n| Аватар | Имя | Должность |\n|:------:|:---|:---------|\n| \u003cimg src=\"https://github.com/algorithm-ssau/kurabye-bisquits/blob/main/app/static/img/van.jpg\"  alt=\"Avatar\" style=\"border-radius: 20px; width: 200px; height: 200px;\"\u003e | Никулин Иван | TeamLead |\n| \u003cimg src=\"https://github.com/algorithm-ssau/kurabye-bisquits/blob/main/app/static/img/alena.jpg\" alt=\"Avatar\" style=\"border-radius: 20px; width: 200px; height: 200px;\"\u003e | Алёна Соколова | Дизайнер интерфейсов, frontend разработчик |\n| \u003cimg src=\"https://github.com/algorithm-ssau/kurabye-bisquits/blob/main/app/static/img/denis1.jpg\" alt=\"Avatar\" style=\"border-radius: 20px; width: 200px; height: 200px;\"\u003e | Денис Мотяков | Backend разработчик, разработчик баз данных |\n| \u003cimg src=\"https://github.com/algorithm-ssau/kurabye-bisquits/blob/main/app/static/img/andrey.png\" style=\"border-radius: 20px; width: 200px; height: 200px;\"\u003e | Телегин Андрей |  Fullstack разработчик |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falgorithm-ssau%2Fkurabye-bisquits","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falgorithm-ssau%2Fkurabye-bisquits","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falgorithm-ssau%2Fkurabye-bisquits/lists"}