ialcarazsalazar 1828311b3a feat: fix backend SQL columns, add dark/light theme, fix legacy CSS
- Fix 7 backend controllers: rename columns to match actual DB schema
  (name_room→room_number, id_room→id, bed_type→room_type,
   id_employee→id, status_employee→status)
- Fix 10 frontend files with matching property renames
- Add ThemeContext with dark/light toggle (localStorage persisted)
- Redesign theme.css with [data-theme] attribute selectors
- Add Google Fonts (Syne, DM Sans, JetBrains Mono)
- Redesign sidebar, topbar, and login page CSS
- Migrate ~44 legacy CSS files from hardcoded colors to CSS variables
- Remove Dashboards/Tableros section from menu
- Clean up commented-out CSS blocks across codebase

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 03:05:16 +00:00

Hacienda San Angel - Sistema de Gestion Hotelera

Sistema integral de gestion para el hotel Hacienda San Angel. Incluye modulos de administracion de empleados, nomina, inventario, gastos, ingresos, y reporteria.

Documentacion

Tecnologias

Backend

  • Node.js con Express 5
  • PostgreSQL 15 como base de datos
  • Nodemailer para envio de correos (Brevo/Sendinblue)
  • Stripe para procesamiento de pagos
  • Axios para consultas externas (tipo de cambio Banxico)

Frontend

  • React 19 con Vite 7
  • React Router DOM 7 para navegacion
  • React Hook Form + Yup para validacion de formularios
  • Bootstrap 5 + Tailwind CSS para estilos
  • Axios para peticiones HTTP
  • XLSX para exportacion de datos a Excel

Infraestructura

  • Docker y Docker Compose para contenedorizacion
  • PostgreSQL 15 en contenedor

Estructura del Proyecto

Hotel/
├── backend/
│   ├── Dockerfile
│   └── hotel_hacienda/
│       ├── src/
│       │   ├── app.js              # Configuracion Express
│       │   ├── server.js           # Punto de entrada
│       │   ├── controllers/        # Logica de negocio
│       │   ├── routes/             # Definicion de rutas API
│       │   ├── middlewares/        # Validadores
│       │   ├── db/                 # Conexion a PostgreSQL
│       │   └── services/           # Servicios (email)
│       ├── scripts bd/             # Scripts SQL para la BD
│       └── package.json
├── frontend/
│   ├── Dockerfile
│   └── Frontend-Hotel/
│       ├── src/
│       │   ├── App.jsx             # Rutas principales
│       │   ├── main.jsx            # Punto de entrada
│       │   ├── components/         # Componentes reutilizables
│       │   ├── pages/              # Paginas de la aplicacion
│       │   ├── services/           # Servicios API
│       │   ├── context/            # Context API
│       │   └── styles/             # Estilos globales
│       └── package.json
├── docker-compose.yml
├── .env.example
└── README.md

Modulos del Sistema

1. Dashboard

  • Income: Vista general de ingresos
  • Hotel P&L: Estado de perdidas y ganancias del hotel
  • Restaurant P&L: Estado de perdidas y ganancias del restaurante
  • Budget: Presupuesto
  • Cost Per Room: Costo por habitacion
  • Room Analysis: Analisis de ocupacion de habitaciones
  • Expenses: Resumen de gastos

2. Nomina y Empleados (Payroll)

  • Gestion de empleados (alta, baja, modificacion)
  • Contratos laborales
  • Control de asistencia
  • Uniformes
  • Pago diario

3. Gastos (Expenses)

  • Registro de gastos
  • Pagos mensuales recurrentes
  • Aprobacion de gastos (flujo de aprobacion)
  • Proveedores
  • Reportes de gastos
  • Entradas de compras

4. Inventario (Inventory)

  • Catalogo de productos
  • Ajustes de inventario
  • Salidas de inventario
  • Salidas de ama de llaves (Housekeeper)
  • Reportes de inventario
  • Descarte de productos

5. Ingresos (Income)

  • Registro de ingresos
  • Reportes de ingresos
  • Integracion con sistema Horux

6. Hotel

  • Gestion de propiedades
  • Gestion de habitaciones

7. Configuracion (Settings)

  • Gestion de habitaciones
  • Configuracion del sistema
  • Gestion de usuarios

API Endpoints

Autenticacion

  • POST /api/auth/login - Iniciar sesion
  • POST /api/auth/create - Crear usuario
  • POST /api/auth/recover - Recuperar contrasena

Empleados

  • GET /api/employees - Listar empleados
  • POST /api/employees/new - Crear empleado
  • PUT /api/employees/update - Actualizar empleado
  • GET /api/employees/attendance - Obtener asistencia

Contratos

  • GET /api/contracts - Listar contratos
  • POST /api/contracts - Crear contrato
  • PUT /api/contracts - Actualizar contrato

Productos/Inventario

  • GET /api/products - Listar productos
  • POST /api/products - Crear producto
  • PUT /api/products - Actualizar producto

