Разработка сервиса выгрузки отчётов, Node.js + Koa на бэке, Vue.js на фронте, PostgreSQL

Бюджет 117$ / 7000
руб
в месяц
Создан: 3 года назад
На модерации
Описание
Существует система проведения олимпиад. Изнутри это, на самом деле, достаточно сложная вещь с богатой функциональностью (говоря умными словами, она поддерживает ведение проектной деятельности по информационному, техническому и методическому обеспечению олимпиад). Естественно, под всю эту функциональность имеются сущности в БД, и иногда по этим сущностям нужно проводить аналитику (обычно это относится к разным спискам участников). В данный момент система позволяет фильтровать данные по заданным критериям, сортировать их и выгружать в XLSX для дальнейшей ручной обработки. Если брать списки участников, то там можно выгружать результаты по различным турам, потокам площадок, на которых пользователь писал или будет писать заключительный этап, вхождение в различные системные группы, их школы/города/регионы



Что тут нас не устраивает: 

Операции выгрузки иногда занимают много времени, особенно если они большие. Выгрузка происходит не в фоне, т.е. пользователь нажимает на кнопку выгрузки и ждёт, пока она выгрузится. Причём не факт, что табличка в итоге попадёт к пользователю, поскольку трафик идёт через NGINX, который обрывает соединения, от которых нет ответа определённое время. В таком случае пользователь просто получит ошибку 504

Как это должно выглядеть в итоге: пользователь нажимает на кнопку выгрузки, и система ему отвечает, что выгрузка начинает создаваться где-то в фоне и можно работать с другими страницами. В это время система где-то в фоне генерирует выгрузку, сохраняет результирующий файл и прочую информацию (когда и кем выгружено, что выгружалось, с какими параметрами и т.д.) в отдельную табличку. После сохранения система уведомляет пользователя, что выгрузка готова и что её можно скачать на определённой странице интерфейса

Как это предлагается реализовывать: у нас уже есть набор фоновых процессов, которые слушают запросы от основного приложения через Redis. Можно сделать ещё один такой процесс, который будет вызывать существующую функцию выгрузки. В этом процессе будет происходить сама выгрузка, не влияя на основное приложение (т.е. NGINX рвать соединение не будет, т.к. его просто нет). После сохранения самой выгрузки и её мета-информации процесс должен как-то сообщить пользователю, что выгрузка готова. Это можно сделать, наверно, через веб-сокеты. Также тебе нужно будет отрефакторить метод для создания выгрузки, т.к. её разработчик (изначальный разработчик системы) раздул его на 100+ строк, это неудобно читать и наверняка там остались баги
Категория
Источник: fl.ru

Похожие проекты

safe$22
9 0
требуется готовую онлайн анкету на django по приему на работу перенести в whatsapp, telegram и viber. Нужно чтобы кандидат мог с удобством заполнять анкету с телефона, а все заполненные им данные по всем позициям автоматически загружались в нашу базу данных. В нашей базе будет создаваться резюме кандидата......
safe 
28 0
В наличии массив кадастровых номеров (КН), необходимо путем запроса на ПКК определить примерные географические координаты каждого объекта из массива КН (ОКС, ЗУ), вывести в результирующий файл эти ко-ты и ряд сопутствующих данных по этому КН....
1 год назад
safe 
44 1
Необходимо разработать бек и фронт мини-сервиса таким образом, чтоб его можно было развернуть внутри другого проекта....
safe$1111
23 0
Стоит на Бизнесе для своих нужд на простеньком базовом шаблоне, складываю туда контент потихоньку. Нужно начинать приводить в соответствие что бы публика сразу не убегала, а как то цеплялась, да и продвигать не торопясь. Шаблон где порвался от вставки баннеров подправить, для мобилок может сверстать.......
safe$22
55 0
Парсер для сайта stockx. com на питоне (selenium/pyppeteer). Необходим следующий функционал: 1. На главной странице с поиском по ключевым словам найти первый результат из поиска (ссылку на страницу товара) ....
1 год назад
safe$44
49 0
Трипланарная транспортная задача (отправители - транспорт - получатели) генерация исходных данных трехэтапное решение 1....
safe$1111
48 0
Требуется написать парсер маркетплейса, у которого есть только мобильное приложение (IOS, Android). Есть исходный код Android приложения (Java + Kotlin), реверснутый через JADX. Необходимо парсить данные о товарах, полученные по артикулу. За подробностями тг: @markermann)....
1 год назад
 
38 0
Требуется написать софт , который будет делать рассылку по личным сообщениям на площадке Ebay Kleinanzeigen по заранее спаршенным обьявлениям....
1 год назад
 
36 0
Требуется написать софт , который будет делать рассылку по личным сообщениям на площадке Ebay Kleinanzeigen по заранее спаршенным обьявлениям....
1 год назад
 
37 0
Требуется написать софт , который будет делать рассылку по личным сообщениям на площадке Ebay Kleinanzeigen по заранее спаршенным обьявлениям....
1 год назад
 
31 0
Требуется написать софт , который будет делать рассылку по личным сообщениям на площадке Ebay Kleinanzeigen по заранее спаршенным обьявлениям....
1 год назад
 
40 1
Требуется написать софт , который будет делать рассылку по личным сообщениям на площадке Ebay Kleinanzeigen по заранее спаршенным обьявлениям....
1 год назад
$22
59 1
В Геткурсе нужно сделать интеграцию со Сбербанком для оформления рассрочки/кредита. Основная задача – передача суммы и номера заказа при переходе для оформления рассрочки и возврат сведений при удачном оформлении. Эквайринг от Сбербанка к Геткурсу подключён, а готовой интеграции для рассрочки нет. Если......
1 год назад
 
96 0
Нужно сделать бот перехватчик заказов по фильтру такси Максим!...
1 год назад
$33
75 1
Как можно загрузить готовое фото из галереи, если приложение просит загрузить фото и при этом открывает камеру телефона? Нужно вместо использования реальной камеры смоделировать вход камеры и при этом загрузить фото из галереи....
1 год назад
 
117 3
Очень простой криптообменник в виде веб-сайта. Без смарт-контрактов и т. Все платежи вручную....
Смотреть все