diff --git a/README.md b/README.md index 8d1ebd5..f2c5246 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,12 @@ -### Тестовое задание -Репозиторий: `em-shop` +### Тестовое задание на вакансию Junior Node.js developer (Effective Mobile) + +Ссылка на вакансию: `https://hh.ru/vacancy/110675692` +Тестовое задание: `https://docs.google.com/document/d/1FbMiG5rlmhJvfsw5C3bkTUSS9OQK5chpYicQHL8WNjQ/edit?tab=t.0` + +Репозиторий `em-shop` +Ссылка на git репозиторий с проектом: `https://git.checkerwars.com/leo/em-shop` + Исполнитель: `Leonid Ost` Email: `4267@mail.ru` @@ -9,13 +15,18 @@ Site: `checkerwars.com` Описание всех API находится в файле `API.rest` -### Stocks +Все сервисы находятся в docker контейнерах: +Запустить все: `run.all.sh` +Остановить все: `stop.all.sh` + + +### Stocks (Express.js) Path API `http://localhost/stocks/api/` -### History +### History (Express.js Typescript) Path API `http://localhost/history/api/` -### User Swagger +### Users (Nest.js) Path API `http://localhost/users/api/` Swagger: `http://localhost/users/api/docs/` @@ -23,18 +34,18 @@ Swagger: `http://localhost/users/api/docs/` ### Traefik dashboard Path: `http://localhost/dashboard/` -User: admin -Password: admin +User: `admin` +Password: `admin` ### RabbitMQ dashboard Path: `http://localhost:15672/` -User: rabbit -Password: 5jbya3ptfrezyop6gy8w +User: `rabbit` +Password: `5jbya3ptfrezyop6gy8w` -# PostgreSQL -Host: postgres -Port: 5432 -User: postgres -DB: postgres -Password: 2wroxrnr8fdxicvw2nsd \ No newline at end of file +### PostgreSQL +Host: `postgres` +Port: `5432` +User: `postgres` +DB: `postgres` +Password: `2wroxrnr8fdxicvw2nsd` diff --git a/Тестовое Node.js.txt b/Тестовое Node.js.txt new file mode 100755 index 0000000..8aec418 --- /dev/null +++ b/Тестовое Node.js.txt @@ -0,0 +1,41 @@ +**Задание 1** + +Нужно реализовать 2 сервиса. Один сервис остатков товаров в магазине. У товара могут быть следующие поля: +- PLU - артикул товара +- Название товара +- Количество товара на полке +- Количество товара в заказе +- Для какого магазина данных остаток +Данные денормализованы, их нужно привести к 2-3 нормальной форме. +Должны быть следующие endpoint: +- Создание товара +- Создание остатка +- Увеличение остатка +- Уменьшение остатка +- Получение остатков по фильтрам + - plu + - shop_id + - количество остатков на полке (с-по) + - количество остатков в заказе (с-по) +- Получение товаров по фильтрам + - name + - plu +Другой сервис истории действий с товарами. +В сервис “истории действий с товарами” нужно отправлять все события, которые происходят с товарами или остатками. Общение сервисов может происходить любым способом. Сервис “истории действий с товарами или остатками” должен иметь endpoint, который отдаст историю действий с фильтрами по: +- shop_id +- plu +- date (с-по) +- action +и постраничной навигацией. Фреймворк так же может быть любой, но не nest. Один из сервисов должен быть на JS, для второго можно использовать TS. СУБД - postgresql + + +**Задание 2** + +Нужно написать сервис, который работает с пользователями. В бд может быть более 1 миллиона пользователей (набить данными бд нужно самостоятельно. Например, написать миграцию, которая это сделает). Каждый пользователь имеет поля: +- Имя +- Фамилия +- Возраст +- Пол +- проблемы: boolean // есть ли проблемы у пользователя +Нужно сделать endpoint, который проставить флаг проблемы у пользователей в false и посчитает, сколько пользователей имело true в этом флаге. Этот сервис нужно реализовать на nestjs +