Skip to content

Latest commit

 

History

History
33 lines (22 loc) · 3.6 KB

File metadata and controls

33 lines (22 loc) · 3.6 KB

Junior backend developer 2023

Успешное выполнение задания подтверждает наличие у вас минимальных базовых знаний, необходимых для самостоятельной работы над backend проектом начального уровня в 2023 году.

Затруднения при реализации задания свидетельствуют о наличии пробелов в знаниях и требуют дополнительной проработки. Нет ни одного образовательного курса, который бы охватывал весь необходимый стек, но отдельно по каждой теме имеется избыточная информация, включая видео и туториалы.

Начальный стек технологий backend: Python 3, Django 3, MySQL/PostgreSQL, MongoDB, Redis, Memcached, RabbitMQ, Celery, Elasticsearch, REST, GraphQL.

Обязательно нужно иметь хорошие знания основ программирования и самого языка, ООП, Style Guide, PEP8, уметь гуглить и находить нужную информацию, знать последние версии основных инструментов, базовые навыки работы с Git, virtualenv, pip, уметь развернуть и запустить рабочий проект на сервере под gunicorn.


ЗАДАНИЕ

Необходимо написать бекенд для работы с приложением React, которое позволяет пользователю зарегистрироваться и загрузить файл на сервер для обработки. После асинхронной обработки пользователь сможет посмотреть информацию о своем файле. Непринципиально какая именно обработка файла: сервер может посчитать количество строк в файле, обрезать видео файл и т.д.

Приложение React общается с бекендом по GraphQL. Соответственно нужны методы для регистрации, логина, логаута пользователей, аплоада файла и просмотра информации о нем.

Написание собственного кода при наличии готовых проверенных open source библиотек может быть рассмотрено как неумение пользоваться поиском, оценивать собственные трудозатраты и выставлять приоритеты задач. Нам ваши велосипеды не нужны.

Проверка результата выполнения задания: тесты, Postman.


Рекомендуемый выбор технологий в порядке увеличения сложности

Фреймворк: Django, Flask
Файловое хранилище: локально, S3
Реляционная БД: MySQL, PostgreSQL
NoSQL БД: MongoDB, Redis, Elasticsearch
Кеширование: Memcached, Redis
Регистрация пользователей: Email, Google
Авторизация пользователей: Токены(JWT), Auth0, Keycloak
Distributed tasks: RabbitMQ/Redis+Celery, Kafka
Поиск: Elasticsearch