Mexus 86bfbd2039 feat: Initial commit - Mexus App
Sistema de Gestión de Obras de Construcción completo con:
- Dashboard con KPIs y gráficos
- Módulo de obras con fases y tareas
- Control financiero (gastos, presupuestos)
- Gestión de recursos (personal, subcontratistas)
- Inventario de materiales con alertas de stock
- Reportes con exportación CSV
- Autenticación con roles (NextAuth.js v5)
- API REST completa
- Documentación de API y base de datos
- Configuración Docker para despliegue

Stack: Next.js 14+, TypeScript, Tailwind CSS, Prisma, PostgreSQL

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:10:55 +00:00
2026-01-19 01:10:55 +00:00
2026-01-19 01:10:55 +00:00
2026-01-19 01:10:55 +00:00
2026-01-19 01:10:55 +00:00
2026-01-19 01:10:55 +00:00
2026-01-19 01:10:55 +00:00
2026-01-19 01:10:55 +00:00
2026-01-19 01:10:55 +00:00
2026-01-19 01:10:55 +00:00
2026-01-19 01:10:55 +00:00
2026-01-19 01:10:55 +00:00

Mexus App - Sistema de Gestión de Obras de Construcción

Sistema integral para la gestión de obras de construcción, desarrollado con Next.js 14+, diseñado para empresas constructoras que necesitan administrar proyectos, finanzas, recursos e inventario.

Características Principales

Módulos del Sistema

Módulo Descripción
Dashboard Panel principal con KPIs, gráficos de avance y resumen financiero
Obras Gestión completa de proyectos de construcción con fases y tareas
Finanzas Control de gastos, presupuestos y flujo de caja
Recursos Administración de personal y subcontratistas
Inventario Control de materiales con alertas de stock bajo
Reportes Generación de reportes con exportación a CSV

Funcionalidades Destacadas

  • Autenticación segura con NextAuth.js v5
  • Control de acceso por roles (Admin, Gerente, Supervisor, Contador, Empleado)
  • Multi-empresa - Cada usuario pertenece a una empresa
  • Dashboard interactivo con gráficos Recharts
  • Alertas automáticas de stock bajo en inventario
  • Registro de movimientos de inventario (entradas/salidas)
  • Responsive design con Tailwind CSS y shadcn/ui

Stack Tecnológico

Tecnología Versión Uso
Next.js 14.2.x Framework React con App Router
TypeScript 5.x Tipado estático
Tailwind CSS 3.4.x Estilos utilitarios
shadcn/ui - Componentes UI
Prisma 5.22.x ORM para PostgreSQL
PostgreSQL 15+ Base de datos
NextAuth.js 5.x (beta) Autenticación
Recharts 2.x Gráficos y visualizaciones
Zod 3.x Validación de esquemas

Requisitos Previos

  • Node.js 20.x o superior
  • PostgreSQL 15 o superior
  • npm o yarn

Instalación

1. Clonar el repositorio

git clone https://git.consultoria-as.com/tu-usuario/mexus-app.git
cd mexus-app

2. Instalar dependencias

npm install

3. Configurar variables de entorno

Crear archivo .env en la raíz del proyecto:

# Base de Datos
DATABASE_URL="postgresql://usuario:password@localhost:5432/construccion_db?schema=public"

# NextAuth.js
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="tu-secret-key-segura-aqui"

# Node Environment
NODE_ENV="development"

4. Configurar base de datos

# Crear las tablas
npx prisma migrate dev

# Poblar con datos de ejemplo (opcional)
npx prisma db seed

5. Iniciar el servidor de desarrollo

npm run dev

La aplicación estará disponible en http://localhost:3000

Credenciales de Prueba

Si ejecutaste el seed, puedes usar estas credenciales:

Email Contraseña Rol
admin@demo.com admin123 ADMIN

Estructura del Proyecto

