ru24.pro
Все новости
Август
2024

Необходимо разработать легкий локальный сервер для работы с десктопным

0

Backend FastAPI

Необходимо разработать легкий локальный сервер для работы с десктопным приложением по REST API (и возможно WebSocket).


Существует 2 пользователя: Фотограф и Администратор


Процесс работы фотографа приложения:

  1. Фронтенд отправляет данных для авторизации (логин и пароль)
  2. Пользователь сканирует штрих-код и zxing подхватывает его код
  3. Программа берет конфигурацию (протокол взаимодействия, маппинг полей) интеграции с учетной системой, в которой хранится информация о продукте
  4. Программа отправляет запрос на получение данных в учетную систему
  5. Программа принимает и трансформирует данные
  6. Программа копирует в локальную временную папку изображение из заданной папки (статичный путь, записывается в конфигурационный файл на этапе разработки)
  7. Программа отправляет в фронтенд данные о продукте и ссылку на изображение
  8. Фронтенд может запросить ссылки на фоны для изображения - пользователь может их добавлять. Они хранятся в локальной папке
  9. Фронтенд может отправить иное изображения, его нужно поместить во временную локальную папку
  10. Фронтенд присылает Данные об изображении - размер, масштаб, угол поворота, положение и выбранные коннекторы (хранятся в виде JSON / YAML, в них - папка выгрузки, шаблон генерации названия изображения, если оно не установлено)
  11. Изображение необходимо совместить с фоном на основе данных, предоставленных на предыдущем шаге
  12. Изображение выгружается в папки назначений в формате, размере, заданных в конфигурациях

Администратор также может из фронтенда:

  1. Управлять пользователями
  2. Управлять коннекторами - для выгрузки изображений и загрузки данных о продукте
  3. Запрашивать действия пользователей

Приложение присылает логи о действиях пользователей - их нужно помещать в БД.


В проекте будут использованы следующие технологии:

  • Сканер штрих-кодов - zxing-cpp / zxing
  • Экспорт изображений - Pillow
  • Управление пользователями - fastapi-users (Bearer + database)
  • Генератор CRUD эндпоинтов - fastcrud
  • ORM - SQLAlchemy 2.0 (async)
  • Хранение конфигурации - PyYAML / JSON
  • Тестирование - pytest
  • Возможно server-sent events для уведомления фронтенда о новом сканировании (другой вариант - long polling / refetching / WebSocket)
  • База данных - SQLite

Документация структуры БД будет предоставлена.


Пожалуйста опишите свой опыт реализации приложений на FastAPI (желательно похожих). Описание опыта работы с представленными выше технологиями будет преимуществом.

Оплата договорная