⚡ Electrics-App: El Gemelo Digital en tu bolsillo

Cálculo, diseño y normativa unificado bajo el REBT.
"Deja el Excel para la oficina. Lleva la ingeniería al campo de trabajo."

Release CI Status Flutter License

Electrics-App no es solo una calculadora eléctrica. Es un Gemelo Digital diseñado para ingenieros e instaladores que necesitan precisión técnica y validación normativa (REBT/RAT) en tiempo real, sin necesidad de un ordenador.

Warning

Estamos trabajando en su lanzamiento en Play Store & App Store. De momento, puedes descargar la última release en Github ya compilada.

🛠️ ¿Por qué Electrics-App?

Como ingenieros, nos enfrentamos a un mar de normativas y cálculos complejos en entornos donde no puedes abrir un portátil. El flujo de trabajo actual está roto:

  1. Tomas datos en papel o móvil.
  2. Llegas a casa cansado tras la jornada de campo.
  3. Pasas horas en Excel legalizando y presupuestando.

Electrics-App rompe este ciclo. Diseña, mide y presupuesta in situ. Para que cuando llegues a casa, tu único trabajo sea descansar.


📱 Tour Visual por la App

Aquí puedes ver el flujo de trabajo real de un ingeniero usando Electrics-App:

Diagrama Unifilar Sistema de Salud
Organiza tus obras Diagnóstico en tiempo real
Biblioteca Mediciones de Campo
Componentes inteligentes Ingresa resultados

✨ Funcionalidades Estrella

🧬 Motor de Física Avanzado

Cálculos precisos de caída de tensión, intensidades de cortocircuito y suma vectorial de impedancias. Un núcleo robusto que entiende la física real detrás de los cables.

A diferencia de otras aplicaciones, Electrics-App no es una "caja negra". El motor de cálculo ha sido programado siguiendo estrictamente el compendio de normas técnicas vigentes en España y Europa, las cuales puedes consultar directamente en la carpeta /normas del repositorio.

📚 Normativas Integradas

  • Cálculo de Caída de Tensión e Intensidades Admisibles: Basado en la UNE-HD 60364-5-52:2014.
  • Cálculo de Corrientes de Cortocircuito: Implementación de la norma IEC 60909-0:2016.
  • Protecciones y Curvas de Disparo: Siguiendo la IEC 60898-1 para interruptores magnetotérmicos.
  • Reglamento Nacional: Cumplimiento íntegro del REBT (RD 842/2002) y sus Guías Técnicas de Aplicación.

💻 Implementación en Código

Si eres ingeniero o desarrollador, puedes auditar nuestra lógica en:

🏥 Sistema de Diagnóstico (Health Check)

Introduce las mediciones reales de tus herramientas y la app las comparará con el modelo teórico. ¿Desviación excesiva? La app te avisa antes de que sea un problema.

🤖 Base de Datos impulsada por IA

Añadir componentes nunca fue tan fácil. Gracias a nuestra integración con IA, puedes solicitar nuevos componentes electricos de la biblioteca directamente desde GitHub Issues.

  • ¿Necesitas un magnetotérmico específico? Abre un Issue con: [COMPONENT REQUEST] M9U11206 Schneider Electric o [COMPONENT REQUEST] Diferencial bipolar 40A R9 2P SCHNEIDER ELECTRIC y la IA se encargará de mapear sus características técnicas a la app. En la próxima actualización estará disponible para su uso. También existen ya componente sgenerales o puedes crear tus propios componentes.

📄 Presupuestos al Instante (En desarrollo)

Genera reportes y presupuestos listos para imprimir y entregar al cliente antes de salir de la instalación.


🚀 Cómo empezar

El proyecto está diseñado para no requerir conexión y no requiere configuración de servidores externos. Simplemente, descárgate la última actualización

Download Latest Release

Pre Release v1.0.0

🌐 Live Demo & Documentation

Puedes explorar el catálogo de componentes y la documentación técnica del código en los siguientes enlaces:

Recurso Enlace Descripción
🚀 Landing Page Visitar Web Portal central de documentación
🎨 Storybook Explorar UI Catálogo interactivo de componentes Flutter
📚 API Reference Leer API Documentación técnica generada con Dartdoc

Recuerda hecharle un vistazo a la Wiki!


🤝 Buscamos Talento (Contribuir)

Este proyecto es público porque la ingeniería eléctrica merece herramientas modernas. Buscamos dos perfiles:

  1. Ingenieros Eléctricos: Ayúdanos a verificar los algoritmos de cálculo, añadir lógica de normativas internacionales y testear el motor físico.
  2. Desarrolladores Flutter: Mejora de la UI/UX, optimización de base de datos local (Isar) y pulido de animaciones.

Consulta nuestra Wiki para entender la arquitectura del motor físico.


🤖 Automatización y DevOps

