Заказ закрыт
Реализовать backend на python

Откликнуться
a
Заказчик
Отзывы фрилансеров: + 26 - 0
Зарегистрирован на сайте 11 лет и 6 месяцев
Бюджет: 1500 ₽/час
Реализовать rest api

1. Авторизация (jwt access refresh tokens) не изобретать велосипед – взять проверенную либу (где можно задавать константы smtp, сколько длится refresh token, сколько длится ссылка для сброса пароля и т.д)
- /login
- /registration (с подтверждением по емейл)
- /recovery password
Все ресты далее фильтруют по залогиненому юзеру:
- если user.is_admin = true тогда не фильтруем по user_id отдаем все данные

2. Backend должен принимать файлы формата zip размером от 1кб до 1гб.
- Не использовать ОЗУ для хранения целиком файла – сохраняем батчами сначала на сервер иначе фиаско т.к. на сервере будет ОЗУ не так много как хотелось бы
- потом льем в сторадж НО без FIFO если 100 файлов в очереди значит все 100 Сразу передаем их в сторадж на хранение (Яндекс диск или любой другой)
Предложите где выгодно дешево хранить файлы – пример  Яндекс Диск и прочие сервисы РФ чтобы не на своем сервере до 3 Тб
сделать абстракцию Стораджа будь то  Яндекс 360 или другой сервис потом подключим

База данных:

- User
id – создает Бек
is_admin – создает Бек
email – String – передаем с фронта POST запросом
password – String – передаем с фронта POST запросом
active – bool – создает Бек – после подтверждении почты
updated_at – создает Бек – после восстановлении пароля
deleted_at – пригодится потом
created_at – создает Бек

- Document
id – создает Бек
hash – создает Бек
user_id – создает Бек
name – String – передаем с фронта POST запросом /task/upload
region – String – передаем с фронта POST запросом /task/upload
district – String – передаем с фронта POST запросом /task/upload
address – String – передаем с фронта POST запросом /task/upload
custom_props – String – передаем с фронта POST запросом /task/upload
valid – int – передаем с фронта POST запросом /task/upload
type – String – передаем с фронта POST запросом /task/upload
date_doc – передаем с фронта POST запросом /task/upload
deleted_at – пригодится потом
created_at – создает Бек

- Attachment
id – int – создает Бек
hash – String – создает Бек
user_id – int – создает Бек
document_id – int – создает Бек ссылка на таблицу Document
url – String – создает Бек
name – String – Имя Файла – создает Бек
size – int – вес файла – создает Бек
extension – String – расширение – создает Бек
deleted_at – пригодится потом
created_at – создает Бек

- Task
id – int – создает Бек
user_id – int – создает Бек
document_id – int – создает Бек ссылка на таблицу Document
status – int – создает Бек 0 – еще не запущена  1 – в процессе  5 – успешно завершена 10 – ошибка
message – String  – создает Бек
updated_at – создает Бек – при смене статусов ставим дату
deleted_at – пригодится потом
created_at – создает Бек

Бизнес Логика (можете свою предложить):
--> TASK
1. /task/upload – загружаем файл (POST Multipart закачка файла с параметрами)
1.1. Создаем записи в БД
- создаем запись в таблице – Document
- создаем запись в таблица – Task
1.2. запускаем Celery или иной Воркер
1.3. После загрузки в Сторадж,
---- Celery обновляет значения в таблице Task
---- Если успешно то создем запись в таблице Attachment заполняя все поля от ответа стораджа
(к примеру поле status – int = 0 – еще не запущена или 1 – в процессе или 5 – успешно завершена или 10 – ошибка)
2. /tasks?doc={document_id} GET – отдаем по связи document_id
3. /tasks GET – Получить все задачи

--> DOCUMENT
/documents GET – Получить все документы
/documents/{id} DELETE – удалить документ – удаляется все связи Attachment и Task и файл в сторадже  (только Админу)

--> ATTACHMENT
/attachments GET – Получить все (только Админу)
/attachments?doc={document_id} – Получить файл
1. идем в таблицу Attachment по document_id
- Если у стораджа ссылки периодически меняются тогда нужна логика
-- отправляется запрос в Yandex для получения url к файлу по имени Attachment.name
-- Если Yandex url не совпадает с БД.Attachment.url, то обновляем ссылку и updated_at

оформляем все в docker заливаем на сервер
Разделы:
Заказ
Опубликован:
20.11.2024 | 17:49 [поднят: 20.11.2024 | 17:49] [последние изменения: 20.11.2024 | 17:51]
Заказ находится в архиве
Откликнуться

Выберите способ верификации:

Обновите страницу после прохождения верификации.

Посмотреть другие заказы

Теги: нужен программист, резюме программиста, требуется программист, резюме веб программиста

Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».