{"id":24822173,"url":"https://github.com/lofienjoyerr/cafeproject","last_synced_at":"2025-03-25T20:45:15.376Z","repository":{"id":273271725,"uuid":"919170383","full_name":"Lofienjoyerr/CafeProject","owner":"Lofienjoyerr","description":"Backend часть веб-приложения для управления заказами в кафе","archived":false,"fork":false,"pushed_at":"2025-02-23T13:54:18.000Z","size":111,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-23T14:34:13.271Z","etag":null,"topics":["celery","django","django-rest-framework","elasticsearch","jwt-authentication","openapi","postgresql","pytest","python","redis"],"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/Lofienjoyerr.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":"2025-01-19T21:46:05.000Z","updated_at":"2025-02-23T13:54:21.000Z","dependencies_parsed_at":"2025-01-19T22:38:07.497Z","dependency_job_id":"5141360e-94c2-4c18-87a3-30f52659a7f4","html_url":"https://github.com/Lofienjoyerr/CafeProject","commit_stats":null,"previous_names":["lofienjoyerr/cafeproject"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lofienjoyerr%2FCafeProject","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lofienjoyerr%2FCafeProject/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lofienjoyerr%2FCafeProject/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lofienjoyerr%2FCafeProject/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lofienjoyerr","download_url":"https://codeload.github.com/Lofienjoyerr/CafeProject/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245542730,"owners_count":20632553,"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":["celery","django","django-rest-framework","elasticsearch","jwt-authentication","openapi","postgresql","pytest","python","redis"],"created_at":"2025-01-30T18:26:44.557Z","updated_at":"2025-03-25T20:45:15.359Z","avatar_url":"https://github.com/Lofienjoyerr.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"- [CafeProject](#cafe-project)\n    * [Установка](#installation)\n    * [Краткое описание функционала](#description)\n    * [Лицензия](#license)\n\n\u003c!-- TOC --\u003e\u003ca name=\"cafe-project\"\u003e\u003c/a\u003e\n# CafeProject\nBackend часть веб-приложения на Django для управления заказами в кафе.\\\nКод написан на Python фреймворках __[Django](https://docs.djangoproject.com/en/5.1/)__ и __[Django REST Framework](https://www.djangoproject.com/)__.\nВ качестве основной базы данных использует __[PostgreSQL](https://www.postgresql.org/)__, для кеширования использует __[Redis](https://github.com/redis/redis)__.\nДля обработки очередей задач используется __[Celery](https://docs.celeryq.dev/en/stable/getting-started/introduction.html)__, а в качестве брокера сообщений – __[Redis](https://github.com/redis/redis)__.\nПолнофункциональная пользовательская система основывается на JWT, реализованных с помощью библиотеки __[djangorestframework_simplejwt](https://django-rest-framework-simplejwt.readthedocs.io/en/latest/)__.\nТестирование проведено с помощью фреймворка __[pytest](https://github.com/pytest-dev/pytest)__.\nИмеется возможность полнотекстового поиска заказов с помощью __[Django Elasticsearch DSL](https://django-elasticsearch-dsl.readthedocs.io/en/latest/index.html)__.\nВ дополнение, у проекта имеется OpenAPI схема, сгенерированная при помощи __[drf-spectacular](https://github.com/tfranzel/drf-spectacular/)__, и __Swagger UI__ для визуализации и тестирования API.\nТакже реализовано логирование, сохраняющееся в файл `log.log` в корневой директории.\n\n\u003c!-- TOC --\u003e\u003ca name=\"installation\"\u003e\u003c/a\u003e\n## Установка\nПеред установкой убедитесь, что у вас установлен __Python__, менеджер пакетов __pip__ и\nсредство создания виртуальных окружений __venv__.\nДанная инструкция будет использовать именно эти инструменты. Также инструкция направлена на пользователей Linux (Ubuntu).\n1. Клонируем репозиторий\n```cmd\ngit clone https://github.com/Lofienjoyerr/CafeProject.git\ncd CafeProject/\n```\n2. Создаём виртуальное окружение и активируем его\n```cmd\npython3 -m venv .venv\nsource .venv/bin/activate\n```\n3. Скачиваем и устанавливаем все зависимости\n```cmd\npip install -r requirements.txt\n```\n5. (Optional) Если вы хотите запустить сервер в режиме debug, то также установите\n```cmd\npip install django-debug-toolbar\npip install ipython\npip install django-extensions\n```\n6. Создаём базу данных (СУБД можете выбирать на ваше предусмотрение. Инструкции для установки выбранной СУБД и создания БД\nнайдите самостоятельно)\n7. Создаём сервер и БД ElasticSearch.\n8. Создаём файл окружения `.env` и настраиваем его по примеру файла `.env.template`\n9. Применяем миграции\n```cmd\npython3 manage.py migrate\n```\n10. (Optional) Если хотите запустить сервер в release режиме, запустите\n```cmd\npython3 manage.py collectstatic\n```\n11. Добавьте файл для стандартной аватарки по следующему пути (и соответственно добавьте директории)\n`media/users/default_avatar.webp`. \n12. В отдельном окне терминала запускаем celery (при необходимости добавьте право на исполнение\n`chmod +x ./scripts/celery.sh`)\n```cmd\n./scripts/celery.sh\n```\n13. Запускаем сервер (при необходимости добавьте право на исполнение\n`chmod +x ./scripts/run.sh`)\n```cmd\n./scripts/run.sh\n```\n14. Готово. API будет доступно по адресу `http://127.0.0.1:8000/api/v1/`, документация к нему -\n`http://127.0.0.1:8000/api/v1/schema/`, а Swagger UI - `http://127.0.0.1:8000/api/v1/swagger/`.\n\n\u003c!-- TOC --\u003e\u003ca name=\"description\"\u003e\u003c/a\u003e\n## Краткое описание функционала\n1. Пользовательская система\n   - Получение списка всех пользователей (с пагинацией).\n   - Получение информации о конкретном пользователе. Возможность изменения его информации.\n   - Возможность авторизации через JWT. Получение информации о пользователе через токен.\n   - Возможность изменять и восстанавливать пароль через электронную почту.\n   - Регистрация пользователя с подтверждением электронной почты.\n   - Изменение адреса электронной почты с последующим подтверждением нового.\n2. Управление кафе\n   - Вычисление суммарного дохода с оплаченных заказов за определённый день.\n   - Добавление заказа с автоматически рассчитанной стоимостью и статусом \"в ожидании\".\n   - Удаление заказа по выбранному ID.\n   - Отображение всех заказов (с пагинацией).\n   - Возможность фильтрации списка заказов по нескольким параметрам.\n   - Изменение информации заказа по его ID.\n\n\u003c!-- TOC --\u003e\u003ca name=\"license\"\u003e\u003c/a\u003e\n## Лицензия\nУ этого проекта [MIT лицензия](https://github.com/Lofienjoyerr/CafeProject/blob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flofienjoyerr%2Fcafeproject","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flofienjoyerr%2Fcafeproject","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flofienjoyerr%2Fcafeproject/lists"}