{"id":30815482,"url":"https://github.com/derek486/ams-0.5","last_synced_at":"2026-04-11T05:34:03.154Z","repository":{"id":258741780,"uuid":"866658873","full_name":"Derek486/AMS-0.5","owner":"Derek486","description":"Motor Manager AMS es un sistema diseñado para gestionar y monitorear motores de rotación constante. Utiliza tecnologías modernas como Docker, Kafka y Flask para proporcionar una solución robusta y escalable.","archived":false,"fork":false,"pushed_at":"2025-06-28T22:37:43.000Z","size":952,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-28T23:27:09.900Z","etag":null,"topics":["docker","dotnet","kafka","machine-learning","mysql","react"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Derek486.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-02T16:43:54.000Z","updated_at":"2025-06-28T22:37:47.000Z","dependencies_parsed_at":"2024-10-26T17:27:24.310Z","dependency_job_id":"4f0b0f9a-b975-4052-afec-de5251c728e2","html_url":"https://github.com/Derek486/AMS-0.5","commit_stats":null,"previous_names":["juanjosetcp/ams-0.5","derek486/ams-0.5"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Derek486/AMS-0.5","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Derek486%2FAMS-0.5","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Derek486%2FAMS-0.5/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Derek486%2FAMS-0.5/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Derek486%2FAMS-0.5/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Derek486","download_url":"https://codeload.github.com/Derek486/AMS-0.5/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Derek486%2FAMS-0.5/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273880071,"owners_count":25184428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","dotnet","kafka","machine-learning","mysql","react"],"created_at":"2025-09-06T08:50:40.419Z","updated_at":"2025-10-04T06:44:13.001Z","avatar_url":"https://github.com/Derek486.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Motor Manager AMS 0.5\n\nMotor Manager AMS es un sistema diseñado para gestionar y monitorear motores de rotación constante. Utiliza tecnologías modernas como Docker, Kafka y Flask para proporcionar una solución robusta y escalable.\n\n## Clonación del Repositorio\n\nPara clonar este repositorio, asegúrate de tener Git instalado en tu máquina. Luego, ejecuta el siguiente comando:\n\n```bash\ngit clone --recurse-submodules https://github.com/JuanJoseTCP/AMS-0.5.git\n```\n```bash\ncd AMS-0.5\n```\n## Tabla de Contenidos\n\n1. [Arquitectura del Proyecto](#arquitectura-del-proyecto)\n2. [Servicios](#servicios)\n    - [1. Kafka Container](#1-kafka-container)\n    - [2. Front Cluster](#2-front-cluster)\n    - [3. Backend Container](#3-backend-container)\n3. [Configuración del Proyecto](#configuración-del-proyecto)\n4. [Iniciar el Proyecto](#iniciar-el-proyecto)\n\n## Arquitectura del Proyecto\n\nLa arquitectura de Motor Manager AMS está compuesta por varios contenedores que trabajan en conjunto para ofrecer funcionalidades de administración y monitoreo de motores. Se organiza en tres principales secciones: Kafka Container, Front Cluster y Backend Container.\n\n## Servicios\n\n### 1. Kafka Container\n\nEste contenedor de **Kafka** gestiona la comunicación de datos en tiempo real entre diferentes servicios, actuando como un broker de mensajería.\n\n#### Servicios\n\n- **Zookeeper**\n  - Descripción: Servicio de coordinación que gestiona la configuración y sincronización de los nodos de Kafka.\n  - **Puerto expuesto**: `2181`\n\n- **Kafka Broker**\n  - Descripción: Componente principal que gestiona la publicación y suscripción de mensajes.\n  - **Puerto expuesto**: `9092`\n\n### 2. Front Cluster\n\nEste **Front Cluster** contiene dos aplicaciones que trabajan en conjunto para la gestión y el monitoreo de motores industriales:\n\n#### Aplicaciones\n\n- **Aplicación de Administración (React)**\n  - Funciones: Autenticación, registro de usuarios, operaciones CRUD sobre la tabla de motores.\n  - **Rutas principales**:\n    - `/auth`: Para autenticación y registro.\n    - `/`: Para las operaciones generales de la aplicación (CRUD, visualización de datos, etc.).\n\n- **Aplicación de Envío de Datos (Flask)**\n  - Funciones: Simula el control de flujo de datos enviados desde un sensor de vibración de los motores.\n  - **Ruta principal**:\n    - `/testing`: Para simular el envío de datos desde los motores.\n\n### 3. Backend Container\n\nEste contenedor es responsable de gestionar el procesamiento de datos de los motores y realizar operaciones CRUD sobre ellos. Incluye servicios de bases de datos y herramientas de monitoreo.\n\n#### Servicios\n\n- **worker.db**\n  - Descripción: Base de datos interna utilizando PostgreSQL. Almacena datos relevantes sobre los motores.\n  - **Puertos**: Expone el puerto `5432` para conexiones a la base de datos.\n\n- **worker.dotnet**\n  - Descripción: Lógica del backend que gestiona el procesamiento de datos y las interacciones con Kafka y PostgreSQL.\n  - **Puertos**: Expone el puerto `8081` para interacciones con el backend.\n\n- **cAdvisor, Prometheus y Grafana**\n  - Descripción: Herramientas de monitoreo que proporcionan métricas sobre el rendimiento del sistema y visualización de datos, para la versión de desarrollo y muestra no serán consideradas.\n\n## Configuración del Proyecto\n\nPara una configuración adecuada de Motor Manager AMS, se recomienda crear un archivo `.env` en el mismo directorio donde se encuentra el `docker-compose.yml`. Este archivo debe contener todas las variables necesarias para personalizar la configuración de Kafka y Zookeeper, así como otras configuraciones del proyecto.\n\n### Variables de Entorno Recomendadas\n\n#### Para la Aplicación de Administración (React):\n\n- **`MOTORES_API_URL`**: Indica la URL donde estará alojado el worker de C# encargado de las operaciones CRUD sobre los motores. No debe incluir una ruta específica, solo el host.\n\n#### Para la Aplicación de Envío de Datos (Flask):\n\n- **`KAFKA_BROKER`**: Indica el host donde estará alojado el broker de Kafka, para enviar los datos de prueba que serán analizados por el modelo.\n  \n\u003e [!IMPORTANT]  \n\u003e Para garantizar una comunicación adecuada, asegúrate de que el valor de esta variable coincida con el que se utilizó para configurar el clúster de Kafka, específicamente en la variable `KAFKA_ADVERTISED_LISTENERS` (el host y el puerto).\n\n- **`KAFKA_TOPIC`**: Define el tópico en el que se enviarán los datos. Este puede variar según la conveniencia del equipo de desarrollo.\n- **`MOTORES_API_URL`**: Al igual que en la primera aplicación, esta variable indica la URL donde estará alojado el worker de C# para ejecutar las operaciones de lectura. No debe incluir una ruta específica, solo el host (puede compartirse con la variable de la primera aplicación).\n\n### Variables de Entorno para Kafka y el Backend\n\n#### Para Kafka:\n\n- **`LISTENER_IP`**: Esta variable debe contener la dirección IP de la máquina que actuará como el broker de Kafka, a la que se conectarán los clientes para enviar y recibir mensajes.\n\n#### Para el Backend (Worker de C#):\n\n- **`PG_HOST`**: Host donde se ejecuta el contenedor de la base de datos PostgreSQL. Valor por defecto: `worker.db`.\n- **`PG_PORT`**: Puerto de conexión a PostgreSQL. Valor por defecto: `5432`.\n- **`PG_DB`**: Nombre de la base de datos PostgreSQL. Valor por defecto: `ams`.\n- **`PG_USER`**: Nombre de usuario para acceder a PostgreSQL. Valor por defecto: `worker`.\n- **`PG_PASSWORD`**: Contraseña para el usuario de PostgreSQL. Valor por defecto: `pass123456`.\n- **`KAFKA_HOST`**: Host del broker de Kafka. Debe coincidir con el valor de `KAFKA_BROKER`.\n- **`KAFKA_TOPIC`**: Tópico para el envío de datos desde el backend. Valor por defecto: `vibration-topic`.\n\n### Variables de Entorno para el `docker-compose.yml`\n\n#### Variables Comunes\n\n- **`PG_DB`**: Nombre de la base de datos PostgreSQL. Valor por defecto: `ams`.\n- **`PG_USER`**: Nombre de usuario para acceder a PostgreSQL. Valor por defecto: `worker`.\n- **`PG_PASSWORD`**: Contraseña para el usuario de PostgreSQL. Valor por defecto: `pass123456`.\n- **`PG_HOST`**: Host donde se ejecuta el contenedor de la base de datos. Valor por defecto: `worker.db`.\n- **`PG_PORT`**: Puerto de conexión a PostgreSQL. Valor por defecto: `5432`.\n\n#### Variables Específicas\n\n- **`KAFKA_TOPIC`**: Tópico para el envío de datos, que puede definirse o sobreescribirse al iniciar el contenedor. Valor por defecto: `vibration-topic`.\n\n## Iniciar el Proyecto\n\nPara iniciar el proyecto, sigue estos pasos:\n\n1. Asegúrate de que Docker y Docker Compose estén instalados en tu máquina.\n3. Ejecuta el siguiente comando para iniciar todos los servicios:\n\n   ```bash\n   docker-compose up -d\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderek486%2Fams-0.5","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderek486%2Fams-0.5","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderek486%2Fams-0.5/lists"}