Skip to content

meteora-pro/hackaton-hr

Repository files navigation

Ссылки на демки

Как запустить проект

Необходимое ПО для запуска

  1. Docker
  2. NodeJS

Запуск

  1. Нужен Docker и docker-compose
  2. Выполнить команду npm start up:compose
  3. Первый раз могут довольно долго собираться образы, последующие запуски будут быстрыми
  4. После того как все стартует можно смотреть приложение:
    1. Фронтент
    2. Api-Docs

Используемые технологии

  1. Использован один язык для написания backend и frontend - TypeScript
  2. Управление монорепозиторием Nx
  3. Frontend - Angular (Ant design, State management)
  4. Backend (NodeJs, NestJs, TypeOrm)
  5. База данных Postgres
  6. Контейниризация Docker
  7. Деплой Kubernetes, Helm, Gitlab CI/CD
  8. Для ML использовался python и jupyter notebooks

Как запустить в режиме разработки

  1. Нужны nodejs, npm, docker
  2. Установить зависимости командой npm i
  3. Настроить коннект к серверу баз данных и создать базу данных
  4. Запуск контейнера с базой данных npm start up:compose
    1. Остановка контейнера с базой данных npm start down:compose
  5. Запустить с помощью команды npm start (для запуска всех сервисов)
    1. Или для старта бэкенда отдельно npm run start:api
    2. Или для старта фронта отдельноnpm run start:fe

Структура проекта

  1. apps/ - тут лежит основной код сервисов
  2. config/ - .env файлы для бэкенд сервисов
  3. deploy/ - docker файлы и конфиги для деплоя в kubernetes
  4. libs/ - исходных код для общих библиотек в проекте
  5. ml-sandbox/ - код на python для сбора данных и эксперементы с модельками

Как добавить миграцию

установить tsnode глобально: npm i -g ts-node

Сгенерить миграцию по схеме: npm run typeorm -- migration:generate -n MigrationName

Добавить созданную миграцию в массив с миграциями (all.migations.ts)

Аналитика и ML

Все наработки в том числе сбор данных лежит в папке /ml-sandbox

Были попытки использовать модели fasttext и tfidf, работающую модель собрать не получилось, поэтому матчинг делается по расстояние левенштейна по ключевым словам и так же проводится ручной параметрический и частотный анализ данных и их оценка.

Предиктивная система конструктора построена на частотном анализе и анализе расстояния левенштейна

Все датасеты деперсонализированы и получены из открытых источников.