dmdin / LinkTamer

🎓 My coursework written in C++, Golang and Svelte for Programming Technologies subject in NUST MISiS

Home Page:http://linktamer.xyz/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Курсовая работа LinkTamer

✍️ Описание

Проект представлен в виде сервиса для сокращения ссылок, развернутого на облачном хостинге. Ознакомиться с прототипом можно по ссылке http://linktamer.xyz

🛠 Технологии

В рамках работы было задействовано множество современных технологий. Среди них:

  • Oatpp - C++ фреймворк для создания REST API со Swagger документацией и ORM
  • Svelte - JavaScript фреймворк-компилятор для создания интерактивных веб-приложений
  • Docker - контейнеризация приложения для кросс-платформенности и упрощения запуска

📝 Техническое задание

  1. Установить фреймворки
  2. Изучить документацию
  3. Создать backend приложения
  4. Создать frontend приложения
  5. Соединить обе части
  6. Обернуть проект в Docker контейнеры

Описание ТЗ

Сервис должен позволять быстро сокращать ссылки и сохранять всю информацию в базе данных. На стороне frontend должно быть реализовано два окна. Первое позволит сокращать ссылки и будет отображать историю пользователя. Второе будет загружать полные ссылки и производить переход по ним. На стороне backend будет создано несколько endpoint API и документация к ним на Swagger UI. Вся информация будет сохраняться в базе данных Sqlite3.

🐳 Запуск через Docker

Для запуска необходимо иметь Docker и Docker Compose. Далее внутри папки проекта, где находится файл docker-compose.yml прописать в командной строке

$: docker-compose up --build

🦾 Запуск вручную

Frontend

Установить NodeJS, убедиться, что путь до npm указан в переменной среды Path. В папке frontend выполнить команды:

$: npm install
$: npm run build

Результат компиляции будет лежать в папке public/build, для запуска используется index.html

Backend

Установить зависимости С++, используя utils/install-oatpp-modules.sh или vcpkg Необходимые модули:

Установка через скрипт

Запустить скрипт utils/install-oatpp-modules.sh, все нужные модули установятся и соберутся автоматически

Установка через vcpkg

Выполнить следующие команды в папке, где будет установлен 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 с местом расположения установленных библиотек при сборке проекта.

🎉 Результат

📋 TODO

  1. Добавить Traefik для поддержки https подключений
  2. Оптимизировать backend контейнер

About

🎓 My coursework written in C++, Golang and Svelte for Programming Technologies subject in NUST MISiS

http://linktamer.xyz/

License:MIT License


Languages

Language:C++ 43.7%Language:Svelte 19.1%Language:JavaScript 15.7%Language:CMake 6.1%Language:Go 5.9%Language:Shell 2.6%Language:Dockerfile 2.6%Language:CSS 2.2%Language:HTML 2.0%