Esta aplicación web es un sistema de evaluación del personal empresarial. Los componentes que usaremos para el desarrollo serán:
- Lenguaje de programación: JavaScript
- Backend: Node.js, Express.js
- Frontend: Motor de plantillas EJS
- Base de datos: MongoDB con Mongoose
- Autenticación: bcryptjs, Express-session, connect-flash
Los usuarios estarán definido por roles (administrador, evaluador, intermediario, empleado) que garantizarán una estructura organizada para la gestión de evaluaciones eficientes.
Para la ejecución del proyecto se necesitarán los siguientes software y herramientas:
- Node js versión: v20.12.2 o superior.
- MongoDB versión: v8.0.0 o superior
- MongoDB Compass versión: v1.44.4 o superior
- Express.js versión: v4.21.0 o superior
- Navegador web actualizado
Note
Para poder acceder al desarrollo es necesario clonar el repositorio del proyecto que se encuentra en la plataforma de GITHUB.
1- Clonar el repositorio:
git clone https://github.com/IanButcher/BitQualy--LAFALDA.git
2- Entrar al directorio del proyecto:
cd employee-evaluation-system
3- Instalar dependencias:
npm install
4- Configurar variables de entorno: Crear un archivo .env en el directorio raíz con la siguiente configuración:
PORT=3000
MONGODB_URI=mongodb://localhost:27017/nombre-de-tu-db
SESSION_SECRET=tuSecreto
5- Iniciar MongoDB: Asegúrate de que MongoDB esté corriendo localmente o proporciona la URI correcta en el archivo .env.
6- Ejecutar la aplicación:
npm start
Note: Para acceder a la aplicacion, entre a localhost:3000 en su buscador
Una vez instalada la aplicación, se inicia con un login de acceso que deriva en las diferentes rutas de los usuarios del sistema. Dentro de los usuarios se encuentran:
- Administrador:
- Tiene control total del sistema.
- Puede gestinar Intemediarios, Evaluadores y Empleados
- Puede crear nuevos usuarios y designarles roles.
- Puede crear, modificar, ver y eliminar formularios.
- Evaluaduador:
- Tendrá acceso a visualizar la información de los empleados asignados.
- Realizará las autoevaluaciones.
- Recibirán las evaluaciones.
- Realizarán informes y notificaciones.
- Enviarán las evaluaciones a los empleados.
- Empleados:
- Solo puede ver su propio perfir.
- Puede completar las autoevaluaciones.
- Recibirán notificaciones y comentarios.
- Intermediarios:
- Puede ver la información de los empleados.
- Realizaran devoluciones de los informes de cada evaluación realizada.
Cada rol tiene acceso limitado a determinadas funcionalidades según sus permisos.
- Route - Login:
- GET /: página de login (todos los usuarios).
- GET /user-creator: nuevo usuario creado (solo administrador).
- POST /save-new-users: Crea un nuevo usuario (solo administrador).
- GET /my-account: Pagina propia de usuario para cambiar contraseña, mail y/o foto de perfil.
- POST /my-account/update: Actualiza los datos del usuario "logueado".
- Route - Empleado:
- GET /empleados: Visualiza todos los empleados (para administración, evaluadores e intermediarios).
- GET /empleados/:id: Obtiene el empleado por ID (para administración, evaluadores e intermediarios).
- POST /empleados/eliminar/:id: Realiza un "soft-delete" del usuario seleccionado (solo administrador).
- Route - Evaluador:
- GET /evaluadores: Visualiza todos los evaluadores (solo administración).
- GET /evaluadores/:id: Obtiene el evaluador por ID (solo administración).
- POST /evaluadores/eliminar/:id: Realiza un "soft-delete" del usuario seleccionado (solo administrador).
- Route -Intermediario:
- GET /reguladores: Visualiza todos los reguladores (solo administración).
- GET /reguladores/:id: Obtiene el reguladores por ID (solo administración).
- POST /reguladores/eliminar/:id: Realiza un "soft-delete" del usuario seleccionado (solo administrador).
- Route - Evaluación:
- GET /evaluaciones/new: Muestra la evaluación específica (para todos los usuarios).
- POST /evaluaciones/assign-autoevaluacion: Asigna una autoevaluacion a un usuario seleccionado (para evaluadores y administradores).
- POST /evaluaciones/assign-autoevaluacion-to-all: Asigna una autoevaluacion a todos los usuarios activos (para todos los usuarios).
- GET /evaluaciones/my-autoevaluacion/:id: Pagina de responder una autoevaluacion asignada.
- GET /evaluaciones/answer/:id/: Obtiene las preguntas por ID (solo administración).
- POST /evaluaciones/save-evaluacion: Crea una nueva evaluación (solo administrador).
- GET /evaluaciones/preview/:id: Obtiene una evaluación por ID (solo administración).
- POST /evaluaciones/:id/comentarios: Escribir y enviar un comentario en la evaluacion actual (para administradores e intermediarios).
- GET /evaluaciones/:id/pdf: Descargar evaluacion como pdf (para administrador, evaluador e intermediario).
- Route - Formularios:
- GET /formularios: Muestra los formularios (solo administración).
- GET /formularios/new: Muestra el creador de un formulario nuevo (solo administración).
- GET /formularios/preview/:id: Obtiene un formulario específico por ID (para evaluadores y empleados).
- POST /formularios/save-form: Crea un nuevo formulario (solo administrador).
- POST /formularios/eliminar/:id: elimina un formulario (solo administrador).
- PUT /formularios/:id: Actualiza un formulario con sus correcciones.
Important
Al ser una base de datos local, todos los datos enviados y recibidos seran a su propia base de datos
├── middleware # Lógica de intercambio de información y configuraciones
├── public # Archivos estáticos (Imagenes, CSS, JS)
├── routes # Definición de rutas para la API
├── Schemas # Definición de esquemas de la base de datos (MongoDB)
├── views # Plantillas EJS
index.js # Archivo principal (conexión al servidor, rutas, base de datos, middleware)
- Haz un fork del repositorio.
- Crea una nueva rama (git checkout -b feature-branch).
- Realiza tus cambios.
- Confirma los cambios (git commit -m 'Añadir una característica').
- Empuja a la rama (git push origin feature-branch).
- Abre un Pull Request.
Trello / tareas:
https://trello.com/b/8FANcdZ7/tablero-bitqualy