Проект представлен в виде сервиса для сокращения ссылок, развернутого на облачном хостинге. Ознакомиться с прототипом можно по ссылке http://linktamer.xyz
В рамках работы было задействовано множество современных технологий. Среди них:
Сервис должен позволять быстро сокращать ссылки и сохранять всю информацию в базе данных. На стороне frontend должно быть реализовано два окна. Первое позволит сокращать ссылки и будет отображать историю пользователя. Второе будет загружать полные ссылки и производить переход по ним. На стороне backend будет создано несколько endpoint API и документация к ним на Swagger UI. Вся информация будет сохраняться в базе данных Sqlite3.
Для запуска необходимо иметь Docker и Docker Compose. Далее внутри папки проекта, где находится файл docker-compose.yml прописать в командной строке
$: docker-compose up --build
Установить NodeJS, убедиться, что путь до npm указан в переменной среды Path. В папке frontend выполнить команды:
$: npm install
$: npm run build
Результат компиляции будет лежать в папке public/build, для запуска используется index.html
Установить зависимости С++, используя utils/install-oatpp-modules.sh или vcpkg Необходимые модули:
Запустить скрипт utils/install-oatpp-modules.sh, все нужные модули установятся и соберутся автоматически
Выполнить следующие команды в папке, где будет установлен vcpkg
$: git clone https://github.com/microsoft/vcpkg
$: vcpkg\bootstrap-vcpkg.bat
Установить нужные библиотеки
$: vcpkg install oatpp
$: vcpkg install oatpp-sqlite
$: vcpkg install oatpp-swagger
После установки необходимо включить интеграцию в сборку
$: vcpkg integrate install
В консоли отобразится подсказка. В дальнейшем нужно использовать переменную -DCMAKE_TOOLCHAIN_FILE с местом расположения установленных библиотек при сборке проекта.