Разработать бекенд на Strapi.io

40 000 руб. за проект
01 ноября 2021, 20:34 • 3 отклика • 48 просмотров
Необходимо разработать бекенд по ТЗ ниже:


Тех стек
Backend - strapi.io + PostgreSQL + GraphQL


Требования Backend:


Бекенд реализован в виде монолитного приложения с использованием Strapi 3, использовать встроенные плагины для генерации документации Swagger, GraphQL Playground.

Права доступа должны быть минимальными для каждой роли пользователя согласно описанию приложения.

Самописные контроллеры Strapi должны быть задокументированы в JSDoc.

Push-уведомления в приложение могут использоваться на самописных контроллерах.

Для запуска временных функций используется стандартный CRON Strapi.

Сервис должен взаимодействовать с БД PostgreSQL.

Механизм авторизации должен происходить стандартным методом Strapi с использованием username / password и отдавать в результат JWT.

Для сборки на удаленных серверах сервис должен использовать Docker.

Для отказоустойчивости сервис должен быть запущен внутри Kubernetes на следующем этапе.




О Приложении

Приложение и Сайт

(Ссылка на фигму)

Состоит из:

  • Экран входа в систему
  • Экран выбора голосования. Голосование проходит 2 раза в месяц: с 1 по 4 число и с 16 по 20.
  • Экран голосования. Написан отдел (например как на скрине: «участок по погрузки - выгрузки №1-2 …») И список из фамилий с оценками от 0 до 5 Так же около или ниже каждой фамилии кнопка «добавить комментарий», после чего открывается окно ввода комментария по выбранному человеку.
  • Экран результатов. Показывает результаты голосования по пользователю.

Важно! Голосование должно проходить анонимно. Выбор должен храниться в базе обезличено. Например: Голосование проходит в течении 3 дней. В группе голосующих 4 человека. 3 проголосовало, 1 - нет. Результат появляется на следующий день, после дня голосования, в 8 утра по местному времени. Все могут смотреть свои результаты (как проголосовали за него). При этом выводится средний балл. Не проголосовавшему приходят напоминания в виде push-уведомлений. Если же после этого человек не проголосовал - происходит запись в базу данных, которую видит отдел кадров, и оценка не проголосовавшего обнуляется.


Админка


Состоит из:


  • Экран входа в систему
  • Основной экран
Разделен на 2 зоны: левая часть - выбор экранов, правая часть - окно с данными и настройками.


Экраны:

  • голосование
  • участники
  • результаты
  • настройки

Голосование:

Выбор дат и отделов для голосования. Обычно голосование проходит 2 раза в месяц: с 1 по 4 число и с 16 по 20. Отправка push-уведомления о предстоящем голосовании или переноса голосования.

Возможно переходить в экран участников (описаный ниже) через кнопку редактирования на зоне выбора отдела.


Участники:

Таблица со всеми сотрудниками с фио, отделом, компанией и другими данными, привязанными к человеку. Выгрузка из 1С/обновление с 1С.

Возможно редактировать все поля, или те, которые разрешено редактировать пользователю.


Результаты:


Таблица с результатами: фио, отдел, завод, результат. Имеется возможность искать сотрудников, выбирать результаты за период, читать комментарии о сотрудниках.

Настройки:

Добавление пользователей админки, управление правами, логи по использованию админки.