Skip to content

Repository files navigation

ShtrafovNet

Build Status

Прототип сервиса аукцинов на чистой архитектуре

Структура проекта

Запуск

Запуск сервера

  • Настраиваем env file ---> migrate -path /internal/infrastructure/migrations -database "postgresql://{DB_USER}:{DB_PASS}@{DB_HOST}:{DB_PORT}/{DB_NAME}?sslmode=disable" -verbose up --->cd cmd/ShtrafovNet--->go run .
  • Собрать и запустить докер образ docker build . --file Dockerfile -t app:latest--->docker-compose up
  • Или просто использовать Makefile make up

Общее описание

Спасибо за интересную задачу, было интересно делать. Реализовал все необходимые функции, кроме тестов (не успел). Аунтификация реализована через JWT. После входа в систему выдается токен, который затем необходимо передавать через Заголовок Auntification. Интересно было реализовывать полноценную чистую архитектуру: программа разделена на 4 слоя - доменный - основные структуры, методы и интерфейсы, инфраструктурны - взаимодействие со сторонними сервисами, приложение - основной слой и слой презентации - ручки для GRPC и REST API

Спецификацию api можно посмотреть в папке api

/ShtrafovNet │ ├── /api │ └── /swagger.yml ├── /cmd │ └── /ShtrafovNet │ └── main.go - ОСНОВНОЙ ПАКЕТ | └── config.env - файл конфигурации | ├── /internal │ └── /domain │ | └── entity - пакет основных сущностей │ | └── errors - ошибки доменного слоя │ | └── interfaces │ | └── odt - структуры для обмена данными между слоями │ | └── service - ключевые методы | | │ └── /infrastructure │ | └── errors - ошибки инфраструктурного слоя │ | └── migrations - файлик с миграциями бд │ | └── repository - реалезации интерфейсов из доменного слоя для интеграции сторонних сервисов | | │ └── /application │ | └── errors - ошибки слоя приложениия │ | └── auction - функционал, связанные напрямую с аукционами │ | └── config - подтягивает конфиги из env │ | └── database - подключение к бд │ | └── logger - имплементация логгера │ | └── usesrs - функционал для определения пользователей │ | └── workers - воркер | | │ └── /presentation │ └── errors - ошибки слоя презентации │ └── server - пакет релизующий grpc и grpc Gateway | ├── /log │ └── log.log - файл с логами | ├── Dockerfile - файл создания образа докер ├── docker-compose.yml - подъем образа и базы данных ├── Makefile

About

Тестовое задание для ШтрафовНет

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages