{"id":20229056,"url":"https://github.com/bladealex9848/judicalc","last_synced_at":"2026-04-18T02:32:29.949Z","repository":{"id":252808847,"uuid":"841522005","full_name":"bladealex9848/JudiCalc","owner":"bladealex9848","description":"JudiCalc es una herramienta web interactiva diseñada específicamente para funcionarios y administrativos de la Rama Judicial de Colombia. Esta aplicación permite calcular con precisión los días hábiles entre dos fechas dadas, teniendo en cuenta los fines de semana, días festivos nacionales.","archived":false,"fork":false,"pushed_at":"2024-09-03T20:53:21.000Z","size":42,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-13T12:50:56.707Z","etag":null,"topics":["law","legaltech","legaltools","python","streamlit"],"latest_commit_sha":null,"homepage":"https://judicalc.streamlit.app/","language":"Python","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/bladealex9848.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-08-12T15:16:16.000Z","updated_at":"2024-09-03T20:53:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"9033dd03-2684-4b9e-8d44-7fe958191b15","html_url":"https://github.com/bladealex9848/JudiCalc","commit_stats":null,"previous_names":["bladealex9848/judicalc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bladealex9848/JudiCalc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bladealex9848%2FJudiCalc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bladealex9848%2FJudiCalc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bladealex9848%2FJudiCalc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bladealex9848%2FJudiCalc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bladealex9848","download_url":"https://codeload.github.com/bladealex9848/JudiCalc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bladealex9848%2FJudiCalc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31953781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"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":["law","legaltech","legaltools","python","streamlit"],"created_at":"2024-11-14T07:34:06.583Z","updated_at":"2026-04-18T02:32:29.933Z","avatar_url":"https://github.com/bladealex9848.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JudiCalc: Calculadora de Días Hábiles para la Rama Judicial de Colombia\n\n## Tabla de Contenidos\n1. [Descripción](#descripción)\n2. [Características](#características)\n3. [Estructura del Proyecto](#estructura-del-proyecto)\n4. [Instalación](#instalación)\n5. [Uso](#uso)\n6. [Manual Técnico](#manual-técnico)\n7. [Manual de Usuario](#manual-de-usuario)\n8. [Contribución](#contribución)\n9. [Registro de Cambios](#registro-de-cambios)\n10. [Créditos](#créditos)\n11. [Licencia](#licencia)\n\n## Descripción\n\nJudiCalc es una herramienta web interactiva diseñada específicamente para funcionarios y administrativos de la Rama Judicial de Colombia. Esta aplicación permite calcular con precisión los días hábiles entre dos fechas dadas, teniendo en cuenta los fines de semana, días festivos nacionales y las particularidades de diferentes especialidades judiciales.\n\n## Características Principales\n\n- **Cálculo Preciso de Días Hábiles**: Considera fines de semana y festivos nacionales.\n- **Adaptación a Especialidades Judiciales**: Incluye cálculos para Colectiva, Individual Penal, Ejecución de penas y promiscuos de familia.\n- **Visualización de Días Hábiles por Mes**: Muestra una tabla detallada por especialidad.\n- **Interfaz de Usuario Intuitiva**: Desarrollada con Streamlit para una experiencia web fluida.\n- **Capacidad de Adaptación Anual**: Actualmente configurado para 2023, con posibilidad de expansión.\n\n## Estructura del Proyecto\n```\nJudiCalc/\n│\n├── app.py\n├── test_judicialc.py\n│\n├── assets/\n│   └── logo.png\n│   └── holidays_2023.json\n│   └── dias_habiles_2023.csv\n│\n├── requirements.txt\n├── .gitignore\n└── README.md\n```\n\n## Instalación\n\n1. Clonar el repositorio:\n   ```\n   git clone https://github.com/tu-usuario/JudiCalc.git\n   ```\n2. Navegar al directorio del proyecto:\n   ```\n   cd JudiCalc\n   ```\n3. Crear un entorno virtual:\n   ```\n   python -m venv venv\n   source venv/bin/activate  # En Windows use `venv\\Scripts\\activate`\n   ```\n4. Instalar las dependencias:\n   ```\n   pip install -r requirements.txt\n   ```\n\n## Uso\n\nPara ejecutar la aplicación:\n```\nstreamlit run app.py\n```\nSiga las instrucciones en la interfaz de usuario para seleccionar fechas y calcular días hábiles.\n\n### Componentes Principales\n\n#### 1. Función `load_data(year)`\n- Carga los días festivos desde un archivo JSON.\n- Lee el CSV de días hábiles y lo convierte en un diccionario.\n- Maneja errores si los archivos no se encuentran.\n\n#### 2. Función `calculate_working_days(start_date, end_date, specialty, working_days)`\n- Calcula los días hábiles entre dos fechas para una especialidad específica.\n- Utiliza los datos del CSV para determinar los días hábiles por mes.\n- Ajusta el cálculo para meses parciales al inicio y final del período.\n\n#### 3. Interfaz de Usuario (Streamlit)\n- Configura la página y el sidebar.\n- Maneja la selección de fechas y especialidad.\n- Muestra resultados y tabla de días hábiles.\n\n### Flujo de Datos\n\n1. El usuario selecciona el año, las fechas y la especialidad.\n2. Se cargan los datos de días festivos y hábiles.\n3. Se calcula el número de días hábiles.\n4. Se muestra el resultado y la tabla de días hábiles por mes.\n\n### Manejo de Errores\n\n- Validación de fechas de entrada.\n- Manejo de archivos no encontrados con mensajes de advertencia.\n- Uso de datos por defecto si no se encuentran los archivos necesarios.\n\n### Consideraciones de Rendimiento\n\n- La aplicación está optimizada para cálculos rápidos utilizando operaciones vectorizadas de Pandas.\n- Los datos se cargan una sola vez al inicio, mejorando el tiempo de respuesta para cálculos subsiguientes.\n\n### Seguridad\n\n- No se almacenan datos sensibles del usuario.\n- Los archivos de datos están en formato JSON y CSV, que son fáciles de auditar.\n\n### Mantenimiento y Actualización\n\nPara añadir soporte para un nuevo año:\n1. Crear `holidays_[AÑO].json` en la carpeta `assets`.\n2. Crear `dias_habiles_[AÑO].csv` en la carpeta `assets`.\n3. Actualizar la lista de años disponibles en el selectbox del sidebar.\n\n## Manual de Usuario\n\n### Introducción\n\nJudiCalc es una herramienta diseñada para calcular días hábiles en el contexto judicial colombiano. Permite a los usuarios determinar el número de días hábiles entre dos fechas, considerando diferentes especialidades judiciales.\n\n### Acceso a la Aplicación\n\n1. Abra su navegador web.\n2. Visite la URL: [https://judicalc.streamlit.app](https://judicalc.streamlit.app)\n\n### Uso de la Aplicación\n\n#### 1. Selección del Año\n- En el sidebar, elija el año para el cual desea realizar el cálculo.\n\n#### 2. Elección de la Especialidad\n- También en el sidebar, seleccione la especialidad judicial relevante:\n  - Colectiva\n  - Individual Penal\n  - Individual Ejecución de penas y promiscuos de familia\n\n#### 3. Selección de Fechas\n- En el área principal, use los selectores de fecha para elegir:\n  - Fecha de inicio\n  - Fecha de fin\n\n#### 4. Cálculo de Días Hábiles\n- Una vez seleccionadas las fechas, la aplicación automáticamente calculará y mostrará el número de días hábiles.\n\n#### 5. Visualización de Resultados\n- El resultado se muestra en un mensaje de éxito, indicando el número de días hábiles entre las fechas seleccionadas.\n- Debajo del resultado, se muestra una tabla con el desglose de días hábiles por mes para el año seleccionado.\n\n### Funcionalidades Adicionales\n\n#### Carga de Archivo de Días Festivos Personalizado\n- En el sidebar, puede cargar un archivo JSON con días festivos personalizados.\n- Útil para casos especiales o para probar diferentes escenarios.\n\n#### Recursos Adicionales\n- En el sidebar, expanda la sección \"Recursos Adicionales\" para acceder a:\n  - Manual de Usuario\n  - Formulario para Reportar Problemas\n\n### Interpretación de Resultados\n\n- El número de días hábiles mostrado excluye fines de semana y días festivos.\n- La tabla de días hábiles por mes muestra el desglose para cada especialidad, útil para comparaciones y verificaciones.\n\n### Solución de Problemas Comunes\n\n1. **Las fechas no se pueden seleccionar**: Asegúrese de que la fecha de inicio sea anterior a la fecha de fin.\n2. **El cálculo parece incorrecto**: Verifique la especialidad seleccionada y el año, ya que los días hábiles pueden variar.\n3. **Error al cargar archivo personalizado**: Asegúrese de que el archivo esté en formato JSON válido.\n\n### Contacto y Soporte\n\nPara obtener ayuda adicional o reportar problemas:\n- Visite nuestra [página de GitHub](https://github.com/bladealex9848/JudiCalc/issues)\n- Contacte al desarrollador a través de los enlaces proporcionados en el sidebar de la aplicación.\n\n## Contribución\n\nLas contribuciones son bienvenidas. Por favor, abra un issue para discutir cambios mayores antes de hacer un pull request.\n\n## Registro de Cambios\n\n- 2023-08-12: Versión inicial (v1.0.0)\n  - Implementación del cálculo de días hábiles para el año 2023\n  - Interfaz web con Streamlit\n\n## Créditos\n\nDesarrollado y mantenido por Alexander Oviedo Fadul, Profesional Universitario Grado 11 en el Consejo Seccional de la Judicatura de Sucre.\n\n[GitHub](https://github.com/bladealex9848) | [Website](https://alexander.oviedo.isabellaea.com/) | [Instagram](https://www.instagram.com/alexander.oviedo.fadul) | [Twitter](https://twitter.com/alexanderofadul) | [Facebook](https://www.facebook.com/alexanderof/) | [WhatsApp](https://api.whatsapp.com/send?phone=573015930519\u0026text=Hola%20!Quiero%20conversar%20contigo!) | [LinkedIn](https://www.linkedin.com/in/alexander-oviedo-fadul-49434b9a/)\n\n## Licencia\n\nEste proyecto está licenciado bajo la Licencia MIT - vea el archivo [MIT License](https://opensource.org/licenses/MIT) para más detalles.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbladealex9848%2Fjudicalc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbladealex9848%2Fjudicalc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbladealex9848%2Fjudicalc/lists"}