Vibe coding

Система голосования для ОСМД

Ключевые возможности:

  • Гибкие модели учета: Поддержка голосования «одна квартира — один голос» или взвешенного голосования на основе площади помещения.
  • Гибридный формат: Возможность совмещения электронных голосов с ручным вводом бумажных бюллетеней.
  • Автоматизация отчетности: Генерация официальных протоколов в формате PDF с соблюдением требований к защите персональных данных (маскировка ФИО).
  • Многоязычность: Полная поддержка украинского и русского интерфейсов.

Этот проект демонстрирует, как современные облачные технологии могут сделать управление жильем честным и доступным для каждого жителя.

Технологический стек:

  • Frontend: React + Vite + Tailwind CSS — быстрый адаптивный UI (react-router, lucide-icons).
  • Backend: Python (FastAPI) — собственная аутентификация (argon2id + JWT), мультиарендность, логика кворума по площади, генерация PDF-протоколов (ReportLab) и проверка КЭП-подписей (asn1crypto). Драйвер — psycopg3
  • База данных: PostgreSQL (self-hosted на VPS) — хранение данных и изоляция клиентов через Row-Level Security (RLS).
  • Инфраструктура: свой VPS, Nginx, systemd, CI/CD (GitHub Actions), wildcard-TLS, мультитенантность через поддомены.

Технические вызовы:
  1. Алгоритм кворума: Реализация динамического расчета весов голосов в зависимости от настроек каждого опроса.
  2. PDF-генерация: Создание кастомного движка на Python для формирования протоколов с поддержкой кириллицы и автоматическим форматированием таблиц итогов.
  3. Безопасность: Иерархическая ролевая модель (Admin/Chairman), разграничивающая права доступа к реестру жителей и удалению данных.
Файл презентации можно скачать тут


Попробовать можно по ссылкам: