Merge pull request #6 from marcogll/main

merge
This commit is contained in:
Marco Gallegos
2025-12-13 16:04:43 -06:00
committed by GitHub
6 changed files with 115 additions and 12 deletions

9
.env.example Normal file
View File

@@ -0,0 +1,9 @@
# Application configuration
NODE_ENV=development
# Database configuration
DB_HOST=db
DB_USER=postgres
DB_PASSWORD=secret
DB_NAME=hr_platform
DB_PORT=5432

21
Dockerfile Normal file
View File

@@ -0,0 +1,21 @@
# Usar una imagen base oficial de Node.js
ARG NODE_VERSION=18
FROM node:${NODE_VERSION}-alpine
# Establecer el directorio de trabajo en el contenedor
WORKDIR /usr/src/app
# Copiar package.json y package-lock.json (si existe)
COPY package*.json ./
# Instalar las dependencias del proyecto
RUN npm install
# Copiar el resto del código de la aplicación
COPY . .
# Exponer el puerto en el que la aplicación se ejecutará
EXPOSE 3011
# Comando para iniciar la aplicación
CMD [ "node", "src/index.js" ]

34
docker-compose.yml Normal file
View File

@@ -0,0 +1,34 @@
version: '3.8'
services:
api:
build: .
ports:
- "3011:3011"
volumes:
- .:/usr/src/app
networks:
- app-network
env_file:
- .env
db:
image: postgres:13
restart: always
environment:
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: ${DB_NAME}
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
networks:
- app-network
networks:
app-network:
driver: bridge
volumes:
postgres-data:

View File

@@ -1,18 +1,19 @@
# Bitácora del Agente 1 Infraestructura & DevOps
Este documento registra las decisiones, cambios y observaciones del **Agente 1**.
## Fecha: 2023-10-27
Su propósito es mantener un historial claro y auditable de las tareas y soluciones implementadas.
### Cambios Realizados
---
* **Creación de `Dockerfile`:**
* Se ha añadido un `Dockerfile` para construir la imagen del servicio de Node.js.
* La imagen se basa in `node:18-alpine` para mantenerla ligera.
* Se exponen el puerto 3011 y se define el comando de inicio `node src/index.js`.
## Entradas de Bitácora
* **Creación de `docker-compose.yml`:**
* Se ha creado un archivo `docker-compose.yml` para orquestar los servicios de la aplicación.
* Define dos servicios: `api` (el backend de Node.js) y `db` (una base de datos PostgreSQL).
* Configura una red `app-network` para la comunicación entre servicios.
* Se define un volumen `postgres-data` para la persistencia de los datos de la base de datos.
### [Fecha] - Tarea/Decisión
* **Contexto:** [Descripción del requerimiento o problema]
* **Acción/Implementación:** [Qué se hizo o cómo se implementó]
* **Resultado:** [Cuál fue el resultado, ej. endpoint creado, test pasado]
* **Observaciones:** [Notas adicionales, dependencias, problemas encontrados]
---
* **Creación de `.env.example`:**
* Se ha añadido un archivo `.env.example` con las variables de entorno necesarias para la configuración de la base de datos y la aplicación.

View File

@@ -0,0 +1,20 @@
# Bitácora del Agente 2 Backend Core (Node.js)
Este documento registra las decisiones técnicas, cambios en la estructura y endpoints creados o modificados por el Agente 2.
## Decisiones Técnicas
* **Framework:** Se eligió `express` por su flexibilidad y amplio soporte de la comunidad, ideal para construir el core de la API de manera rápida y escalable.
* **Gestor de Paquetes:** Se utiliza `npm` para la gestión de dependencias, siguiendo el estándar de Node.js.
* **Estructura de Carpetas:** Se ha definido una estructura modular (`modules`, `routes`, `services`, `config`, `webhooks`) para organizar el código de forma clara y mantenible a medida que el proyecto crezca.
## Cambios en Estructura
* **`package.json`:** Creado para inicializar el proyecto Node.js y gestionar las dependencias.
* **`.gitignore`:** Añadido para excluir `node_modules` del control de versiones.
* **`src/index.js`:** Creado como punto de entrada principal de la aplicación.
* **Directorios:** Se ha creado la estructura de carpetas base dentro de `src/` para albergar los diferentes componentes del backend.
## Endpoints Creados o Modificados
* **`GET /health`:** Endpoint inicial implementado para verificar el estado del servidor. Devuelve un `200 OK`.

18
src/index.js Normal file
View File

@@ -0,0 +1,18 @@
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3011;
app.get('/health', (req, res) => {
res.status(200).send('OK');
});
// Centralized error handling
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});