Skip to content

code-418-dpr/KNTista-api

Repository files navigation

KNTista-api

license release downloads code size

linters codeql build

Бэкенд для проекта KNTista

Особенности реализации

  • отслеживание активности на факультете:
    • возможность заполнить справочники БД данными
    • CRUD-операции со всеми сущностями
    • создание DOCX-отчётов об активности
    • параметризованный поиск по всем таблицам с пагинацией
  • документация Swagger
  • интеграция CI/CD
  • авторизация JWT и OAuth
  • логирование
  • кеширование ответов сервера
  • покрытие тестами

Стек

  • Node.js — платформа для запуска JavaScript
  • SWC — веб-сборщик (более быстрый, чем стандартный Babel)
  • pnpm — пакетный менеджер
  • TypeScript — язык программирования
  • NestJS — основной бэкенд-фреймворк
  • Fastify — фреймворк под капотом NestJS (более быстрый, чем стандартный Express)
  • Drizzle — ORM
  • Jest — фреймворк для тестирования
  • Swagger — инструмент документирования API
  • ESLint — статический анализатор кода
  • Prettier — форматировщик кода
  • Docker — платформа для контейнеризации

Установка и запуск

  1. Клонируйте репозиторий и перейдите в его папку.
  2. Создайте файл .env на основе .env.template и настройте все описанные там сервисы.

В частности сервер PostrgeSQL можно поднять как вручную, так и через Docker compose командой

docker-compose up -d
  1. Заполнить справочные таблицы данными можно командой:

Warning

Эта команда очистит все данные справочных таблиц перед их заполнением!

pnpm db:seed

Остальные данные можно внести в графическом режиме, открыв Drizzle Studio:

pnpm db:studio

Посредством Docker

  1. Установите Docker.
  2. Запустите сборку образа:
docker build -t kntista-api .
  1. Теперь запускать образ можно командой:
docker run -d --name kntista-api-standalone -p 3000:3000 kntista-api

Без использования Docker

  1. Установите Node.js и пакетный менеджер pnpm.
  2. Установите зависимости:
pnpm i
  1. Соберите проект:
pnpm build
  1. Теперь запускать проект можно командой:
pnpm start:prod

Модификация

Запуск сервера в режиме отладки осуществляется командой:

pnpm start:debug

Документация API в Swagger UI, где его можно будет протестировать, при запуске на локалхосте со стандартными параметрами доступна по ссылке https://localhost:3000/docs.

Прочие скрипты, необходимые для запуска линтера, форматировщика, тестов и т. д. находятся в файле package.json.