Введение
Fantasy Horseracing – первая специализированная платформа для фэнтезийных скачек в Великобритании. Фэнтези-спорт — вид онлайн-игр, представляющий собой виртуальные соревнования на основе реальных достижений в событиях профессионального спорта.
У заказчика уже было разработано приложение, но первоначальная версия страдала от медленной работы и нестабильности. С официальным релизом, запланированным через три месяца, необходимо было срочно решить эти проблемы.
Исходные данные
Проблемные места текущего приложения:
- Медленная работа и систематические выходы из строя, вызванные перегрузкой системы из-за одновременного обрабатывания данных о всех гонках.
- Отсутствие панели администратора со статистикой для автоматической выгрузки данных из базы данных.
- Сложности поддержки и обслуживания из-за использования лямбда-функций AWS Amplify на Python и JavaScript.
Наш подход к решению
Были определены следующие задачи для улучшения приложения:
- Сделать приложение стабильным и способным обрабатывать большое количество гонок.
- Оптимизировать функционал работы с внешним API.
- Разработать панель администратора.
- Внедрить новый функционал: добавление в друзья, покупка игровых монет, лидерборд.
Наш подход к решению
Аналитика и прототипирование
Мы начали с анализа текущего состояния приложения и выявления проблем, указанные клиентом, так и потенциальных проблем. Затем был разработан прототип нового функционала, который позволил нам визуализировать предстоящие обновления и утвердить их с заказчиком.
Архитектура и базы данных
Для обеспечения стабильной работы и быстрого отклика приложения была предложена гибридная архитектура, сочетающая в себе монолит и микросервисы. Мы также обновили систему баз данных, которая обеспечивала высокую производительность и масштабируемость.
Микросервисы и API
Разработан отдельный микросервис для получения данных о гонках со стороннего API, который позволил значительно снизить нагрузку на основное приложение. Основной проект был переписан на NestJS, что позволило оптимизировать работу серверной части и упростить её поддержку.
Дизайн и функционал
Мы обновили дизайн приложения, в соответствии с фирменным стилем, предоставленным заказчиком. Были добавлены важные социальные и игровые элементы, такие как: добавление в друзья, покупка игровых монет и лидерборд.
Эти обновления не только улучшили визуальную привлекательность и функциональность приложения, но и повысили уровень геймификации.
Итерационное тестирование
В процессе разработки все изменения проходили через несколько этапов тестирования. Это позволило нам выявлять и устранять потенциальные проблемы на ранних этапах, что существенно повысило качество конечного продукта. Мы смогли обеспечить высокую надёжность и производительность приложения «Fantasy Horseracing», что стало одним из ключевых факторов сдачи проекта в сжатые сроки.
Результат
Приложение «Fantasy Horseracing» стало более стабильным и быстрым, что позволило успешно провести официальный релиз в срок. Отдельный микросервис для работы с внешним API снизил нагрузку на приложение. Переписывание проекта на NestJS оптимизировало серверную часть, упростило поддержку и достигнута способность обрабатывать большое количество гонок. Обновлённый дизайн и добавленный функционал стали более практичными в использовании, повысился уровень геймификации.
Ссылка на проект:
App store
Play market