Приложение разработано на Play Scala Framework 2.6.x и Scala 2.12.x. Преставляет собой витрину аптеки (http://pharmrus24.ru). Для загрузки товаров используется выгрузка из программы М-Аптека+ (Эскейп), выгруженная с помощью приложения phrexp.
В приложении реализованы следующие функции
- Аутентификация, как собственная, с использованием базы данных, так и с помощью технологии OAuth, OAuth2 (библиотека slhouette)
- База данных товаров, загрузка, вывод на витрине
Для UI используется библиотека scala-js. На текущий момент в состав приложения включено два проекта со scala-js. Они различаются по назначению страниц. Один проект для клиентской части, другой для администрирования
В качестве БД используется mongoDB 3.x Клиентская библиотека - reactivemongo
Для хранения изображений используется addon для heroku - cloudinary
Для рассылки email сообщений используется sendgrid
В проекте настроена автосборка с помощью travis. Описание находится в файле .travis.yml Для подсчета покрытия Unit тестами используется codecoverage
Перед запуском необходимо установить и запустить базу данных mongodb. Для этого можно либо установить локально либо запустить через docker. После этого необходимо проверить параметр в конфигурационном файле /server/conf/application.conf:
mongodb.uri = "mongodb://localhost:27017/shopdb?authMode=scram-sha1"
mongodb.uri = ${?MONGODB_URI}
После того, как БД запущена, можно запускать само приложение. Делается это с помощью sbt.
sbt run
После этого сайт доступен по ссылке http://localhost:9000http://localhost:9000)
Приложение также сконфигурировано для запуска на Heroku. Оно уже развернуто там и доступно по адресу ФармРус
Для развертывания используется файл Procfile. В нем есть следующая строка, которая говорит об использовании application.prod.conf в качестве конфигурации
web: server/target/universal/stage/bin/server -Dhttp.port=${PORT} -Dconfig.resource=application.prod.conf