/rph

Витрина аптеки. Pharmacy website

Primary LanguageHTMLOtherNOASSERTION

codecov

Приложение для аптечного сайта

Работа с программой

Приложение разработано на Play Scala Framework 2.6.x и Scala 2.12.x. Преставляет собой витрину аптеки (http://pharmrus24.ru). Для загрузки товаров используется выгрузка из программы М-Аптека+ (Эскейп), выгруженная с помощью приложения phrexp.

В приложении реализованы следующие функции

  1. Аутентификация, как собственная, с использованием базы данных, так и с помощью технологии OAuth, OAuth2 (библиотека slhouette)
  2. База данных товаров, загрузка, вывод на витрине

Для 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

Приложение также сконфигурировано для запуска на Heroku. Оно уже развернуто там и доступно по адресу ФармРус

Для развертывания используется файл Procfile. В нем есть следующая строка, которая говорит об использовании application.prod.conf в качестве конфигурации

web: server/target/universal/stage/bin/server -Dhttp.port=${PORT} -Dconfig.resource=application.prod.conf