Plataforma integral de gestión empresarial con dashboard avanzado, sistema de facturación, gestión de usuarios con roles personalizables, tareas independientes y reportes detallados. Interfaz moderna con tema oscuro profesional. AUN EN DESARROLLO
Visializar Aplicativo: User: admin@gestion.com, Pass: passwordAdmin123
- Frontend: Next.js 15, React 19, TailwindCSS 4
- Backend: Server Actions, Server Components
- Base de Datos: PostgreSQL con Prisma ORM 6.14
- Autenticación: NextAuth.js 5 con Argon2id
- Hosting: Vercel (con soporte para despliegue local)
- Gestión de paquetes: pnpm 10+
- Runtime: Node.js 22+
- HASH PASSWORD: Argon2 (argon2id - hasheo mas robusto y seguro)
- NEXTAUTH V5: Autenticacion - Autorizacion - Validacion, mas seguro y robusto:
- Session-based authentication con base de datos
- Server Actions para verificación de sesión
- Middleware para protección de rutas
- Dashboard empresarial con métricas en tiempo real
- Sistema de facturación para clientes y proveedores
- Gestión de usuarios con roles (ADMIN/TRABAJADOR)
- Sistema de tareas con estados (PENDIENTE/EN_PROCESO/COMPLETADA)
- Gestión de clientes y proveedores
- Interfaz responsive con tema oscuro profesional
- Autenticación segura con Argon2id
- Reportes y analytics detallados
Antes de comenzar, asegúrate de tener instalado:
- Node.js 22+ - Descargar aquí
- pnpm 10+ - Instalar con:
npm install -g pnpm - PostgreSQL (local) o cuenta en Neon (recomendado)
git clone https://github.com/tu-usuario/gestion-pro.git
cd gestion-propnpm installCrea un archivo .env.local en la raíz del proyecto:
# Base de datos (elige una opción)
# Opción A: Neon (Recomendado)
DATABASE_URL="postgresql://tu_usuario:tu_password@tu_host.neon.tech/tu_database?sslmode=require"
# Opción B: PostgreSQL Local
# DATABASE_URL="postgresql://usuario:password@localhost:5432/gestorpro?schema=public"
# Autenticación NextAuth.js
AUTH_SECRET="tu_clave_secreta_de_32_caracteres_minimo"
AUTH_TRUST_HOST=true
AUTH_URL=http://localhost:3000
# Opcional: Para desarrollo
NODE_ENV=developmentGenerar AUTH_SECRET:
- Visita: https://generate-secret.vercel.app/32
- Copia la clave generada y pégala en
AUTH_SECRET
Nota sobre AUTH_TRUST_HOST:
AUTH_TRUST_HOST=true evita errores de UntrustedHost al iniciar en localhost. Esta es una protección de NextAuth.js que debe deshabilitarse solo en desarrollo.
- Crea una cuenta en Neon
- Crea un nuevo proyecto
- Copia la cadena de conexión en
DATABASE_URL
- Instala PostgreSQL localmente
- Crea una base de datos:
CREATE DATABASE gestorpro; - Configura la URL en
.env.local
# Generar cliente de Prisma
pnpm prisma:generate
# Aplicar migraciones a la base de datos
pnpm prisma:migrate:deploy
# Poblar con datos de prueba
pnpm db:seedpnpm devAbre http://localhost:3000 en tu navegador.
pnpm dev- Inicia servidor de desarrollo con Turbopackpnpm build- Construye la aplicación para producciónpnpm start- Inicia el servidor de producciónpnpm lint- Ejecuta ESLintpnpm lint:fix- Corrige errores de ESLint automáticamente
pnpm format- Formatea código con Prettierpnpm format:check- Verifica formato sin modificarpnpm format:write- Formatea todos los archivos soportados
pnpm test- Ejecuta tests con Vitestpnpm test:watch- Ejecuta tests en modo watchpnpm test:coverage- Genera reporte de cobertura
pnpm prisma:generate- Genera cliente de Prismapnpm prisma:studio- Abre Prisma Studio (interfaz visual)pnpm prisma:migrate:dev- Crea y aplica nueva migraciónpnpm prisma:migrate:deploy- Aplica migraciones existentespnpm prisma:db:push- Sincroniza schema sin migraciónpnpm db:seed- Pobla la base de datos con datos de prueba
# Después de modificar schema.prisma
pnpm prisma:migrate:dev --name descripcion_cambiopnpm prisma:migrate:deploy# Ejecutar seed (datos de prueba)
pnpm db:seed# Abrir Prisma Studio
pnpm prisma:studiogestion-pro/
├── prisma/
│ ├── schema.prisma # Esquema de base de datos
│ ├── seed.ts # Datos de prueba
│ └── migrations/ # Migraciones SQL
├── src/
│ ├── actions/ # Logica de Negocios (PrismaORM)
│ ├── app/ # App Router (Next.js 15)
│ ├── components/ # Componentes React
│ ├── lib/ # Utilidades y configuraciones
│ ├── auth.config.ts # configuracion de NextAuth V5
│ ├── auth # autenticacionde credenciales tambien OAuth
│ └── middleware.ts # Middleware de autenticación
├── .env.local # Variables de entorno (crear manualmente)
└── package.json # Dependencias y scripts
Después de ejecutar pnpm db:seed, puedes usar estas credenciales:
- Admin:
admin@gestion.com/passwordAdmin123 - Trabajador 1:
juan.perez@gestion.com/passwordTrabajador123 - Trabajador 2:
maria.gonzalez@gestion.com/passwordTrabajador456
- 3 usuarios con diferentes roles
- 1 cliente y 1 proveedor
- 2 tareas (pendiente y completada)
- 2 facturas (cliente y proveedor)
- Conecta tu repositorio a Vercel
- Configura las variables de entorno:
DATABASE_URL=tu_url_de_neon_o_postgres AUTH_SECRET=tu_clave_secreta_32_caracteres AUTH_TRUST_HOST=false AUTH_URL=https://tu-dominio.vercel.app
- Despliega automáticamente con cada push
- Construye la aplicación:
pnpm build - Aplica migraciones:
pnpm prisma:migrate:deploy - Inicia en producción:
pnpm start(tambien lo puedes probar en local para ver el rendimiento real del aplicativo web)
# Agregar a .env.local
AUTH_TRUST_HOST=true- Verifica que la
DATABASE_URLsea correcta - Asegúrate de que la base de datos esté accesible
- Para Neon, verifica que incluyas
?sslmode=require
# Regenerar cliente y aplicar migraciones
pnpm prisma:generate
pnpm prisma:migrate:deploy
pnpm db:seed- Crear nueva rama:
git checkout -b feature/nueva-funcionalidad - Modificar código
- Ejecutar tests:
pnpm test - Formatear código:
pnpm format - Lint:
pnpm lint:fix - Commit y push
- Edita
prisma/schema.prisma - Crea migración:
pnpm prisma:migrate:dev --name nombre_cambio - Actualiza seed si es necesario
- Prueba localmente:
pnpm db:seed
- Fork el proyecto
- Crea una rama para tu feature
- Commit tus cambios
- Push a la rama
- Abre un Pull Request
Este proyecto está bajo la Licencia MIT.
Si tienes problemas:
- Revisa la sección de "Solución de Problemas"
- Verifica que todas las variables de entorno estén configuradas
- Asegúrate de usar Node.js 22+ y pnpm 10+
- Abre un issue en GitHub con detalles del error
Desarrollado con Next.js 15, React 19, y las mejores prácticas de desarrollo moderno.