Tribe — платформа мероприятий, которая позволяет пользователям находить события в своём регионе или по всей стране. Пользователи могут публиковать собственные мероприятия, а система — рекомендовать интересные активности по геопозиции.
Цель проекта — создать надёжный серверный модуль, способный работать с большим количеством событий, геоданными и пользовательскими действиями.
Backend выполнен как монолит на Java. Реализованы модули авторизации, пользователей, событий, геопоиска, рекомендаций, комментариев и администрирования. Также был разработан чат между пользователями на WebSocket.
Сложные инженерные задачи:
интеграции с картографическими сервисами;
получение и обработка геокодинга;
оптимизация выборок по геопозиции (радиус, bounding box);
проектирование структуры данных под большие объёмы мероприятий;
синхронизация real-time чата.
Интеграции:
картографические API, геокодинг, механизмы геолокации.
Платформа стабильно обрабатывает данные о мероприятиях, показывает события по локации и предоставляет пользователям удобный способ общения и публикации собственных активностей.
Система полностью готова к масштабированию и росту аудитории.
В соавторстве (4 backend-разработчика). Я занимался архитектурой и значительной частью серверной логики.