Написать микросервис

Арсений7 років у сервісі
Дані замовника будуть вам доступні після подання заявки
20.04.2019

Добрый день! 

Задача — Написать микросервис для регистрации и хранения учётных записей пользователей приложения.

Предпочтительный стек nodejs-typescript.

Кодовую базу микросервиса необходимо покрыть unit тестами: предпочтительно использовать chai mocha.

Ко всем методам сервиса необходимо написать документацию: что принимают, что возвращают, коды ошибок: документация в формате markdown.

Предпочтительно использовать:

  • SESE подход к написанию функций.
  • Иммутабельность Методов
Для микросервиса необходимо настроить докер контейнер в двух вариантах: dev с логгированинм и отладкой и production.

Методы микросервиса

  • Login
  • Logout
  • Auth
  • Check token
  • User get
  • User update
  • User delete
  • Get users
  • get users online
  • Get activity
  • Get credentials
  • start session
  • end session
  • check session
Микросервис будет иметь встроенную базы данных.
  • для пользователей
  • для хранения токенов
Возможны варианты для пользователей:
  • SQLite
  • Maria dB
Возможные варианты для токенов:
  • redis
  • memcached
Микросервис будет общаться по tcp/ip протоколу.

Предпочтительно использовать net (nodejs).Микросервис состоит из нескольких частей:

  • Бд пользователей
  • Бд для токенов
  • Почтовый сервис
  • Основная бизнес логика
  • Провайдер для общения с внешним миром (tcp/ip)
Примечания
  • Необходимо оставить возможность для тестирования: несколько тестовых почт, токенов, пользователей.
  • Необходимо оставить возможность заменить tcp провайдер на rabbit или иной не вмешиваясь в основную логику приложения
  • На микросервисе не хранятся картинки avatar пользователей, а только ссылки на них. Перед сохранением ссылки проверить её валидность: места информацию и вес
  • Микросервис не поднимает почтовый map или smtp сервер, а подключается через сторонний и реализует только логику отправки писем.
  • Шаблоны писем хранятся статическими файлами на сервере
В откликах прошу указывать ссылки на код с релевантным опытом, количество свободных рабочих часов в неделю.