Подключите нашего Telegram-бота для уведомлений о новых проектах

Заказ закрыт
[Nest.JS / NestJS]: Реализация контроллеров авторизации, каталога товаров и email

Разместить заказ
m
Заказчик
Отзывы фрилансеров: + 16 - 0
Зарегистрирован на сайте 9 лет и 8 месяцев
Бюджет: по договоренности
## Описание задачи
Используя NestJS необходимо разработать три контроллера прелогин зоны будущего мобильного приложения:
1. **Контроллер авторизации** — для управления процессом авторизации пользователей.
2. **Контроллер каталога товаров** — для работы с каталогами товаров.
3. **Контроллер email** — для отправки email-сообщений.

## Требования к реализации
1. **Технологический стек:**
   – Backend: NestJS (версия 9+)
   – База данных: PostgreSQL

2. **Методы контроллеров:**
   ### Контроллер авторизации:
   – `POST /auth/v1/login`: Запрос на отправку magic link на email пользователя.
     – **Пояснение:** Magic link — это уникальная ссылка, отправляемая пользователю на email для упрощения процесса авторизации. Пользователь переходит по ссылке, и система автоматически подтверждает его личность, предоставляя доступ к аккаунту без необходимости ввода пароля. Это повышает удобство и безопасность авторизации.
   – `POST /auth/v1/session/permanent`: Получение постоянного токена сессии на основании magic link и email.
   – `POST /auth/v1/session/temporary`: Получение временного токена сессии на основании постоянного токена.
   – `DELETE /auth/v1/session/permanent`: Завершение сессии пользователя (разлогин).

   ### Контроллер каталога товаров:
   – `GET /catalogs/v1`: Получение списка каталогов товаров.
   – `POST /catalogs/v1`: Создание нового каталога товаров.

   ### Контроллер email:
   – `POST /email/v1/send`: Отправка email-сообщения.

3. **Описание методов:**
   Подробное описание каждого метода, включая параметры запросов, ответы и возможные коды ошибок, находится в следующих файлах:
   – `POST-auth-v1-login.md`
   – `POST-auth-v1-session-permanent.md`
   – `POST-auth-v1-session-temporary.md`
   – `DELETE-auth-v1-session-permanent.md`
   – `GET-catalogs-v1.md`
   – `POST-catalogs-v1.md`
   – `POST-email-v1-send.md`

4. **Требования к коду:**
   – Код должен быть написан с использованием TypeScript.
   – Использовать подход Dependency Injection для работы с сервисами.
   – Реализовать обработку ошибок и возвращать соответствующие HTTP-коды.
   – Логика работы с базой данных должна быть вынесена в отдельные сервисы.

5. **Тестирование:**
   – Написать unit-тесты для всех методов контроллеров.
   – Для написания тестов необходимо использовать фреймворк Jest.
   – Покрытие тестами должно быть не менее 80%.
   – Проверка покрытия тестами будет выполняться с помощью команды:
     ```bash
     npm test — --coverage
     ```

6. **Обработка ошибок:**
   – Общие коды ошибок, используемые в нескольких методах контроллеров, должны быть вынесены в отдельный модуль или сервис для переиспользования.

## Требования к окружению
   – Приложение должно быть упаковано в Docker-контейнер.
   – База данных PostgreSQL должна работать в отдельном Docker-контейнере.
   – Необходимо предоставить `docker-compose.yml` для упрощения запуска и настройки окружения.

## Дополнительная информация
Для понимания, как методы контроллеров будут использоваться, в файле `Прелогин.svg` справочно приведена карта экранов прелогин зоны приложения.

## Дополнительные материалы

1. **Swagger-документация:**
   – Во вложении предоставлен файл `swagger.yaml`, содержащий описание API.

2. **SQL-запросы:**
   – Во вложении предоставлен SQL-запрос для создания схемы базы данных в файле `init.sql`

## Приемка работы

1. **Предоставление доступа:**
   – Я предоставлю сервер, а также логин и пароль для доступа к нему.

2. **Запуск контейнеров:**
   – По результатам работы разработчик должен развернуть Docker-контейнеры с приложением и базой данных на предоставленном сервере.
   – Контейнеры должны быть запущены и работать корректно.

3. **Проверка функциональности:**
   – Приложение должно быть полноценно работоспособным, чтобы я мог приступить к реализации прелогин зоны мобильного приложения.
   – Все методы контроллеров должны быть протестированы и работать согласно описанию.

4. **Доступ к базе данных:**
   – После завершения работы разработчик должен предоставить путь, логин и пароль для подключения к базе данных с моего компьютера с использованием DBeaver.
   – Это необходимо для целей отладки и проверки данных в процессе разработки фронтенда.

5. **Исходный код:**
   – Передается пулл реквестом в репозиторий заказчика
Разделы:
Заказ
Опубликован:
20.04.2025 | 13:05 [поднят: 20.04.2025 | 13:05] [последние изменения: 20.04.2025 | 20:23]
Заказ находится в архиве
Откликнуться Посмотреть другие заказы

Теги: нужен программист, резюме программиста, требуется программист, резюме веб программиста

Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».