construccion-app/
├── prisma/
│   ├── schema.prisma          # Modelos de datos
│   └── seed.ts                # Datos de ejemplo
├── src/
│   ├── app/
│   │   ├── (auth)/            # Páginas de autenticación
│   │   │   ├── login/
│   │   │   └── registro/
│   │   ├── (dashboard)/       # Área principal protegida
│   │   │   ├── dashboard/     # Panel principal
│   │   │   ├── obras/         # Gestión de obras
│   │   │   ├── finanzas/      # Control financiero
│   │   │   ├── recursos/      # Personal y recursos
│   │   │   │   ├── materiales/  # Inventario
│   │   │   │   └── personal/    # Empleados
│   │   │   └── reportes/      # Reportes
│   │   └── api/               # API Routes
│   │       ├── auth/          # NextAuth endpoints
│   │       ├── obras/         # CRUD obras
│   │       ├── gastos/        # CRUD gastos
│   │       └── materiales/    # CRUD materiales
│   ├── components/
│   │   ├── ui/                # Componentes shadcn/ui
│   │   └── layout/            # Sidebar, Header
│   ├── lib/
│   │   ├── auth.ts            # Configuración NextAuth
│   │   ├── prisma.ts          # Cliente Prisma
│   │   ├── utils.ts           # Utilidades
│   │   └── validations.ts     # Esquemas Zod
│   ├── hooks/                 # Custom React hooks
│   └── types/                 # TypeScript types
├── docker-compose.yml         # Configuración Docker
├── Dockerfile                 # Build de producción
└── nginx.conf                 # Configuración Nginx

Comandos Disponibles

# Desarrollo
npm run dev              # Inicia servidor de desarrollo
npm run build            # Compila para producción
npm run start            # Inicia servidor de producción
npm run lint             # Ejecuta ESLint

# Base de datos
npx prisma migrate dev   # Ejecuta migraciones en desarrollo
npx prisma migrate deploy # Ejecuta migraciones en producción
npx prisma db seed       # Ejecuta el seed
npx prisma studio        # Abre el explorador de BD
npx prisma generate      # Regenera el cliente Prisma

Despliegue con Docker

Desarrollo

docker-compose up -d

Producción

docker-compose -f docker-compose.prod.yml up -d

API Endpoints

Autenticación

  • POST /api/auth/callback/credentials - Login
  • GET /api/auth/session - Obtener sesión actual
  • POST /api/auth/signout - Cerrar sesión

Obras

  • GET /api/obras - Listar obras
  • POST /api/obras - Crear obra
  • GET /api/obras/[id] - Obtener obra
  • PUT /api/obras/[id] - Actualizar obra
  • DELETE /api/obras/[id] - Eliminar obra

Gastos

  • GET /api/gastos - Listar gastos
  • POST /api/gastos - Crear gasto
  • PUT /api/gastos/[id] - Actualizar gasto
  • DELETE /api/gastos/[id] - Eliminar gasto
  • PATCH /api/gastos/[id]/aprobar - Aprobar gasto

Materiales

  • GET /api/materiales - Listar materiales
  • POST /api/materiales - Crear material
  • PUT /api/materiales/[id] - Actualizar material
  • DELETE /api/materiales/[id] - Eliminar material
  • POST /api/materiales/movimiento - Registrar movimiento de inventario

Roles y Permisos

Rol Descripción Permisos
ADMIN Administrador Acceso completo
GERENTE Gerente de proyectos Gestión de obras y finanzas
SUPERVISOR Supervisor de obra Registro de avances y gastos
CONTADOR Contador Gestión financiera
EMPLEADO Empleado general Solo lectura

Seguridad

  • Autenticación mediante JWT con NextAuth.js
  • Middleware de protección de rutas
  • Validación de datos con Zod en cliente y servidor
  • Filtrado de datos por empresa (multi-tenant)
  • Contraseñas hasheadas con bcrypt
  • Headers de seguridad configurados

Contribuir

  1. Fork el repositorio
  2. Crea una rama para tu feature (git checkout -b feature/nueva-funcionalidad)
  3. Commit tus cambios (git commit -m 'Agrega nueva funcionalidad')
  4. Push a la rama (git push origin feature/nueva-funcionalidad)
  5. Abre un Pull Request

Licencia

Este proyecto es privado y de uso interno.

Soporte

Para soporte técnico, contactar al equipo de desarrollo.


Desarrollado con Next.js y TypeScript

Description
Sistema de Gestión de Obras de Construcción - Mexus App
Readme 671 KiB
Languages
TypeScript 98.8%
JavaScript 0.9%
CSS 0.2%
Dockerfile 0.1%