Gastos

  • GET /api/expenses - Listar gastos
  • POST /api/expenses - Crear gasto
  • PUT /api/expenses - Actualizar gasto
  • GET /api/expenses/pending - Gastos pendientes de aprobacion

Ingresos

  • GET /api/incomes - Listar ingresos
  • POST /api/incomes - Registrar ingreso
  • GET /api/incomeshrx - Ingresos Horux

Pagos

  • POST /api/payment - Procesar pago con Stripe

Tipo de Cambio

  • GET /api/exchange - Obtener tipo de cambio (Banxico)

Configuracion

  • GET /api/settings - Obtener configuracion
  • PUT /api/settings - Actualizar configuracion

Guia de Instalacion

Requisitos Previos

  • Docker y Docker Compose instalados
  • Git

Opcion 1: Instalacion con Docker (Recomendado)

  1. Clonar el repositorio
git clone https://git.consultoria-as.com/usuario/Hacienda-San-Angel.git
cd Hacienda-San-Angel
  1. Configurar variables de entorno
cp .env.example .env

Editar el archivo .env con los valores correspondientes:

POSTGRES_PASSWORD=tu_password_seguro
EMAIL_USER=tu_email@ejemplo.com
EMAIL_PASS=tu_api_key_brevo
BANXICO_TOKEN=tu_token_banxico
  1. Construir e iniciar los contenedores
docker-compose up -d --build
  1. Verificar que los servicios esten corriendo
docker-compose ps
  1. Importar la base de datos
# Copiar el archivo SQL al contenedor
docker cp backupcondatos22122025.sql postgres_db:/tmp/

# Ejecutar el script SQL
docker exec -it postgres_db psql -U oposgres -d haciendasanangel -f /tmp/backupcondatos22122025.sql
  1. Acceder a la aplicacion

Opcion 2: Instalacion Manual (Desarrollo)

Backend

  1. Navegar al directorio del backend
cd backend/hotel_hacienda
  1. Instalar dependencias
npm install
  1. Configurar variables de entorno
cp .env.example .env
# Editar .env con los valores correspondientes
  1. Iniciar el servidor
npm run dev  # Desarrollo con nodemon
npm start    # Produccion

Frontend

  1. Navegar al directorio del frontend
cd frontend/Frontend-Hotel
  1. Instalar dependencias
npm install
  1. Configurar variables de entorno
cp .env.example .env
# Editar .env con la URL del API
  1. Iniciar la aplicacion
npm run dev    # Desarrollo
npm run build  # Construir para produccion

Base de Datos

Configuracion

  • Motor: PostgreSQL 15
  • Base de datos: haciendasanangel
  • Usuario: oposgres

Scripts SQL

Los scripts de la base de datos se encuentran en backend/hotel_hacienda/scripts bd/funcionesparaproduccion/. Incluyen:

  • Funciones para empleados y contratos
  • Funciones para gastos e ingresos
  • Funciones para inventario
  • Funciones para reporteria
  • Funciones de autenticacion

Variables de Entorno

Backend (.env)

Variable Descripcion
PORT Puerto del servidor (default: 4000)
DB_HOST Host de PostgreSQL
DB_PORT Puerto de PostgreSQL (default: 5432)
DB_USER Usuario de PostgreSQL
DB_PASSWORD Contrasena de PostgreSQL
DB_NAME Nombre de la base de datos
EMAIL_HOST Servidor SMTP
EMAIL_PORT Puerto SMTP
EMAIL_USER Usuario SMTP
EMAIL_PASS Contrasena/API Key SMTP
URL_CORS URL permitida para CORS
BANXICO_TOKEN Token API de Banxico
STRIPE_SECRET_KEY Llave secreta de Stripe

Frontend (.env)

Variable Descripcion
VITE_API_BASE_URL URL base del API backend

Despliegue en Produccion

Con Docker Compose

  1. Asegurarse de tener configurado el archivo .env con valores de produccion

  2. Modificar docker-compose.yml si es necesario:

    • Cambiar URL_CORS a tu dominio de produccion
    • Configurar volumenes persistentes para la base de datos
  3. Iniciar los servicios:

docker-compose up -d

Notas de Seguridad

  • Cambiar las contrasenas por defecto
  • Usar HTTPS en produccion (configurar con nginx o similar)
  • Respaldar la base de datos regularmente
  • No exponer el puerto de PostgreSQL al exterior

Mantenimiento

Respaldo de Base de Datos

docker exec postgres_db pg_dump -U oposgres haciendasanangel > backup_$(date +%Y%m%d).sql

Ver logs

docker-compose logs -f backend
docker-compose logs -f frontend
docker-compose logs -f postgres

Reiniciar servicios

docker-compose restart

Licencia

Proyecto privado - Hacienda San Angel


Contacto

Para soporte tecnico, contactar al equipo de desarrollo.

Description
Sistema de gestión hotelera - CRM Hotel
Readme 683 KiB
Languages
JavaScript 86.8%
CSS 13.1%