ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ 2
ВВЕДЕНИЕ 3
1 Анализ существующих решений 5
1.1 EDDB.io 5
1.2 Inara.cz 6
2 Инструменты разработки приложения 9
2.1 Java 9
2.2 Spring framework 9
2.3 PostgreSQL 12
2.4 Flyway 13
2.5 Mapstruct 13
2.6 Hibernate 13
2.7 Docker 14
2.8 IntelliJ IDEA 14
2.9 Postman 14
2.10 JavaScript 14
2.11 Node.js 15
2.13 Telegrafjs 15
2.14 ZeroMQ 15
3 Проектирование 17
3.1 База данных 17
3.2 Соединение с EDDN 22
3.3 Обновление и запись новых данных в базу 25
3.4 Сопоставление eddn_name и реального имени груза 26
4 Реализация 27
4.1 Реализация серверной части 27
4.1.1 Spring data 27
4.1.2 Получение информации от EDDN 28
4.1.3 Получение информации об именах грузов с Github 30
4.1.4 Разработка API 31
4.2 Реализация бота Telegram 33
4.3 Докеризация приложений 34
ЗАКЛЮЧЕНИЕ 35
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ЛИТЕРАТУРЫ 36
В реалиях игры игроки стремятся к максимизации прибыли, для этого нужно иметь актуальные данные по ценам на товары, спросу и предложению на рынках. В реалиях игры эта информация недоступна, поэтому были созданы ряд приложений для интеграции API журнала игры и различных сторонних сервисов, в том числе EDDN [2] - Elite Dangerous Data Network - воронка данных с возможностью получения их в реальном времени. Основываясь на данных из этой системы, можно найти станции с самыми выгодными ценами на покупку или продажу товара и максимизировать прибыль. Цель работы: разработать систему хранения цен на товары с API для выгрузки данных по товарам с интеграцией бота Telegram [3].
Для достижения цели были поставлены следующие задачи:
1. спроектировать модель базы данных
2. спроектировать серверную часть приложения
3. реализовать API
4. реализовать бота Telegram
В результате анализа предметной области сформулированы следующие функциональные и нефункциональные требования к системе.
Функциональные требования:
• Возможность хранения информации о товарах
о Цена покупки
о Цена продажи
о Спрос
о Предложение
• Интеграция с ботом Telegram
о Возможность указать желаемую цену на продажу товара и получить уведомление, когда условие будет выполнено
• Наличие API
о Возможность получать сведения о товарах на станции не используя бота
в Telegram и не имея доступа к базе данных.
Нефункциональные требования:
• Отказоустойчивость
• Кроссплатформенность
В рамках проделанной работы выполнены все поставленные задачи:
• спроектирована модель базы данных
• спроектирована серверная часть приложения
• реализовано API
• реализован бот Telegram
Дальнейшие перспективы развития проекта:
• Добавление функции просмотра оборудования и кораблей на станциях
• Добавление функции расчета выгодных маршрутов
• Добавление вебсайта для просмотра информации о грузах
Исходя из всего вышенаписанного, цель работы - разработать web- приложение для хранения и мониторинга цен на товары в игре Elite: Dangerous, интегрированное с ботом Telegram - достигнута.