Задания для Backend-стажировки на Node.js , Laravel или Django.
Задания для Backend-стажировки на Node.js
Задание 1. REST-сервис на Node.js
На Node.js написать REST-сервис со следующим функционалом:
Анализ текста на сайтах: сервис должен принимать на вход массив URL'ов, анализировать страницы по этим адресам, и возвращать PDF документ, в котором в таблице будут представлены три наиболее часто встречающихся слова длиннее 4 символов по каждому из URL'ов.
Примерно так:
http://yandex.ru
Программирование | Санкт-Петербург | Маркет
Разработка | Коллеги | тестирование
Использование библиотеки Hapi.js строго обязательно. Других ограничений по использованию библиотек нет.
Фронт для сервиса писать не нужно, достаточно просто API.
Что проверяет задание:
- работу с документацией библиотеки Hapi.js
- алгоритмику
- основы построения PDF-файлов и работа с шаблонизаторами
- способность к осознанному выбору и применению других библиотек, необходимых для выполнения проекта
- понимание асинхронности Node.js
Задание 2. Request-Reply - NATS
Реализовать микросервис api, основная задача которого - принимать запросы от клиента и направлять их в микросервис storage с помощью системы обмена сообщениями NATS. В качестве примера взаимодействия микросервисов необходимо реализовать тестовый маршрут GET api/test, который публикует сообщение в NATS.
Реализовать микросервис storage, основная задача которого - принимать запросы от микросервиса api и вызывать соответствующие методы репозитория. В качестве примера взаимодействия микросервисов, необходимо подписаться на сообщение, опубликованное в микросервисе api и указать тестовый обработчик, который вызывает метод find репозитория test.
Стек технологий:
- TS
- Node
- NATS
- typeORM
- Postrgesql
- Docker* (по желанию)
Диаграмма последовательностей успешного выполнения запроса
Полезные материалы по микросервисной архитектуре
- NATS Docs
- Request-Reply - NATS Docs
- Репозиторий с примером реализации микросервисной архитектуры
- Статья в основном про трассировки, но в ней также упоминается микросервисная архитектура. Диагностируем проблемы в микросервисной архитектуре на Node.js с помощью OpenTracing и Jaeger / Хабр
- Драйвер NATS
Задание для Backend-стажировки на PHP и Laravel
Реализовать REST API для сайта по продаже пиццы
Все endpoins должны быть описаны с помощью OpenApi (swagerUI) и корректно отрабатывать. Каждая точка должна быть покрыта тестами.
Основные требования
- Модели
Все таблицы должны содержать поля дата создания и дата редактирования.
- Пользователь (Фамилия, Имя, Отчество, телефон, email, дата рождения, пароль)
- Адреса (город, улица, дом, квартира, подъезд, этаж, домофон, шлагбаум, комментарий)
- Способ оплаты
- Способ доставки
- Категории товаров
- Товары (наименование, категория, состав, калорийность)
- Администратор
- Клиент (зарегистрированный пользователь)
- Гость
Функционал
Все запросы должны быть с учетом ролей (Например: авторизованный клиент, не может добавить товар или категорию товара).
- Регистрация/Авторизация
- CRUD Адреса
- CRUD Категории товаров
- CRUD Товары
- CRUD Заказы
Реализация дополнительного функционала будет преимуществом.
Задание для Backend-стажировки на Python и Django
Создайте веб-приложение на Django, которое будет реализовывать функциональность библиотеки книг.
Основные требования
- Модели
- Книга (название, автор, год издания, краткое описание, изображение обложки)
- Автор (имя, дата рождения, краткая биография)
- Пользователь (стандартная модель пользователя Django с расширенными полями, если необходимо)
- Функционал
- Регистрация/Авторизация пользователей
- Просмотр списка книг
- Просмотр детальной информации о книге
- Поиск книг по названию или автору
- Возможность добавлять, редактировать и удалять книги (только для администраторов или авторизованных пользователей)
- Возможность оставлять комментарии к книгам (для авторизованных пользователей)
- API
- Реализовать API endpoints для просмотра списка книг и детальной информации о книге. Используйте Django Rest Framework.
- Дополнительные задачи (будет плюсом)
- Реализация пагинации для списка книг
- Возможность рейтинга книг пользователем
- Использование Docker для развертывания приложения
- Автоматические тесты для основного функционала
- Код должен быть написан аккуратно и следовать PEP 8.
- Комментарии к сложным или неочевидным местам.
- Четкое разделение логики между views, models и templates.
Наши курсы
На прошлую стажировку мы собрали более 2000 заявок по 10 направлениям. В состав финальных групп вошли студенты с отличными оценками.
Новичкам в направлении Backend-разработки без опыта разработки на Node.js, Laravel или Django рекомендуется пройти курсы Backend-разработки, после которого можно смело отправляться на стажировку!