Skip to content

209/hack_it_backend

Repository files navigation

Архитектура микросервисная.

Backend.

Бэк опрашивает группы раз в 5 минут, новые посты анализирует, находит GEO из текста, кладет в базу. Существующие посты обновляются, если имело место редактирование. Сейчас работа ведется только с одной группой, добавить еще - дело 5 минут.

Для обработки текста используется https://www.pullenti.ru/ Для получения координат по адресу Google Geo API БД: mongo

API

  • для получения N штук из базы /api/posts
  • для получения новых, чтобы отправить всем подписчикам оповещение /api/posts&onlyNew=true
  • служебное API

В api можно задать:

  • геолокацию пользователя - строкой [geo]
  • количество [count] - по умолчанию: 5
  • [distance] - параметр, от которого зависит, насколько рядом нужно искать точки раздачи еды. Задается в метрах. По умолчанию 3000.

Параметр distance имеет ограничения применения. Например "город Санкт-Петербург" определится где-то в центре (широта/долгота),а если человек будет искать на окраине, то ему оповещалки не придут. Точность системы полностью зависит пользователей: насколько корректно они напишут адрес.

Для запуска приложения нужно создать файл .env и определить переменные: VK_APP_ID VK_APP_SECRET VK_APP_TOKEN SESSION_SECRET GOOGLE_API_KEY PORT=80 (используется в docker container) HOST=0.0.0.0 (специально для docker container)

Запуск: docker-compose up [-d] web

Для улучшения работы получения адреса из текста нужно разобраться с TerminCollection в pullenti Но в ближайшее время ожидаеся обновление: будут добавлены станции метро РФ и другие мелкие фиксы.

Бот

https://github.com/AnastasiaKolev/telegrambot-foodsharing Опрашивает бэк (в дальнейшем - бэк сам будет отправлять эвенты) на предмет новых сообщений. Хранение юзеров реализуется на стороне бота, но в дальнейшем необходимо сделать отдельный user service.

P.S.:

Разработанный проект является прототипом, который нельзя использовать на постоянное основе "как есть" без внедрения систем безопасности.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published