Giter Club home page Giter Club logo

check's Introduction

Check service

Запуск проекту:

Для запуску проекту потрібно:

  1. Підняти docker compose
  2. Підтянути фікстури принтерів

Опис роботи сервісу:

1. Сервіс для обробки замовлення:

  • Отримує інформацію про нове замовлення.
  • Створює в базі даних (БД) чеки для всіх принтерів точки, зазначеної в замовленні.
  • Розміщує асинхронні завдання на генерацію PDF-файлів для цих чеків.
  • Повертає помилку, якщо точка не має жодного принтера.
  • Повертає помилку, якщо чеки для цього замовлення вже були створені.(передається номер замовлення)

2. Асинхронний воркер:

  • Використовує wkhtmltopdf для генерації PDF-файлу з HTML-шаблону.
  • Назва файлу має бути у форматі <ID замовлення>_<тип чека>.pdf (наприклад, 123456_client.pdf).
  • Файли зберігаються в папці media/pdf у корені проекту.

3. Програма для опитування сервісу:

  • Опитує сервіс на наявність нових чеків.
  • Запитує список чеків, які вже були згенеровані для конкретного принтера.
  • Завантажує PDF-файл для кожного чека.
  • Відправляє кожен PDF-файл на друк.
  • Змінює статус чеку після друку.

Моделі:

  1. Модель "Printer"

    Поле Тип Значення Опис
    name CharField Назва принтеру
    api_key CharField Ключ доступу до API
    check_type CharField kitchen/client Тип чеку який друкує принтер
    point_id IntegerField Точка до якої прив'язаний принтер
    • Кожен принтер друкує лише свій тип чеків.
    • Поле api_key набуває унікальних значень, по ньому однозначно визначається принтер.
    • Для цієї моделі повинні бути fixtures (принтери для обох типів чеків для кількох точок).
  2. Модель "Check"

    Поле Тип Значення Опис
    printer_id ForeignKey Принтер
    type CharField kitchen/client Тип чеку
    order JSONField Інформація про замовлення
    status CharField new/rendered/printed Статус чеку
    pdf_file FileField Посилання на створений PDF-файл
    • Для цієї моделі повинні бути fixtures (принтери для обох типів чеків для кількох точок).

API:

  • Опис доступних методів міститься у файлі api.yml (swagger-специфікація).

check's People

Contributors

djimontyp 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.