digital-garden/source/курсы/otus/Архитектор высоких нагрузок 2024/Домашнее задание OTUS. Социальная сеть.md

67 lines
3.2 KiB
Markdown
Raw Normal View History

2024-06-13 21:01:37 +03:00
---
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 коллекцию