<p>Требуется создать веб - приложение. Нужно сделать бэк и фронт. <br />У приложения будет два пользователя, это фотограф и фдминистратор.<br />Сейчас требуется сделать легкий локальный сервер для работы с десктопным приложением по REST API (и возможно WebSocket). Так же если вы можете сразу и фронт сделать, опишу отдельно задание. <br /><br />Детальный процесс работы фотографа приложения:<br />1. Фронтенд отправляет данных для авторизации (логин и пароль)<br />2. Пользователь сканирует штрих-код и zxing подхватывает его код<br />3. Программа берет конфигурацию (протокол взаимодействия, маппинг полей) интеграции с учетной системой, в которой хранится информация о продукте<br />4. Программа отправляет запрос на получение данных в учетную систему<br />5. Программа принимает и трансформирует данные<br />6. Программа копирует в локальную временную папку изображение из заданной папки (статичный путь, записывается в конфигурационный файл на этапе разработки)<br />7. Программа отправляет в фронтенд данные о продукте и ссылку на изображение<br />8. Фронтенд может запросить ссылки на фоны для изображения – пользователь может их добавлять. Они хранятся в локальной папке<br />9. Фронтенд может отправить иное изображения, его нужно поместить во временную локальную папку<br />10. Фронтенд присылает Данные об изображении – размер, масштаб, угол поворота, положение и выбранные коннекторы (хранятся в виде JSON / YAML, в них – папка выгрузки, шаблон генерации названия изображения, если оно не установлено)<br />11. Изображение необходимо совместить с фоном на основе данных, предоставленных на предыдущем шаге<br />12. Изображение выгружается в папки назначений в формате, размере, заданных в конфигурациях<br /><br />Администратор также может из фронтенда:<br />1. Управлять пользователями<br />2. Управлять коннекторами – для выгрузки изображений и загрузки данных о продукте<br />3. Запрашивать действия пользователей<br /><br />Приложение присылает логи о действиях пользователей – их нужно помещать в БД.<br /><br />В проекте будут использованы следующие технологии:<br />? Сканер штрих-кодов – zxing-cpp / zxing<br />? Экспорт изображений – Pillow<br />? Управление пользователями – fastapi-users (Bearer + database)<br />? Генератор CRUD эндпоинтов – fastcrud<br />? ORM – SQLAlchemy 2.0 (async)<br />? Хранение конфигурации – PyYAML / JSON<br />? Тестирование – pytest<br />? Возможно server-sent events для уведомления фронтенда о новом сканировании (другой вариант – long polling / refetching / WebSocket)<br />? База данных – SQLite<br /><br />Так же для работы вышлю документацию структуры БД. </p>