--- 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 коллекцию