У нас в Appstorespy.com постоянно открыты вакансии для backend и frontend разработчиков, в том числе и на позиции уровня junior.

Успешное выполнение задания подтверждает наличие у вас минимальных базовых знаний, необходимых для самостоятельной работы над 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