- Visión General
- Características Principales
- Tecnologías Utilizadas
- Estructura del Proyecto
- Configuración y Ejecución
- Pruebas
- Despliegue
- Contribución
- Licencia
- Contacto
El Sistema de Gestión de Candidatos y Personal es una aplicación web completa diseñada para optimizar los procesos de reclutamiento y la gestión del personal interno. Esta plataforma ofrece una solución integral para el seguimiento de candidatos a lo largo del proceso de selección, la evaluación de habilidades y la gestión eficiente del personal.
- Registro de nuevos candidatos
- Pipeline visual del proceso de selección
- Evaluación y calificación de candidatos
- Seguimiento del estado de cada candidato (activo/inactivo)
- Búsqueda avanzada y filtrado de candidatos
- Registro y gestión de miembros del personal
- Asignación de roles y permisos
- Seguimiento de actividad del personal
- Registro y login de usuarios
- Autenticación con Google
- Manejo de sesiones con JWT
- Visión general de estadísticas clave
- Gráficos y métricas de rendimiento
- Búsqueda rápida de candidatos desde el dashboard
- Creación y gestión de formularios personalizados
- Sistema de calificación para diferentes habilidades y competencias
- Lenguaje: Node.js
- Framework: Express.js
- Base de Datos: MySQL
- ORM: Sequelize
- Autenticación: Passport.js, JWT
- Validación: express-validator
- Encriptación: bcrypt
- Documentación API: Swagger
- Framework: React (con Vite como build tool)
- Routing: React Router
- Gestión de Estado: Context API
- Estilos: SASS
- Componentes UI: Material-UI
- Peticiones HTTP: Axios
- Manejo de Cookies: js-cookie
- Control de Versiones: Git
- Testing Backend: Jest
- Testing Frontend: Vitest
- Linting: ESLint
- Formateo de Código: Prettier
proyecto/
│
├── backend/
│ ├── config/
│ ├── controllers/
│ ├── middlewares/
│ ├── models/
│ ├── routes/
│ ├── utils/
│ ├── index.js
│ └── package.json
│
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── context/
│ │ ├── pages/
│ │ ├── styles/
│ │ ├── utils/
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── index.html
│ └── package.json
│
└── README.md
- Node.js (v14 o superior)
- MySQL
-
Navega al directorio del backend:
cd backend -
Instala las dependencias:
npm install -
Configura las variables de entorno en un archivo
.env:DB_HOST=localhost DB_USER=tu_usuario DB_PASSWORD=tu_contraseña DB_NAME=nombre_de_tu_base_de_datos JWT_SECRET=tu_secreto_jwt GOOGLE_CLIENT_ID=tu_id_de_cliente_google GOOGLE_CLIENT_SECRET=tu_secreto_de_cliente_google -
Inicia el servidor:
npm startEl servidor se iniciará en
http://localhost:5000por defecto.
-
Navega al directorio del frontend:
cd frontend -
Instala las dependencias:
npm install -
Configura la URL de la API en un archivo
.env:VITE_API_URL=http://localhost:5000/api -
Inicia el servidor de desarrollo:
npm run devLa aplicación estará disponible en
http://localhost:5173.
Ejecuta las pruebas con Jest:
npm test
Ejecuta las pruebas con Vitest:
npm test
- Asegúrate de que todas las variables de entorno estén configuradas correctamente para producción.
- Construye la aplicación:
npm run build - Inicia el servidor en modo producción:
npm run start:prod
- Construye la aplicación:
npm run build - Los archivos de producción estarán en el directorio
dist/.
- Haz un fork del repositorio
- Crea una nueva rama (
git checkout -b feature/NuevaCaracteristica) - Haz commit de tus cambios (
git commit -m 'Añadir alguna NuevaCaracteristica') - Push a la rama (
git push origin feature/NuevaCaracteristica) - Abre un Pull Request
Este proyecto está bajo la licencia ISC. Consulta el archivo LICENSE para más detalles.