Categorygithub.com/Amore14rn/888Starz_test
repository
0.0.0-20230910204426-a4a11c618046
Repository: https://github.com/amore14rn/888starz_test.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

Hi there, We're Crypto.Pulse Roman

888Starz

Golang, SQL

Описание

Необходимо спроектировать и разработать сервис, который работает с реляционным хранилищем данных PostgreSQL. Основной упор необходимо сделать на программную архитектуру: слои, маппинги структур данных между слоями приложения.

Основные сущности

User

  • id
  • firstname
  • lastname
  • fullname (firstname + lastname) age
  • is_married
  • password

Product

  • id
  • description
  • tags
  • quantity

Что надо сделать

Реализовать следующий функционал:

  • Регистрация пользователя (не младше 18 лет);
  • Пароль не меньше 8 символов;
  • Пользователь может заказать продукт;
  • У пользователя может быть много заказов;
  • Заказ может содержать множество продуктов;
  • Если, продуктов не осталось на складе – его нельзя заказать;
  • Нужна историчность заказов и продуктов в заказе (например старая цена).

Тесты

Покрыть тестами несколько (2-3) функционально важных методов.

Тезисно

Не все из перечисленного ниже обязательно реализовывать.

  • REST API
  • Слоеная архитектура
  • Логирование (в контексте) - middleware
  • Трасировка, opentelemetry - middleware
  • Sentry - ловить паники в middleware
  • На каждом слое своя структура данных
  • Поток данных идет как в чистой или гексогональной архитектуре

Запуск

=== mod ===

make mod

=== fmt ===

make fmt 

=== Linter ===

make install-linter
make lint
make lint-fast