Contamos con un flujo de trabajo moderno:

  • AI Code Review: Revisión automática de Pull Requests.
  • Automated Releases: Cada mejora llega a tus manos sin esperas.
  • AI Component Agent: Generación automática de plantillas de componentes mediante procesamiento de lenguaje natural.
  • Documentation Automation: Dartdoc y Storybook se actualizan automáticamente en cada push.

📚 Documentación

API Documentation (Dartdoc)

Documentation

Documentación técnica completa generada automáticamente con Dartdoc, organizada por capas de Clean Architecture (Core, Domain, Data, Presentation).

Component Library (Storybook)

Storybook

Explora y prueba componentes UI de forma aislada. Útil para desarrolladores y diseñadores que quieran entender el Design System.

Ejecutar localmente:

# Storybook
flutter run -d chrome -t storybook/main.dart

# Dartdoc
dart doc . && start doc/api/index.html

Consulta DOCUMENTATION.md para más detalles.


📊 Project Analytics

ReproBeats


⭐ Star History

Star History Chart

--

Hecho con ❤️ por ingenieros, para ingenieros.

© 2025 Ruben Ortiz, Electrics App Team

Libraries

config/routes/routes
config/theme/app_themes
config/theme/theme_cubit
core/constants/app_strings
core/constants/constants
core/constants/electrical_constants
core/database/database_service
core/database/isar_service
core/domain/entities/app_initialization_result
core/domain/usecases/initialize_app_usecase
core/error/failures
core/navigation/route_observer
core/presentation/bloc/app_state_cubit
core/presentation/widgets/app_button
core/presentation/widgets/app_text_field
core/presentation/widgets/beta_feature_banner
core/presentation/widgets/coming_soon_dialog
core/presentation/widgets/premium_list_tile
core/resources/data_state
core/usecase/usecase
core/utils/validators
features/budget/data/repositories/mock_price_repository
features/budget/domain/entities/budget_item
features/budget/domain/repositories/price_repository
features/budget/domain/services/material_aggregator_service
features/budget/domain/services/pricing_engine
features/budget/presentation/cubit/budget_cubit
features/budget/presentation/cubit/budget_state
features/budget/presentation/screens/budget_page
features/budget/presentation/widgets/budget_config_dialog
features/calculator/domain/entities/conductor
features/calculator/domain/entities/ev_models
features/calculator/domain/services/cable_service
features/calculator/domain/usecases/electrical_math
features/calculator/presentation/screens/calculations_page
features/calculator/presentation/screens/charging_station_page
features/calculator/presentation/screens/voltage_drop_page
features/compliance/domain/compliance_registry
features/compliance/domain/entities/compliance_base
features/compliance/domain/standards/rebt_rules
features/components/data/datasources/component_local_data_source
features/components/data/models/component_model
features/components/domain/entities/component_template
features/components/domain/repositories/component_repository
features/components/domain/services/trip_curve_calculator
features/components/presentation/bloc/component_library_cubit
features/components/presentation/screens/component_detail_page
features/components/presentation/screens/component_library_page
features/components/presentation/widgets/trip_curve_painter
features/components/presentation/widgets/trip_curve_viewer
features/diagram/data/data_sources/cable_presets_data_source
features/diagram/data/data_sources/protection_presets_data_source
features/diagram/data/models/electrical_node_dto
features/diagram/data/repositories/diagram_repository_impl
features/diagram/domain/entities/cable_definition
features/diagram/domain/entities/cable_physics
features/diagram/domain/entities/calculation_result
features/diagram/domain/entities/catalog_metadata
features/diagram/domain/entities/conductor_attributes
features/diagram/domain/entities/diagram_models
features/diagram/domain/entities/electrical_enums
features/diagram/domain/entities/electrical_node
features/diagram/domain/entities/electrical_state
features/diagram/domain/entities/forensic_finding
features/diagram/domain/entities/measurement_state
features/diagram/domain/entities/protection_definition
features/diagram/domain/entities/validation_status
features/diagram/domain/repositories/diagram_repository
features/diagram/domain/services/electrical_calculator
features/diagram/domain/services/electrical_forensics
features/diagram/domain/services/iz_constants
features/diagram/domain/services/node_factory
features/diagram/domain/services/tree_cable_info
features/diagram/domain/services/tree_utilities
features/diagram/domain/services/validation_engine
features/diagram/domain/use_cases/add_child_node
features/diagram/domain/use_cases/calculate_diagram
features/diagram/domain/use_cases/get_saved_diagrams
features/diagram/domain/use_cases/load_diagram
features/diagram/domain/use_cases/save_diagram
features/diagram/domain/use_cases/update_node
features/diagram/domain/use_cases/validate_diagram
features/diagram/presentation/bloc/diagram_cubit
features/diagram/presentation/bloc/diagram_state
features/diagram/presentation/logic/auto_layout_service
features/diagram/presentation/logic/drag_drop_handler
features/diagram/presentation/painters/diagram_painters
features/diagram/presentation/screens/single_line_diagram_page
features/diagram/presentation/widgets/alignment_guides_widget
features/diagram/presentation/widgets/cable_catalog_dialog
features/diagram/presentation/widgets/circuit_config_sheet
features/diagram/presentation/widgets/diagnostic_sheet
features/diagram/presentation/widgets/diagram_bottom_panel
features/diagram/presentation/widgets/diagram_canvas
features/diagram/presentation/widgets/diagram_constants
features/diagram/presentation/widgets/diagram_extra_buttons
features/diagram/presentation/widgets/diagram_floating_actions
features/diagram/presentation/widgets/diagram_node_widget
features/diagram/presentation/widgets/diagram_top_bar
features/diagram/presentation/widgets/diagram_wires_layer
features/diagram/presentation/widgets/electrical_node_widget
features/diagram/presentation/widgets/health_check_panel
features/diagram/presentation/widgets/node_status_badge
features/diagram/presentation/widgets/onboarding_overlay
features/diagram/presentation/widgets/panel_containers_layer
features/diagram/presentation/widgets/protection_catalog_dialog
features/diagram/presentation/widgets/protection_config_sheet
features/documents/domain/services/pdf_service
features/documents/presentation/screens/document_generation_page
features/health/domain/entities/asset_metadata
features/health/domain/entities/field_measurement
features/health/domain/entities/insight
features/health/domain/entities/installation_health
features/health/domain/services/electrical_validation_service
features/health/domain/services/health_scoring_service
features/health/domain/services/insight_generator_service
features/health/presentation/bloc/health_bloc
features/health/presentation/extensions/field_measurement_ui_extension
features/health/presentation/screens/health_dashboard_page
features/health/presentation/screens/health_page
features/health/presentation/widgets/component_detail_sheet
features/health/presentation/widgets/component_selector_page
features/health/presentation/widgets/components_list_sheet
features/health/presentation/widgets/health_score_card
features/health/presentation/widgets/insight_card
features/health/presentation/widgets/manual_entry_form
features/help/presentation/screens/help_page
features/home/presentation/screens/dashboard_page
features/home/presentation/screens/home_page
features/onboarding/data/models/onboarding_status_dto
features/onboarding/domain/entities/onboarding_preferences
features/onboarding/domain/entities/onboarding_step
features/onboarding/domain/usecases/save_onboarding_data_usecase
features/onboarding/domain/utils/validators
features/onboarding/presentation/bloc/onboarding_cubit
features/onboarding/presentation/screens/onboarding_page
features/onboarding/presentation/screens/welcome_intro_screen
features/onboarding/presentation/widgets/company_info_step
features/onboarding/presentation/widgets/personal_info_step
features/onboarding/presentation/widgets/preferences_step
features/onboarding/presentation/widgets/professional_type_step
features/onboarding/presentation/widgets/welcome_step
features/profile/presentation/screens/profile_page
features/projects/data/datasources/project_local_data_source
features/projects/data/models/project_model
features/projects/data/repositories/project_repository_impl
features/projects/domain/entities/budget_config
features/projects/domain/entities/project
features/projects/domain/repositories/project_repository
features/projects/presentation/bloc/project_cubit
features/projects/presentation/screens/general_config_page
features/projects/presentation/screens/projects_page
features/regulations/presentation/screens/regulations_page
features/reports/data/generators/budget_pdf_generator
features/reports/data/generators/pdf_report_generator
features/reports/data/generators/report_generator_interface
features/reports/data/generators/single_line_diagram_generator
features/reports/data/generators/technical_memory_generator
features/reports/data/generators/user_manual_generator
features/reports/data/painters/iec_symbols
features/reports/data/painters/technical_frame_painter
features/reports/data/repositories/report_repository_impl
features/reports/domain/repositories/report_repository
features/reports/domain/services/document_service
features/reports/domain/services/document_strategy
features/reports/domain/services/form_filler_service
features/reports/domain/services/maps/andalucia_form_map
features/reports/domain/services/maps/region_form_map
features/reports/domain/services/strategies/andalucia_document_strategy
features/reports/domain/use_cases/generate_technical_memory
features/settings/data/models/app_preferences_dto
features/settings/data/models/app_settings_model
features/settings/data/models/user_profile_model
features/settings/data/repositories/settings_repository_impl
features/settings/data/repositories/user_profile_repository_impl
features/settings/domain/entities/app_preferences
features/settings/domain/entities/app_theme_mode
features/settings/domain/entities/user_profile
features/settings/domain/repositories/settings_repository
features/settings/domain/repositories/user_profile_repository
features/settings/domain/usecases/get_user_profile
features/settings/domain/usecases/save_user_profile
features/settings/domain/usecases/update_profile_photo
features/settings/presentation/bloc/settings_cubit
features/settings/presentation/bloc/user_profile_cubit
features/settings/presentation/screens/settings_page
features/settings/presentation/widgets/edit_profile_sheet
features/settings/presentation/widgets/language_selector
features/settings/presentation/widgets/profile_header_card
features/settings/presentation/widgets/text_size_selector
features/templates/domain/entities/template_model
injection_container
l10n/app_localizations
l10n/app_localizations_en
l10n/app_localizations_es
main