Git Product home page Git Product logo

pagination's Introduction

pagination

Проект реализует следующие задачи:

  • Пагинированный прием получения картинки в base64 строке по эндпоинту /image (при помощи библиотеки flask).
  • Для этого в теле POST запроса реализованы поля:
    • id: номер чанка
    • total: всего чанков,
    • chunk: собственно сам чанк
  • Финальный запрос после приема и конвертации всех чанков в JSON строку содержит следующие поля
    • extension: Расширение картинки (png, jpg, jpeg ...),
    • size: размер картинки в килобайтах,
    • description: описание картинки,
    • title: название картинки,
    • tags: тэги картинки (например природа, пейзаж, анфас и прочее),
    • base64: картинка в формате base 64 строки
  • Проверка того, что присланная картинка действительно является картинкой указанного типа (при помощи библиотеки filetype).
  • Сохранение картинки в папке gallery с соответствующим названием.
  • Сохранение относительного пути картинки, тегов, описания и названия в базу данных PostgreSQL. Создание таблицы с соотвествующими полями строкового типа (при помощи библиотеки psycopg2).
    • Создание бэкапа базы данных в формате sql
  • Отклонение всех запросов, в которых размер файла превышает 1 MB
  • Возвращение соответствующих статусов, если проверка не была пройдена по каким-либо причинам. Выбор статусов обоснован.
  • Реализация инкапсуляции приема пагинированных запросов и логики работы с базой данных в отдельные классы.
  • Ведение журнала статусов загрузки изображений в файле logs.txt, с указанием даты.
  • Всё подготовлено для помещения приложения в контейнер Podman и создан dockerfile.
  • Создана README.md инструкция для проекта.
  • Создан репозиторий Git (вы находитесь здесь) c историей коммитов

Инструкция для сборки проекта в Podman

  1. Скачайте и установите Podman Desktop.
  2. Запустив Podman Desktop убедитесь, что ваша система соотвествует требуемым характеристикам и установите саму службу podman
  3. Во вкладке Images создайте новый образ (image), используя файл dockerfile.txt.
    Или же откройте командную строку, перейдите в каталог проекта и пропишите команду:
podman build -t image_name
  1. В той же вкладке загрузите с сервера образ PostgreSQL 16 через поиск. Или пропишите в командной строке
podman pull docker.io/library/postgres
  1. В командной строке пропишите:
podman network create mynetwork
  1. Во вкладке Containers запустите контейнер с образом PostgreSQL. Установите имя контейнера postgres, а переменным окружения задайте значения POSTGRES_PASSWORD=123, POSTGRES_USER=postgres, POSTGRES_DB=postgress. Во вкладке Networking установите пункт Uder-defined network и выберете созданную сеть. Или пропишите в командной строке:
podman run --name postgres -e POSTGRES_PASSWORD=123 -e POSTGRES_USER=postgres -e POSTGRES_DB=postgress --network mynetwork -d docker.io/library/postgres
  1. В той же вкладке запустите контейнер с образом проекта. Настройте volume для путей /pagination/gallery и /pagination/logs. Укажите ту же сеть, в которой находится контейнер postgres.
  2. Откройте браузер, перейдите на страницу http://localhost:3000/ и проверьте работу приложения

pagination's People

Contributors

serzh-frei avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.