Giter Club home page Giter Club logo

6419901a62acc73d65f85c1815b31912's Introduction

System stories

Приложение состоит из трех сервисов:

  1. Сервис1, admin_area - админка, отвечает за взаимодействие с пользователем, хранение и отображение пользователю информации о введенных функциях и сгенерированных графиках.
  2. Сервис2, data-generator - генератор данных, отвечает за генерацию данных для графика. Принимает текстовое описание функции, генерирует по ним массив [(x, y)].
  3. Сервис3, graph-generator - генератор изображений, генерирует изображение по подготовленным данным.

Сценарий взаимодействия при добавлении новой функции:

  1. Сервис1 сохраняет инфу о функции в БД и запускает операцию получения изображения.
  2. Операция получения изображения сервиса1 обращается в сервис2 через REST API, передавая функцию в текстовом виде и параметры.
  3. Сервис2 обрабатывает запрос, генерирует точки для графика по переданным данным.
  4. Сервис1 получает точки и передает их в сервис3 по REST API.
  5. Сервис3 принимает набор точек и возвращает изображение.
  6. Сервис1 получает изображение и сохраняет в БД, обновляет дату обновления.

Сценарий параллельного обновления через действие в админке:

  1. Сервис1 асинхронно запускает операцию получения изображения для сохранённой в БД функции и параметров.
  2. Операция получения изображения сервиса1 обращается в сервис2 через REST API, передавая функцию в текстовом виде и параметры.
  3. Сервис2 обрабатывает запрос, генерирует точки для графика по переданным данным.
  4. Сервис1 получает точки и передает их в сервис3 по REST API.
  5. Сервис3 принимает набор точек и возвращает изображение.
  6. Сервис1 получает изображение и сохраняет в БД, обновляет дату обновления.

Запуск

Для запуска используется docker-compose. В переменных окружения для корректного запуска должно быть определено следующее:

  • ADMIN_EMAIL - почтовый адрес учётки администратора для входа в админку.
  • ADMIN_PASSWORD - пароль учётки администратора для входа в админку.
  • SECRET_KEY - соответствующая настройка Django; для генерации можно воспользоваться сервисом https://www.miniwebtool.com/django-secret-key-generator . Также опционально может быть определено имя пользователя учётки для входа в админку через переменную ADMIN_USER; имя пользователя по умолчанию admin.

6419901a62acc73d65f85c1815b31912's People

Contributors

lockie avatar

Watchers

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