Было сделано в рамках одного ТЗ
не актуальнно.
#Запуск Фронт и бэк лежат в своих отдельных папках
оба написаны на NodeJS и требуют для запуска как ноду так и npm помимо этого в корневой папке нужно установить зависимость concurently для простоты запуска приложений
npm i
после этого запустить скрипты (они установят соответствующие зависимости в подпапках)
npm run start
это может занять какое то время (при желании можно и вручную установить зависимости и запустить приложения)
Фронт запустится на http://localhost:8080
Бэк сваггер на http://localhost:3000/api
#Стэк Бэк на NestJS (https://nestjs.com)
Фронт на VueJS (v3) + Quasar framework (https://quasar.dev)
#Комментарии и мысли Обычно при задаче задаю кучу уточняющих вопросов чтобы не было недопонимания, здесь такой возможности не было так что некоторые вещи могут быть неправильно сделаны.
Время и так было превышено в н раз, так что кое-что может быть опущено или упрощено.
####По фронту: Многое взято из фреймворка из коробки, для экономии и без того раздутого времени. Основной компонент смотреть тут
frontend/src/components/FormContainer.vue
На маленькие компоненты не стал разбивать.
Кой-какая логика лежит в миксине.
С composition API и TS на фронте не стал заморачиваться из-за времени
####По бэку: За основу взял Nest тк мне оч нра. и удобно.
Основная АПИ логика лежит тут
backend/src/decision
Основная бизнес логика лежит тут
backend/src/decision/decison/rules/compute.ts
может быть немного сумбурно организованно но я старался чтобы было очевидно сразу как и что работает.
Хотелось избежать кучи if и чтобы было просто, понятно, не сложно вносить изменения и адаптировать в будущем.
Опять же из-за сроков и тп, мог упустить что-то, что-то не так понял наверняка (могут быть мелкие ошибки и опечатки), но основная идея и мой уровень должен быть ясен из кода.
Как-то так. Был бы признателен за фидбэк (если есть другой подход я бы оч хотел ознакомиться), спасибо за задачку, мне понра.