eaxdev / URLShortener

Spring Boot 2 + Thymeleaf + Selenide for UI tests with TestContainers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

URLShortener - сервис, который укорачивает длинные ссылки

Build Status codecov

Данное приложение представляет собой сервис по укорачиванию длинных ссылок, подобно https://goo.gl/ или https://vk.cc/. Приложение самодостаточное, запускается из командной строки и не требует отдельно установленных servlet контейнеров, application серверов и т.п.

Используемые технологии и фреймворки:

  • Spring Boot
  • Spring Data JPA
  • Liquibase - для управления миграциями базы данных
  • Thymeleaf - html шаблонизатор
  • Twitter Bootstrap - для разметки
  • Selenide для UI тестов
  • TestContainers для запуска UI тестов в докер контейнере

Используется СУБД H2. Для тестов используется H2DB

Автоматизация инфраструктуры:

  • Maven
  • TravisCI
  • Docker

Как запустить

Для сборки используется Maven:

mvn clean package

Запускаем:

java -jar ./target/url-shortener.jar

Приложение запустится на порту по умолчанию - 8080

Запуск, используя Docker

Необходим установленный Docker и docker-compose

Команда:

docker-compose up -d 

запускает docker контейнер с приложением на 8080 порту

Результат работы:

Приложение имеет как веб интерфейс, так и REST сервис:

pi@pi-VirtualBox:~$ http POST http://192.168.1.2:8080/add/rest link=http://ya.ru
HTTP/1.1 200 
Content-Type: application/json;charset=UTF-8
Date: Sat, 02 Sep 2017 16:08:53 GMT
Transfer-Encoding: chunked

{
   "key": "ztV7", 
   "link": "http://ya.ru"
}

Веб интерфейс: Alt text Alt text

About

Spring Boot 2 + Thymeleaf + Selenide for UI tests with TestContainers


Languages

Language:Java 88.2%Language:HTML 11.2%Language:Dockerfile 0.6%