GOBERNACION_TAREAS
  • TypeScript 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-05-28 16:35:27 +00:00
prisma feat: implementa nuevas notificaciones 2026-05-22 21:13:20 +00:00
src feat: implementa nuevas notificaciones 2026-05-22 21:13:20 +00:00
.env.example feat: implementa nuevas notificaciones 2026-05-22 21:13:20 +00:00
.gitignore dependency: añade dependencias y adiciona al gitignore nueva ruta 2025-11-11 22:00:09 +00:00
dockerfile.dev feat: implementa nuevas notificaciones 2026-05-22 21:13:20 +00:00
dockerfile.prod 🔧 config: actualiza dependecias y docker 2026-05-28 16:35:27 +00:00
package-lock.json 🔧 config: actualiza dependecias y docker 2026-05-28 16:35:27 +00:00
package.json 🔧 chore:actualiza dependencias de los paquetes en package.json y package-lock.json 2025-12-11 14:22:05 +00:00
README.md 📝docs: añade variable de entorno 2025-11-25 14:29:51 +00:00
tsconfig.json Resolviendo conflictos 2024-12-18 19:42:13 +00:00

# 🧠 Sistema de Actualización Judicial Automática

Este proyecto implementa un servicio de tareas programadas (cron jobs) en Node.js + TypeScript, diseñado para sincronizar automáticamente la información judicial desde la API oficial de la Rama Judicial de Colombia con una base de datos local administrada por Prisma ORM.

La aplicación consulta los procesos judiciales registrados en la base de datos, obtiene sus actuaciones más recientes desde la API pública y actualiza o inserta la información en la base de datos todos los días a la medianoche.


🚀 Características principales

  • 🔄 Tareas programadas automáticas: se ejecutan sin intervención humana, gracias al uso de node-cron.
  • ⚙️ Arquitectura MVC adaptada a servicios: separa claramente la lógica de sincronización, la conexión con la API judicial y la persistencia con Prisma.
  • 🧩 Integración con API externa: obtiene el idProceso y las actuaciones de cada radicado desde la API de la Rama Judicial.
  • 🗃️ Sincronización incremental: solo inserta o actualiza actuaciones nuevas o modificadas.
  • 🧱 Uso de Prisma ORM: para una interacción eficiente y segura con la base de datos.
  • 🧵 Procesamiento por tandas: permite manejar grandes volúmenes de procesos (por lotes) para evitar saturar la API externa.
  • 🕛 Ejecución diaria automática: el sistema se ejecuta cada día a las 12:00 a.m.

📂 Estructura del proyecto


src/
├── config/
│   └── config.ts                 # Variables de entorno y configuración general
├── services/
│   ├── prisma.services.ts        # Inicialización de Prisma ORM
│   ├── judicialBranch.services.ts# Conexión con la API de la Rama Judicial
│   └── cronUpdate.services.ts    # Lógica de tareas automáticas y sincronización
├── utils/
│   └── retry.ts               # Funcionalidad para reintentar las consultal
├── types/
│   └── judicialBranch.types.ts   # Tipos TypeScript para las actuaciones y procesos
├── jobs/
│   └── updateProcesses.job.ts    # Definición de la tarea programada con node-cron
├── app.ts                      # Punto de entrada de la aplicación
└── prisma/
└── schema.prisma             # Definición del modelo de base de datos


⚙️ Instalación y configuración

1. Clonar el repositorio

git clone https://github.com/GOBERNACION-PROYECTO/TAREAS_GOBERNACION.git
cd TAREAS_GOBERNACION

2. Instalar dependencias

npm install

3. Configurar variables de entorno

Crea un archivo .env en la raíz del proyectoa partir del .env.example copialo y pegalo

4. Ejecutar migraciones de Prisma

npx prisma migrate dev

5. Ejecutar la aplicación

npm run dev

La aplicación se ejecutará en el puerto configurado (por defecto 6590).


🕐 Programación del cron job

El cron job está definido para ejecutarse todos los días a medianoche:

const CRON_TIME = '0 0 * * *'; // 12:00 AM todos los días

Cada ejecución:

  1. Obtiene todos los procesos guardados (procesoJudicial).
  2. Los procesa en tandas (por defecto, de 3 procesos a la vez).
  3. Consulta el idProceso de cada radicado en la API externa.
  4. Descarga las actuaciones y las sincroniza con la base de datos.
  5. Registra en consola un resumen de las inserciones y actualizaciones.

🧩 Ejemplo de salida en consola

🌙 Ejecutando tarea programada de actualización a medianoche...
🚀 Iniciando tarea automática de actualización judicial...

🕒 Ejecutando tanda 1 de 3...
✔ 66001333300120230043501: 14 insertadas, 0 actualizadas.
✔ 66001333300420240000600: 40 insertadas, 1 actualizadas.
⏳ Tiempo de tanda 1: 1.68s

🕒 Ejecutando tanda 2 de 3...
✔ 66001333300620240000401: 25 insertadas, 2 actualizadas.
⏳ Tiempo de tanda 2: 792ms

✅ Tarea automática completada.