{"id":27395717,"url":"https://github.com/josefdc/algoritmos-despacho","last_synced_at":"2026-05-01T04:41:46.600Z","repository":{"id":255922589,"uuid":"851861806","full_name":"josefdc/Algoritmos-Despacho","owner":"josefdc","description":"Implementación de algoritmos de planificación de procesos (FIFO, SJF, Prioridad) con GUI en PyQt5 y análisis usando OpenAI GPT.","archived":false,"fork":false,"pushed_at":"2024-09-07T20:48:31.000Z","size":120,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-09-08T21:50:52.500Z","etag":null,"topics":["collaborate","gantt-chart","github-codespaces","gui","openai","pyqt5","python","scheduling-algorithms"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/josefdc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","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}},"created_at":"2024-09-03T20:23:28.000Z","updated_at":"2024-09-07T20:56:44.000Z","dependencies_parsed_at":"2024-09-07T21:58:06.374Z","dependency_job_id":null,"html_url":"https://github.com/josefdc/Algoritmos-Despacho","commit_stats":null,"previous_names":["josefdc/algoritmos-despacho"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josefdc%2FAlgoritmos-Despacho","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josefdc%2FAlgoritmos-Despacho/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josefdc%2FAlgoritmos-Despacho/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josefdc%2FAlgoritmos-Despacho/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/josefdc","download_url":"https://codeload.github.com/josefdc/Algoritmos-Despacho/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248795314,"owners_count":21162748,"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","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":["collaborate","gantt-chart","github-codespaces","gui","openai","pyqt5","python","scheduling-algorithms"],"created_at":"2025-04-13T23:25:01.838Z","updated_at":"2026-05-01T04:41:41.568Z","avatar_url":"https://github.com/josefdc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Algoritmos de Despacho de Procesos\n\nEste proyecto implementa diversos **algoritmos de despacho de procesos** (FIFO, SJF y Prioridad) a través de una **interfaz gráfica de usuario (GUI)** utilizando **PyQt5**. Además, se integra con **OpenAI** para proporcionar análisis detallados de los resultados obtenidos.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/prueba.jpeg\" alt=\"Demostración de la Aplicación\" width=\"600\"/\u003e\n\u003c/p\u003e\n\n## Tabla de Contenidos\n\n1. [Requisitos](#requisitos)\n2. [Instalación](#instalación)\n3. [Uso](#uso)\n4. [Estructura del Proyecto](#estructura-del-proyecto)\n5. [Pruebas](#pruebas)\n6. [Prompts de Demostración](#prompts-de-demostración)\n7. [Licencia](#licencia)\n\n## Requisitos\n\n- **Python 3.7** o superior.\n\n## Instalación\n\nSigue estos pasos para configurar y ejecutar el proyecto en tu máquina local:\n\n### 1. Clonar el Repositorio\n\n```bash\ngit clone https://github.com/josefdc/Algoritmos-Despacho.git\ncd Algoritmos-Despacho\n```\n\n### 2. Crear un Entorno Virtual\n\nCrea un entorno virtual para mantener las dependencias del proyecto aisladas del sistema global.\n\n**En Linux/macOS:**\n\n```bash\npython3 -m venv .venv\nsource .venv/bin/activate\n```\n\n**En Windows:**\n\n```bash\npython -m venv .venv\n.venv\\Scripts\\activate\n```\n\n### 3. Instalar Dependencias\n\nInstala las dependencias requeridas listadas en el archivo `requirements.txt`.\n\n```bash\npip install -r requirements.txt\n```\n\n### 4. Configurar las Variables de Entorno\n\nCrea un archivo `.env` en la raíz del proyecto para almacenar tu clave de API de OpenAI:\n\n```bash\nOPENAI_API_KEY=tu_clave_de_api_aqui\n```\n\nAsegúrate de reemplazar `tu_clave_de_api_aqui` con tu clave de API real de OpenAI.\n\n### 5. Ejecutar la Aplicación\n\nEjecuta el archivo `main.py` para iniciar la aplicación:\n\n```bash\npython src/main.py\n```\n\n### 6. Ejecutar Pruebas\n\nPara ejecutar las pruebas unitarias y verificar que todo funcione correctamente, usa:\n\n```bash\npython -m unittest discover tests\n```\n\n## Uso\n\nLa aplicación GUI permite a los usuarios:\n\n1. **Agregar procesos** con su ID, tiempo de llegada, tiempo de ejecución y prioridad.\n2. **Seleccionar el algoritmo de despacho** deseado (FIFO, SJF, Prioridad).\n3. **Generar el diagrama de Gantt** para visualizar cómo se programan los procesos.\n4. **Obtener análisis de los resultados** utilizando la API de OpenAI.\n\n## Estructura del Proyecto\n\n- `main.py`: Punto de entrada principal de la aplicación.\n- `gui.py`: Implementación de la interfaz gráfica de usuario (GUI) utilizando PyQt5.\n- `scheduler.py`: Contiene la lógica de los algoritmos de planificación (FIFO, SJF, Prioridad).\n- `gantt_chart.py`: Módulo para generar gráficos de Gantt utilizando Matplotlib.\n- `openai_client.py`: Cliente para interactuar con la API de OpenAI.\n- `test_main.py`: Pruebas unitarias para verificar la funcionalidad de los algoritmos de planificación.\n- `requirements.txt`: Lista de todas las dependencias necesarias para ejecutar el proyecto.\n\n## Pruebas\n\nLas pruebas unitarias están implementadas en `test_main.py` y verifican la funcionalidad de los algoritmos de despacho de procesos (FIFO, SJF, Prioridad). Para ejecutar las pruebas, usa:\n\n```bash\npython -m unittest discover tests\n```\n\n## Prompts de Demostración\n\nEl proyecto incluye la capacidad de interactuar con OpenAI GPT para analizar y comparar resultados de los algoritmos de planificación. Algunos ejemplos de prompts que puedes usar:\n\n1. **Comparación entre Algoritmos de Planificación:**\n   - Prompt: `¿Cuál es la diferencia en el tiempo de espera total y promedio cuando se utiliza el algoritmo FIFO en comparación con SJF y Prioridad para los procesos actuales? ¿Cuál es más eficiente en términos de tiempo de espera?`\n\n2. **Análisis de Resultados en Detalle:**\n   - Prompt: `Explica cómo se ejecutan los procesos en el diagrama de Gantt cuando se utiliza el algoritmo de planificación Prioridad. ¿Qué impacto tiene esto en el tiempo de finalización y de espera?`\n\n3. **Predicción de Comportamiento con Cambios en los Procesos:**\n   - Prompt: `Si el tiempo de llegada del proceso P3 se retrasa en 4 unidades de tiempo, ¿cómo cambiaría el diagrama de Gantt y el tiempo de espera total utilizando el algoritmo SJF?`\n\n4. **Estrategias de Mejoramiento:**\n   - Prompt: `¿Qué estrategias podríamos considerar para mejorar el tiempo de espera promedio de los procesos utilizando algoritmos de planificación más avanzados o ajustando los parámetros actuales?`\n\n## Licencia\n\nEste proyecto está bajo la Licencia MIT - vea el archivo [LICENSE](LICENSE) para más detalles.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosefdc%2Falgoritmos-despacho","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjosefdc%2Falgoritmos-despacho","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosefdc%2Falgoritmos-despacho/lists"}