Что реализовано
Описание проекта
dkp-online.pro упрощает оформление договора купли-продажи автомобиля. Вместо ручного переноса данных из паспорта, ПТС и СТС пользователь загружает фотографии документов, проверяет распознанные поля и получает готовый PDF-договор.
Проект особенно полезен там, где важны скорость и аккуратность: в автосалонах, у перекупщиков, в небольших офисах оформления и у частных пользователей. Сервис не пытается "угадать молча". Он показывает распознанные данные, подсвечивает конфликты и оставляет человеку финальную проверку перед созданием документа.
Основной сценарий
- Лендинг с переходом к мастеру оформления ДКП.
- Работа без регистрации для быстрого сценария.
- Регистрация и вход для сохранения истории.
- Пошаговый мастер загрузки документов.
- Загрузка изображений паспорта продавца, паспорта покупателя, ПТС и СТС.
- OCR-распознавание через OpenRouter.
- Предобработка изображений перед распознаванием.
- Разбор данных по разделам: договор, продавец, покупатель, автомобиль, документы.
- Проверка конфликтов между ПТС и СТС.
- Ручное исправление распознанных данных в браузере.
- Автосохранение черновиков для авторизованных пользователей.
- Генерация PDF-договора.
- Повторное открытие и скачивание договоров из истории.
Авторизация и история
- Регистрация пользователя.
- Вход по email или телефону.
- Cookie-сессии.
- Восстановление пароля через email.
- Неперечисляющее восстановление пароля: сервис не раскрывает, существует ли аккаунт.
- История сохраненных договоров.
- Привязка черновиков и PDF к владельцу.
Работа с документами
- Разделение данных продавца и покупателя.
- Проверка обязательных полей перед генерацией PDF.
- Явные ошибки при сбое OCR, предобработки или PDF-рендера.
- Нормализация данных перед передачей в шаблон.
- Генерация PDF через Python-скрипт и DOCX-шаблон.
- Поддержка Microsoft Word COM на Windows и LibreOffice в Linux-контейнере.
Инфраструктура
- Rails-приложение с HTML-страницами и API-эндпоинтами.
- SQLite для пользователей, сессий и сохраненных договоров.
- Docker-образ для production.
- Развертывание на VPS за nginx reverse proxy.
- Health endpoint для проверки состояния.
- GitHub Actions и локальный CI-скрипт.
Технический стек
- Ruby 3.4.9.
- Rails 8.1.3.
- Active Record.
- SQLite.
- ERB.
- Vanilla JavaScript ES modules.
- Custom CSS.
- OpenRouter API.
- Python.
- Pillow и NumPy для предобработки изображений.
- DOCX-шаблон.
- LibreOffice Writer для PDF в Linux.
- Microsoft Word COM для PDF на Windows.
- Puma.
- Docker и Docker Compose.
- Minitest.
- GitHub Actions.
Роль в проекте
Разработан пользовательский сценарий оформления договора, backend-логика распознавания и сборки данных, история договоров, авторизация, восстановление пароля, генерация PDF, интеграция с OpenRouter, Python-пайплайн обработки документов и production-доставка.