Co-Authored-By: DeepSeek Web <service@deepseek.com> Reviewed-on: #9 Reviewed-by: Masahiko AMANO <hiko-19@ya.ru> Co-authored-by: CosmoGhost87 <cosmoghost87@outlook.com>
紐試し · Himo
ПАК «Химодамэси» (Himo) — тестер аудиокабелей для музыкантов: прибор, мобильное приложение и веб-сервис.
Прибор проводит электрические измерения кабеля — целостность проводников, CMRR, АЧХ — и передаёт их в приложение по Bluetooth. Приложение выдаёт понятный вердикт: кабель исправен, требует внимания или подлежит замене; хранит историю проверок, паспорт кабеля и Health Score, объясняет результаты ИИ-комментариями. Веб-сервис Himo Hub — «GitHub для кабелей»: команда ведёт общий парк кабелей, а история тестов не теряется при смене телефона или ответственного.
Целевая аудитория — музыканты, студии, концертные площадки и прокатные компании.
Состав и статус
| Компонент | Что делает | Состояние |
|---|---|---|
| Прибор | Измеряет кабель, передаёт результаты в приложение по BLE | Реализация отложена (ADR-013) |
| Мобильное приложение | Тестирование, Health Score, паспорт, история, ИИ-комментарии, синхронизация | Работает на mock-данных прибора |
| Himo Hub | Команды, общая история кабелей, синхронизация, веб-интерфейс | Требования и стек определены, кода пока нет |
Схема компонентов и их связей — docs/spec/architecture.md.
Технический стек
| Часть | Технологии |
|---|---|
| Мобильное приложение | Flutter (Dart), Clean Architecture, Riverpod, SQLite (sqflite), flutter_blue_plus |
| Himo Hub — сервер | Go, gin, PostgreSQL (pgx, sqlc), миграции goose, контракт OpenAPI (oapi-codegen) — ADR-015 |
| Himo Hub — веб | SvelteKit (SPA), отдаётся тем же сервером |
| ИИ-комментарии | GLM-4.7-Flash через OpenAI-совместимый API Z.ai, через прокси Hub — ADR-018 |
| Инфраструктура | Docker Compose, nginx, Let's Encrypt, Gitea Actions — ADR-017 |
| Прибор (заморожено) | ESP32-S3, MCP3208, AD9833, INA128P; прошивка на Arduino framework, NimBLE-Arduino, ArduinoJson |
Структура репозитория
himodameshi/
├── .gitea/ # Шаблон PR, CODEOWNERS
├── app/ # Мобильное приложение (Flutter)
├── firmware/ # Прошивка ESP32-S3 — заморожено
├── hardware/ # Схемы, BOM, даташиты компонентов — заморожено
├── docs/ # Документация: спецификации, ADR
├── .pre-commit-config.yaml # Проверки перед коммитом
├── CONTRIBUTING.md
└── README.md
Каталоги hub/, web/, contracts/ и deploy/ появятся вместе с кодом (ADR-014).
Локальный запуск
Мобильное приложение
Требования: Flutter SDK 3.x, Android Studio или VS Code с плагином Flutter.
cd app
flutter pub get
flutter run
Приложение запускается с mock-данными — прибор не нужен.
Himo Hub
Сервер, веб и PostgreSQL будут подниматься одной командой docker compose up --build, миграции применятся при первом запуске. Инструкция появится вместе с каркасом hub/.
Прошивка (заморожено)
Реализация прибора отложена (ADR-013). Для справки: прошивка собирается в VS Code с расширением PlatformIO, ESP32-S3 подключается по USB-C.
cd firmware
pio run --target upload
Развёртывание
Himo Hub разворачивается на домашнем сервере: Docker Compose, nginx с сертификатами Let's Encrypt, автоматический деплой через Gitea Actions.
| Окружение | Адрес | Обновляется |
|---|---|---|
| prod | https://himo.hakoniwa.ru |
по тегу релиза hub/vX.Y.Z |
| dev | https://dev.himo.hakoniwa.ru |
при каждом слиянии в ветку dev |
Адреса пока не настроены — появятся вместе с первым деплоем. Подробности — ADR-017.
API
Контракт API — contracts/openapi.yaml, интерактивная документация — страница /docs на сервере. Появятся вместе с каркасом Hub; тогда же здесь будут примеры запросов.
Документация
| Документ | Описание |
|---|---|
| CONTRIBUTING.md | Правила работы с репозиторием: ветки, коммиты, PR, ревью, проверки, тесты |
| docs/spec/architecture.md | Техническая архитектура: компоненты, стек, развёртывание |
| docs/spec/device/requirements.md | Требования к прибору (DVC-N) |
| docs/spec/device/ble-protocol.md | BLE-протокол v1.0 — контракт между прошивкой и приложением |
| docs/spec/device/cmrr.md | Требования к схеме CMRR: методика, калибровка, критерии готовности |
| docs/spec/device/continuity.md | Требования к тесту целостности: схема, алгоритм КЗ, калибровка, критерии |
| docs/spec/device/freq-response.md | Требования к тесту АЧХ: пиковый детектор, алгоритм свипа, калибровка |
| docs/spec/app/requirements.md | Требования к мобильному приложению (APP-N) |
| docs/spec/app/health-score.md | Алгоритм расчёта Health Score |
| docs/spec/hub/requirements.md | Требования к веб-сервису Himo Hub (HUB-N) |
| docs/spec/glossary.md | Глоссарий терминов, сокращений и компонентов |
| docs/adr/ | Architecture Decision Records — почему принято то или иное решение; правила и индекс |
Участники
Команда «Деловые колбаски». Работаем по Scrum: спринты и задачи ведутся в YouGile.
| Участник | Роль |
|---|---|
| Влад | PM; бэкенд и БД Himo Hub; CI/CD; инфраструктура |
| Валера | Мобильное приложение |
| Ваня | UX/UI сайта Himo Hub |
| Даня | Скрам-мастер |
Как участвовать в разработке, логины в Gitea — в CONTRIBUTING.md.
Название — игра слов: кимодамэси (肝試し, «испытание печени») — японская традиция проверки смелости в темноте. Слово кимо («печень») заменено на созвучное химо («шнурок»). Получается «испытание шнурка» — то есть кабеля.