https://github.com/scorpi-on/kntista-api
Backend for the KNTista project
https://github.com/scorpi-on/kntista-api
backend docker drizzle-orm fastify nestjs rest-api swagger
Last synced: 4 months ago
JSON representation
Backend for the KNTista project
- Host: GitHub
- URL: https://github.com/scorpi-on/kntista-api
- Owner: Scorpi-ON
- License: mit
- Created: 2025-01-08T18:52:19.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-03-05T08:46:12.000Z (4 months ago)
- Last Synced: 2025-03-05T09:33:27.014Z (4 months ago)
- Topics: backend, docker, drizzle-orm, fastify, nestjs, rest-api, swagger
- Language: TypeScript
- Homepage:
- Size: 541 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# KNTista-api
[](https://opensource.org/licenses/MIT)
[](https://github.com/Scorpi-ON/KNTista-api/releases)
[](https://github.com/Scorpi-ON/KNTista-api/releases)
[](https://github.com/Scorpi-ON/KNTista-api)[](https://github.com/Scorpi-ON/KNTista-api/actions/workflows/linter.yaml)
[](https://github.com/Scorpi-ON/KNTista-api/actions/workflows/codeql.yaml)Бэкенд для проекта KNTista
## Особенности реализации
- отслеживание активности на факультете:
- [x] возможность заполнить справочники БД данными
- [x] CRUD-операции со всеми сущностями
- [x] создание DOCX-отчётов об активности
- [x] документация Swagger
- [ ] авторизация JWT и OAuth
- [ ] логирование
- [ ] кеширование ответов сервера
- [ ] покрытие тестами## Стек
- **Node.js** — платформа для запуска JavaScript
- **SWC** — веб-сборщик (более быстрый, чем стандартный Babel)
- **pnpm** — пакетный менеджер
- **TypeScript** — язык программирования
- **NestJS** — основной бэкенд-фреймворк
- **Fastify** — фреймворк под капотом NestJS (более быстрый, чем стандартный Express)
- **Drizzle** — ORM
- **Jest** — фреймворк для тестирования
- **Swagger** — инструмент документирования API
- **ESLint** — статический анализатор кода
- **Prettier** — форматировщик кода
- **Docker** — платформа для контейнеризации## Установка и запуск
0. Клонируйте репозиторий и перейдите в его папку.
### Посредством Docker
1. Установите Docker.
2. Создайте файл `.env` на основе [.env.template](.env.template) и настройте все описанные там сервисы.
3. Запустите сборку образа:```shell
docker build -t kntista-api .
```4. Теперь запускать образ можно командой:
```shell
docker run -d --name kntista-api-standalone -p 3000:3000 kntista-api
```...
### Без использования Docker
1. Установите Node.js и пакетный менеджер pnpm.
2. Установите зависимости:```shell
pnpm i
```3. Создайте файл `.env` на основе [.env.template](.env.template) и настройте все описанные там сервисы.
4. Если БД не заполнена, создайте необходимые таблицы:```shell
pnpm db:push
```Заполнить справочные таблицы данными можно командой:
```shell
pnpm db:seed
```> [!WARNING]
> Эта команда очистит все данные справочных таблиц перед их заполнением!Остальные данные можно внести в графическом режиме, открыв Drizzle Studio:
```shell
pnpm db:studio
```5. Соберите проект:
```shell
pnpm build
```6. Теперь запускать проект можно командой:
```shell
pnpm start:prod
```## Модификация
Запуск сервера в режиме отладки осуществляется командой:
```shell
pnpm start:debug
```Документация API в Swagger UI, где его можно будет протестировать, при запуске на локалхосте со стандартными параметрами
доступна по ссылке https://localhost:3000/docs.Прочие скрипты, необходимые для запуска линтера, форматировщика, тестов и т. д. находятся в
файле [package.json](./package.json).