# VMS-Sailor **Vessel Management System** integrado (IAS — Integrated Automation System) para buques de 30 a 40 metros. > Yates motor · Pesqueros · Patrulleros · Ferries pequeños · Offshore support pequeño Compite en el nicho que Kongsberg K-Chief, Praxis Mega-Guard, Bachmann M-Series y Wärtsilä NACOS desatienden por enfocarse en buques de 80+ m. --- ## Componentes | Componente | Para quién | Stack | |---|---|---| | **VMS-Sailor Studio** | Ingeniería interna (Álvaro) | Python 3.11 + PySide6 | | **VMS-Sailor Runtime** | A bordo del buque | Python 3.11 + FastAPI + SQLite + DuckDB | | **VMS-Sailor Mobile** | Owner + tripulación (WiFi local) | Flutter 3.x + Dart 3.x | | **AR-NMEA-IO-v1.0 firmware** | Tarjeta I/O distribuida | ESP32 + PlatformIO + C++ | --- ## Estado actual **Sprint 0 — Fundaciones** ✓ Lo que existe en este commit: - Modelo de datos core (`vmssailor/core/`) con Pydantic v2 - Persistencia portable a `.vmsproj` (SQLite) - Biblioteca curada seed mínima (2 yates motor, 2 motores, 1 genset, reglas) - Catálogo maestro completo de sistemas (`vmssailor/library/systems_catalog.json`) - Validador de biblioteca + generador de proyecto demo - Tests con cobertura ≥ 80% en `core` - Design system + mockups HTML estáticos - Firmware: solo `pinout.h` (Sprint 12 implementa el firmware) **Lo que NO existe aún** (sprints siguientes): - ❌ UI Studio operativa (Sprint 1) - ❌ Runtime servidor con drivers Modbus/NMEA 2000 (Sprint 4) - ❌ Cliente desktop (Sprint 6) - ❌ App móvil Flutter (Sprint 11) - ❌ Firmware funcional (Sprint 12) --- ## Setup Requiere **Python 3.11** y [**uv**](https://github.com/astral-sh/uv). ```bash # Si no tienes Python 3.11 instalado, uv lo descarga solo: uv python install 3.11 # Crear entorno virtual + instalar dependencias: uv sync --extra dev # Validar la biblioteca curada: uv run vms-validate-library # Generar proyecto demo y verificar roundtrip de persistencia: uv run vms-generate-test-project # Tests: uv run pytest # Lint + type check: uv run ruff check vmssailor/ tests/ tools/ uv run mypy vmssailor/core/ ``` --- ## Estructura del repositorio ``` . ├── vmssailor/ # Código Python compartido (Studio + Runtime) │ ├── core/ # ★ Modelo de datos del producto (Sprint 0) │ ├── library/ # ★ Biblioteca curada seed (Sprint 0) │ ├── shared/ # Utilidades comunes │ ├── studio/ # App Studio (Sprint 1+) │ └── runtime/ # App Runtime (Sprint 4+) ├── firmware/ # Firmware ESP32 (Sprint 12+) │ └── ar_nmea_io_v1/ │ └── src/config/pinout.h ├── mobile/ # App Flutter (Sprint 11) ├── tests/ # Tests Python (pytest) ├── tools/ # Scripts CLI │ ├── validate_library.py │ └── generate_test_project.py ├── docs/ # Documentación │ ├── architecture.md │ ├── coords.md │ ├── design_system.md # ★ Sistema visual completo │ ├── decisions_sprint0.md │ ├── seed_data_notes.md │ ├── mockups/ # ★ HTML mockups del producto │ └── brand/ # ★ Logo y assets ├── installer/ # WiX MSI scripts (Sprint 7) ├── VMS_Sailor_v2_Parte_*.md # Brief original (intacto) ├── pyproject.toml └── README.md ``` --- ## Documentos de referencia (intactos) Los 6 archivos `VMS_Sailor_v2_Parte_*.md` son el **brief original** y son la verdad de referencia para todos los sprints. **NO se modifican sin acuerdo explícito.** - Parte 1 — Visión, arquitectura general - Parte 2 — Studio en detalle - Parte 3 — Runtime en detalle - Parte 4 — Hardware AR-NMEA-IO + firmware - Parte 5 — Mobile - Parte 6 — Sprints + reglas de oro --- ## Reglas de oro (recordatorio) 1. Antes de cada sprint, plan + OK explícito antes de codear. 2. Tests obligatorios en `core` y `runtime/server`. 3. No agregar dependencias sin preguntar. 4. Documentar normativa (IEC 60092-504, IACS UR E22, ABYC E-11, NMEA 2000, SAE J1939). 5. Sin red de salida en Runtime (salvo activación inicial y VPN administrativa). 6. Biblioteca curada es **ORO** — cambios de formato requieren migración. 7. Runtime es **inmutable** para el cliente — solo deltas firmados. 8. Auditoría siempre activa. 9. Coordenadas navales `ShipCoord(x_pp, y_cl, z_bl)` en todo el código. 10. Unidades SI internas siempre. 11. Idioma: español por defecto. 12. AR-ECDIS es producto separado (no se desarrolla aquí). 13. Firmware y software van juntos en el mismo `.vmspack`. Detalle completo en `VMS_Sailor_v2_Parte_06_Sprints_y_reglas.md` sección 5. --- ## Licencia Software **propietario** de Álvaro. Ver `LICENSE.txt`.