Categorygithub.com/gogapopp/trainee-assignment
module
0.0.0-20250221113605-f9a4b96c0da1
Repository: https://github.com/gogapopp/trainee-assignment.git
Documentation: pkg.go.dev

# README

banner-service

Задание

Сервис баннеров Есть большое количество неоднородного контента, для которого необходимо иметь единую систему управления. В частности, необходимо показывать разный контент пользователям в зависимости от их принадлежности к какой-либо группе. Данный контент мы будем предоставлять с помощью баннеров.

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

Общие вводные Баннер — это документ, описывающий какой-либо элемент пользовательского интерфейса. Технически баннер представляет собой JSON-документ неопределенной структуры.

Тег — это сущность для обозначения группы пользователей; представляет собой число (ID тега).

Фича — это домен или функциональность; представляет собой число (ID фичи).

Один баннер может быть связан только с одной фичей и несколькими тегами При этом один тег, как и одна фича, могут принадлежать разным баннерам одновременно Фича и тег однозначно определяют баннер Так как баннеры являются для пользователя вспомогательным функционалом, допускается, если пользователь в течение короткого срока будет получать устаревшую информацию. При этом существует часть пользователей (порядка 10%), которым обязательно получать самую актуальную информацию. Для таких пользователей нужно предусмотреть механизм получения информации напрямую из БД.

Protocol

Described in the file api.yml.

How to compile (with docker)

make run

How to stop the application

make stop

Generating code from a specification

Install oapi-codegen and generate:

oapi-codegen -package=handler -generate="chi-server,types,spec" api.yaml > internal/handler/api.gen.go

Postman doc

The /signup method creates a user with the role
The /signin method returns a jwt token for user authorization and authentication in the service
...
other: documenter.getpostman.com

# Packages

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