Gestor de Vacaciones
Benjamin Amador / 26 de septiembre de 2024
El Gestor de Vacaciones es un sistema diseñado para gestionar solicitudes de vacaciones, reservas de salas de grabación y controlar el inventario en una empresa. Funciona con un sistema de roles que permite diferentes niveles de acceso según el rol asignado al usuario.
Funcionalidades
- Solicitud de Vacaciones: Los usuarios pueden solicitar sus vacaciones y ver el estado de sus solicitudes.
- Reservas de Salas de Grabación: Se pueden realizar reservas de salas de grabación desde el sistema.
- Control de Inventario: Los administradores pueden gestionar el inventario de equipos y recursos de la empresa.
- Roles y Permisos:
- Admin: Tiene acceso total, puede gestionar usuarios, aceptar o rechazar solicitudes de vacaciones y reservas, asignar y quitar roles.
- Jefe: Puede ver y gestionar las solicitudes de vacaciones de los colaboradores de su departamento.
- Usuario: Solo puede hacer solicitudes de vacaciones o de reservas y consultar el estado de las mismas.
- Notificaciones por SMS: El administrador recibe notificaciones por SMS cuando se crea una nueva solicitud de vacaciones o reserva de sala.
Tecnologías
- MySQL: Base de datos relacional para almacenar toda la información del sistema.
- NestJS: Framework para construir aplicaciones del lado del servidor con Node.js.
- Prisma: ORM que facilita la interacción con la base de datos.
- JWT (JSON Web Token): Utilizado para la autenticación y protección de las rutas.
- Next.js: Framework de React utilizado para el frontend del sistema.
Cómo ejecutar el proyecto
Sigue estos pasos para levantar el proyecto en otra máquina y no olvides configurar las variables de entorno necesarias para la base de datos y las claves de JWT:
# Clonar el repositorio
git clone https://github.com/jarjar-st/administador-de-vacaciones
cd administador-de-vacaciones
# Instalar dependencias
cd backend
npm install
cd ../admin-control-project
npm install
# Configurar Prisma
cd ../backend
npx prisma migrate dev --name init
npx prisma generate
npm run seed
# Levantar el backend
npm run start:dev
# Levantar el frontend
cd ../admin-control-project
npm run dev
El servidor de desarrollo del backend se levantará en http://localhost:3000, y el frontend en http://localhost:3001. Ambos deben estar corriendo simultáneamente para que el proyecto funcione correctamente.
Despliegue
Para desplegar este proyecto en producción, puedes utilizar Vercel para el frontend y Heroku, DigitalOcean, o algún servidor propio para el backend. Asegúrate de configurar las variables de entorno como las credenciales de la base de datos y las claves de JWT, tanto para el entorno de desarrollo como el de producción.
Conclusión
El Gestor de Vacaciones es una herramienta versátil que facilita la gestión de solicitudes de vacaciones y reservas de salas, además de llevar un control de inventario. Gracias a su sistema de roles y permisos, cada usuario tiene acceso solo a las funcionalidades necesarias según su rol dentro de la empresa, lo que asegura una mayor organización y seguridad. La integración de notificaciones por SMS permite al administrador estar informado sobre nuevas solicitudes de manera rápida, optimizando la gestión del personal y recursos.