Заказ закрыт
Full-Stack разработчик (NestJS + Vue3/Quasar) — проект «Массовый импорт учеников»

Бюджет: по договоренности
Компаниям просьба не писать

Формат: удалённо, частичная или полная занятость
Договор: ИП или самозанятый (СМЗ/НПД)
Оплата: почасовая, кандидат указывает свою ставку при отклике
Интервью: 30-минутный технический созвон (разбор архитектуры и кода)

Проект

Делаем модуль массового импорта учеников в админ-панели: загрузка .xlsx, асинхронная обработка в фоне, статус/лог в реальном времени, отчёты об ошибках и повторный импорт проблемных строк. 

Основные задачи

Бэкенд (NestJS, TypeScript)

REST API для запуска/мониторинга Import Job, WS для прогресса.

Очередь фоновой обработки (BullMQ/RabbitMQ/Kafka) с ретраями и идемпотентностью.

Валидации и нормализация данных (даты, пол, СНИЛС, контакты).

Политика дедупликации: ATTACH_ONLY и UPSERT (whitelist полей).

Экспорт отчётов (XLSX), пагинация списков.

Фронтенд (Vue3 + Quasar)

Страница «Массовый импорт учеников»: загрузка файла, выбор владельца группы, имя группы, запуск.

Страница статуса Import Job: прогресс (total/ok/error/pending), лента событий, кнопки «Скачать ошибки», «Повторить проблемные».

Список «Группы учеников» с поиском/пагинацией; карточка группы со списком участников.

Наблюдаемость и качество

Метрики (Prometheus/Grafana): p95 времени импорта, TPS, % ошибок, размер очереди.

Sentry/логирование: job_id, row_no, error_code; алёрты по SLO.

Стек

Backend: NestJS, TypeScript, Node.js, BullMQ/RabbitMQ, Prisma/TypeORM, PostgreSQL, Redis

Frontend: Vue 3, Quasar (SSR/SPA), Pinia/TanStack Query, Vite

Инфраструктура: Docker, Traefik/NGINX, Sentry, Prometheus/Grafana

Форматы: XLSX, WebSocket

Требования

Уверенно: очереди задач, транзакции, идемпотентность, конкуренция воркеров.

Работа с PostgreSQL (индексы, upsert, оптимизация запросов), Redis.

Опыт обработки файлов (XLSX) и серверной валидации данных.

Понимание PII/безопасности (маскирование, ограничение прав, аудит).

Стиль кода: функциональный подход, иммутабельность, чистые функции;

Будет плюсом

Опыт в Quasar SSR,WS-стримингах, BullMQ; 

Интеграция метрик (Prometheus), алёртов и Sentry релизов.

Условия

Договор: ИП или самозанятый (СМЗ/НПД).

Оплата: почасовая (заявите свою ставку, валюту и доступность по часам/неделю). Выплаты по завершённым этапам.

График: гибкий, синхронизация по MSK приветствуется.

Процессы: ревью кода, документация API.

Критерии успеха (SLO/Definition of Done)

Импорт 500 строк: p95 ≤ 60 с при нормальной нагрузке.

Статус виден пользователю ≤ 1 с после запуска.

Дубликаты: 0% в режиме ATTACH_ONLY; корректный UPSERT по whitelist.

Отчёт ошибок: полный, с row_no, error_code, рекомендацией по исправлению.

Метрики/логи/алёрты подключены

Процесс отбора

Отклик: короткое письмо + ссылки + ставка.

30-мин техсозвон: архитектура импорта, идемпотентность, конкуренция воркеров, схема БД, UX статуса.
Опубликован 27.08.2025 в 00:05 Последнее изменение: 28.08.2025 в 20:29
Заказ находится в архиве

Выберите способ верификации:

Обновите страницу после прохождения верификации.