---
date:
  - - 2024-02-29
zero-link:
  - "[[00 HighLoad]]"
parents:
  - "[[Архитектор высоких нагрузок - OTUS 2024]]"
linked:
---
## Полезные ссылки
- [Спецификация API](https://github.com/OtusTeam/highload/blob/master/homework/openapi.json)
	- [Swagger Editor](https://editor.swagger.io/)

## Задания
### Задание 1
#### Открытые вопросы
- [ ] Что подразумевается под "Интересы" в карточке пользователя? Какой это тип данных
	- Возможно ответ есть в спецификации

#### Описание задания
В результате выполнения ДЗ вы создадите базовый скелет социальной сети, который будет развиваться в дальнейших ДЗ.  

**В данном задании тренируются навыки:**
- декомпозиции предметной области;
- построения элементарной архитектуры проекта

Требуется разработать создание и просмотр анкет в социальной сети.

Для удобства разработки и проверки задания можно воспользоваться [этой спецификацией](https://github.com/OtusTeam/highload/blob/master/homework/openapi.json "этой спецификацией") и реализовать в ней методы:
- `/login`
- `/user/register`
- `/user/get/{id}`

**Функциональные требования:**
- Простейшая авторизация пользователя.
- Возможность создания пользователя, где указывается следующая информация:
	1. Имя
	2. Фамилия
	3. Дата рождения
	4. Пол
	5. Интересы
	6. Город
- Страницы с анкетой.

**Нефункциональные требования:**
- Любой язык программирования
- В качестве базы данных использовать PostgreSQL
- Не использовать ORM
- Программа должна представлять из себя монолитное приложение.
- Не рекомендуется использовать следующие технологии:
	- Репликация
	- Шардирование
	- Индексы
	- Кэширование

**Критерии оценки:**
- Оценка происходит по принципу зачет/незачет. 
- Есть возможность авторизации, регистрации, получение анкет по ID.  
- Отсутствуют SQL-инъекции.  
- Пароль хранится безопасно.
#### План
- [ ] Создать репозиторий в своем гитлабе
- [ ] Создать Dockerfile
- [ ] Создать docker-compose
	- [ ] Выбрать рекомендуемую версию Postgres
- [ ] В Readme описать запуск приложения
- [ ] Создать Postman коллекцию