{"id":26461995,"url":"https://github.com/deker104/hleber","last_synced_at":"2026-04-14T04:02:04.241Z","repository":{"id":49282052,"uuid":"260993659","full_name":"deker104/hleber","owner":"deker104","description":"Проект студентов Яндекс.Лицея для помощи людям в период пандемии.","archived":false,"fork":false,"pushed_at":"2023-02-16T01:34:31.000Z","size":227,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-28T16:30:39.009Z","etag":null,"topics":["flask","heroku","vk-api"],"latest_commit_sha":null,"homepage":"https://hleber.site","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/deker104.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-05-03T18:22:42.000Z","updated_at":"2021-06-20T13:58:56.000Z","dependencies_parsed_at":"2025-10-28T16:25:31.282Z","dependency_job_id":"a1f339de-a0c3-4cec-ba8d-aab01f46c5f8","html_url":"https://github.com/deker104/hleber","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/deker104/hleber","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deker104%2Fhleber","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deker104%2Fhleber/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deker104%2Fhleber/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deker104%2Fhleber/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deker104","download_url":"https://codeload.github.com/deker104/hleber/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deker104%2Fhleber/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31781292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"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":["flask","heroku","vk-api"],"created_at":"2025-03-19T05:14:42.736Z","updated_at":"2026-04-14T04:02:04.214Z","avatar_url":"https://github.com/deker104.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Хлебер-β [![Build Status](https://travis-ci.com/deker104/hleber.svg?branch=master)](https://travis-ci.com/deker104/hleber)\n\n![Логотип Хлебер-β](./app/static/img/icon.png)\n\n**Хлебер-β** (_хлебер-бетта_) - это приложение от студентов _Яндекс.Лицея_, созданное помочь людям, которые в период пандемии не могут самостоятельно выбраться на улицу и купить необходимые продукты и лекарства.\nДля решения проблемы мы создали систему, связывающую нуждающихся людей с людьми, желающими им помочь.\n\n**Хлебер-β** состоит из двух частей:\n- Веб-сайт, на котором пользователь может зарегестрироваться как \"клиент\", чтобы оставить заказ, или как \"волонтёр\", чтобы получить удобные инструменты для исполнения этих закозов, например карта ближайших к дому клиента магазинов.\n- Бот _ВКонтакте_, оповещающий клиентов и волонтёров об изменениях, связанных с их заказами.\n\n## Запуск копии приложения\n\n### Установка\n\n- Сохраните копию ветки _master_ на компьютер.\n\n- Создайте виртуальное окружение _Python_ и установите зависимости из `requirements.txt`.\n\n- Задайте параметры приложения через переменные среды:\n\n```\nDATABASE_URL=\u003cссылка на БД (по-умолчанию: db.sqlite3)\u003e\nGEOCODER_KEY=\u003cAPI-ключ Геокодера\u003e\nGEOSEARCH_KEY=\u003cAPI-ключ Поиска по организациям\u003e\nSECRET_KEY=\u003cсекретный ключ Flask-приложения (по-умолчанию: test-secret-key)\u003e\nVK_TOKEN=\u003cтокен группы-представителя бота ВКонтакте\u003e\nVK_GROUP_ID=\u003cid группы-представителя\u003e\nVK_APP_ID=\u003cid ВК-приложения сайта\u003e\nVK_SECRET_KEY=\u003cсекретный ключ ВК-приложения сайта\u003e\n```\n\n- Вы можете сделать это созданием в корневой директории файла конфигурации `.env`.\n\n- Запустите создание таблиц в БД:\n\n```console\n$ flask db upgrade\n```\n\n### Запуск\n\n- Запустите _Flask_-приложение.\n    - Вы можете просто запустить `wsgi.py` как _Python_-скрипт _(рекомендовано для быстрой отладки)_;\n    - Либо запустить его с помощью `gunicorn` или любого другого _WSGI_-сервера _(рекомендовано для стабильной работы)_:\n\n```console\n$ gunicorn -b 0.0.0.0:8000 wsgi:app\n```\n\n- Параллельно запустите бота _ВКонтакте_ запуском `bot.py` в качестве _Python_-скрипта.\n\n- _(не обязательно)_ Настройте доступ к Flask-приложению через какой-нибудь proxy-сервер (например _nginx_).\nЭто сильно улучшит производительность за счёт улучшенной параллелизации и отдельного обслуживания proxy-сервером статичных файлов.\n\n### Обновление\n\n- Загрузите на компьютер обновлённую ветку _master_.\n\n- Обновите структуру таблиц в БД:\n\n```console\n$ flask db upgrade\n```\n\n## Структура проекта\n\n- `/app/` - модуль веб-сайта.\n    - `/app/static/` - директория для статичных файлов.\n    - `/app/templates/` - шаблоны веб-страниц (_Jinja2_).\n- `/migrations/` - служебные файлы _alembic_.\n- `/.env` - файл конфигурации, параметры из которого загружаются в переменные среды.\n- `/.travis.yml` - файл конфигурации для _Travis CI_\n- `/Procfile` - файл, задающий процессы для запуска на сервере _Heroku_.\n- `/requirements.txt` - файл с зависимостями проекта.\n\nОписание ко всем неупомянутым файлам находится в их собственной документации.\n\n## Используемые технологии\n\n- _Heroku_ - хостинг всего веб-приложения, включая БД.\n- _Flask_ - микро-фреймворк, используемый для создания веб-сайта.\n- _SQLAlchemy*_ - библиотека ORM для доступа к БД.\n    - _Alembic*_ - библиотека, позволяющая вносить правки в БД без потери данных.\n- _WTForms*_ - библиотека для задания HTML-форм с помощью ООП.\n- _Flask-Login_ - дополнение к Flask для удобной авторизации пользователей.\n- _API Яндекс.Карт (в частности Static API, Geocoder и Поиск по организациям)_ - API рендера карт на странице и поиска объектов по адресу.\n- _Bootstrap_ - CSS-фреймворк, отвечающий за всю красоту на нашем веб-сайте.\n- _vk-api (python273)_ - библиотека для создания приложений на основе VK API.\n- _pytest_ и _Travis CI_ - инструменты для автоматического тестирования приложения перед его загрузкой на сервер. \n- _Moment.JS*_ - библиотека для удобных операций со временем на сайте.\n\n_* - Модули, помеченые звёздочкой, подключены к Flask с помощью специальных дополнений._\n\n## Планы по улучшению\n\n- **Улучшение безопасности.**\nПроект отпалирован не до конца, и всё ещё существуют некоторые проблемы с проверкой прав пользователей на посещение страниц.\n- **JavaScript API карт.**\nСтатические карты, используемые в проекте, не являются лучшем решением для помощи волонтёрам.\nКуда удобнее было бы использовать для этой цели отдельные виджеты с картами, однако на данный момент такой возможности нет.\n- **Тестирование.**\nСейчас единственная функция, выполняемая CI, это проверка сборки проекта и его запуска.\nНам бы хотелось уметь в автоматическом режиме проверять работоспособность веб-страниц и БД.\n- **Инструкция.**\nЕдинственным способом разобраться с управлением на сайте является \"метод тыка\".\nИ пускай веб-сайт не обладает какой-то особо запутанной структурой, некоторым пользователям может быть сложно разобраться с ним самостоятельно.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeker104%2Fhleber","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeker104%2Fhleber","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeker104%2Fhleber/lists"}