ДЗ
Клон LeetCode - Backend - Шаг 1 - Проектирование и разработка RESTful API.
**Клон LeetCode**
В блоке Node.js мы создадим приложение, аналогичное LeetCode для подготовки технических скиллов. Оно хранит различные задачи по программированию, которые часто задают на собеседованиях в крупных технологических компаниях. Пользователи могут решать задачи, отправлять свои решения и проверять их на корректность. Кроме того, на платформе есть обсуждения, где пользователи могут обсудить различные подходы к решению задач, а также учебные материалы и мок-интервью.
- Приложение ДОЛЖНО:
- хранить задачи, у которых есть описание, примеры входных и выходных данных, уровень сложности, теги (например, "алгоритмы", "структуры данных", "динамическое программирование"), дополнительные материалы (файлы, ссылки)
- предоставлять возможность логина и логаута
- содержать роли пользователей (пользователь, администратор, интервьюер) и проверять, имеет ли пользователь определенные разрешения в системе; пользователи должны иметь оставлять комментарии к задачам и обсуждать возможные решения; пользователи могут оценивать задачи, что помогает другим участникам понять сложность и интересность задачи; нтервьюер должен иметь возможность видеть профиль пользователей, редактировать их рейтинг; интервьюеры могут добавлять, редактировать и удалять задачи, теги или категории.
- содержать REST API для управления ресурсами приложения
- использовать базу данных для хранения информации о задачах, пользователях
- Приложение МОЖЕТ:
- быть построено на `ExpressJS, Fastify` или `NestJS`
- использовать PostgreSQL
- иметь дополнительные функции, такие как поиск по сайту по запросу, загрузка файлов и т. д.
Проектирование и разработка API приложения Клон LeetCode
- Используйте описание приложения LeetCode
- Опишите модель данных, которые вы планируете использовать, добавьте описание проекта в свободном формате в README.md
- Определите endpoints API, коды ответов, типы данных и примеры с использованием https://editor.swagger.io,импортируйте и сохраните файл с техническим описанием (см примеры https://www.udemy.com/developers/affiliate/, https://developer.github.com/v3/users/, https://docs.gitlab.com/ee/api/issues.html)
- Напишите тесты для API
- Разработать RESTful API. API должен позволить создавать, просматривать, обновлять и удалять информацию о задачах и пользователях. Тесты из прошлого шага должны проходить.
- Выберите и реализуйте стратегию авторизации, а также регистрации новых пользователей.