Compare commits
No commits in common. "f50deaf29d04fec917b8b2801775e45c3ff185f8" and "796ca2bae776297c8e41f13cadd556606a778e5e" have entirely different histories.
f50deaf29d
...
796ca2bae7
|
@ -1,7 +1,9 @@
|
||||||
create database universidad;
|
create database universidad;
|
||||||
|
drop database universidad;
|
||||||
|
|
||||||
CREATE USER 'UserRemoto' @'localhost' IDENTIFIED BY 'password123';
|
CREATE USER 'UserRemoto' @'localhost' IDENTIFIED BY 'password123';
|
||||||
|
|
||||||
|
DROP USER 'UserRemoto'@'localhost';
|
||||||
GRANT ALL PRIVILEGES ON universidad.* TO 'UserRemoto'@'LOCALHOST';
|
GRANT ALL PRIVILEGES ON universidad.* TO 'UserRemoto'@'LOCALHOST';
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
|
|
||||||
|
@ -34,11 +36,9 @@ create table tutor(
|
||||||
id integer auto_increment primary key,
|
id integer auto_increment primary key,
|
||||||
nombre varchar(40),
|
nombre varchar(40),
|
||||||
apellido varchar(40),
|
apellido varchar(40),
|
||||||
numeroDeTelefono double,
|
numeroDeTelefono integer,
|
||||||
idUsuario integer references usuario
|
idUsuario integer references usuario
|
||||||
);
|
);
|
||||||
ALTER TABLE usuario
|
|
||||||
MODIFY COLUMN inscrito int;
|
|
||||||
|
|
||||||
create table documento(
|
create table documento(
|
||||||
id integer auto_increment primary key,
|
id integer auto_increment primary key,
|
||||||
|
@ -63,7 +63,6 @@ INSERT INTO usuario (
|
||||||
) VALUES (
|
) VALUES (
|
||||||
'Juan', 'Perez', 'SIU241001', 'password123', 'juan.perez@example.com', 'Mexicana', 'O+', '1990-05-15', 'JUAP900515HDFLRN03', 'estudiante', 1, 1
|
'Juan', 'Perez', 'SIU241001', 'password123', 'juan.perez@example.com', 'Mexicana', 'O+', '1990-05-15', 'JUAP900515HDFLRN03', 'estudiante', 1, 1
|
||||||
);
|
);
|
||||||
|
|
||||||
ALTER TABLE carrera
|
ALTER TABLE carrera
|
||||||
ADD COLUMN campus VARCHAR(40),
|
ADD COLUMN campus VARCHAR(40),
|
||||||
ADD COLUMN descripcion VARCHAR(600),
|
ADD COLUMN descripcion VARCHAR(600),
|
||||||
|
@ -127,9 +126,6 @@ SET campus = 'Xalapa',
|
||||||
objetivo = 'Nuestro objetivo es formar psicólogos con una sólida base científica y habilidades prácticas para evaluar, diagnosticar y tratar problemas psicológicos. Fomentamos el pensamiento crítico, la empatía y la ética profesional, preparando a los estudiantes para contribuir al bienestar mental y emocional de las personas y comunidades que atienden.'
|
objetivo = 'Nuestro objetivo es formar psicólogos con una sólida base científica y habilidades prácticas para evaluar, diagnosticar y tratar problemas psicológicos. Fomentamos el pensamiento crítico, la empatía y la ética profesional, preparando a los estudiantes para contribuir al bienestar mental y emocional de las personas y comunidades que atienden.'
|
||||||
WHERE id = 6;
|
WHERE id = 6;
|
||||||
|
|
||||||
UPDATE `tutor` SET `nombre` = ?, `apellido` = ?, `numeroDeTelefono` = ? WHERE `idUsuario` = ?;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,38 +0,0 @@
|
||||||
import mysql from 'mysql2/promise'; // Importa la versión de la biblioteca que soporta promesas
|
|
||||||
|
|
||||||
class Conexion {
|
|
||||||
constructor() {
|
|
||||||
this.conexion = null;
|
|
||||||
this.configuracion = {
|
|
||||||
host: 'localhost',
|
|
||||||
user: 'UserRemoto',
|
|
||||||
password: 'password123',
|
|
||||||
database: 'universidad'
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
async conectar() {
|
|
||||||
try {
|
|
||||||
this.conexion = await mysql.createConnection(this.configuracion);
|
|
||||||
console.log('Conexión exitosa a MySQL');
|
|
||||||
return this.conexion;
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Error al conectar con la base de datos:', error.message);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
cerrarConexion() {
|
|
||||||
if (this.conexion) {
|
|
||||||
this.conexion.end((err) => {
|
|
||||||
if (err) {
|
|
||||||
console.error('Error al cerrar la conexión con la base de datos:', err.message);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
console.log('Se desconectó de la base de datos');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Conexion;
|
|
|
@ -1,218 +0,0 @@
|
||||||
import Conexion from './Conexion.js'; // Asegúrate de tener la ruta correcta al archivo de conexión
|
|
||||||
import Usuario from '../Model/Usuario.js'; // Asegúrate de tener la ruta correcta al archivo de Usuario
|
|
||||||
import Mensaje from '../Model/Mensaje.js'; // Asegúrate de tener la ruta correcta al archivo de Mensaje
|
|
||||||
import DAORegistro from './DAORegistro.js';
|
|
||||||
|
|
||||||
class DAO {
|
|
||||||
|
|
||||||
static async matriculas() {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
try {
|
|
||||||
const sql = `SELECT id, matricula FROM usuario where inscrito = 1`;
|
|
||||||
const [rows] = await conexionEstablecida.query(sql);
|
|
||||||
const resultado = rows.map(row => {
|
|
||||||
return { id: row.id, matricula: row.matricula };
|
|
||||||
});
|
|
||||||
return resultado;
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error); s
|
|
||||||
return [];
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static async validarAlumno(alumno) {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
try {
|
|
||||||
const sql = `SELECT * FROM usuario WHERE matricula = ? AND contrasena = ?`;
|
|
||||||
const [rows] = await conexionEstablecida.query(sql, [alumno.getMatricula(), alumno.getContrasena()]);
|
|
||||||
return rows.length > 0;
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
return false;
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static async agregarAlumno(usuario) {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
try {
|
|
||||||
const ultimoID = await this.obtenerUltimoID();
|
|
||||||
const matricula = "SIU24" + (1000 + ultimoID);
|
|
||||||
const password = this.crearContrasena();
|
|
||||||
usuario.contrasena = password;
|
|
||||||
usuario.matricula = matricula;
|
|
||||||
const sql = `INSERT INTO usuario (nombre, apellido, nacionalidad, matricula, contrasena, correo, rol) VALUES (?, ?, ?, ?, ?, ?, ?)`;
|
|
||||||
const [result] = await conexionEstablecida.query(sql, [
|
|
||||||
usuario.nombre, usuario.apellido, usuario.nacionalidad,
|
|
||||||
usuario.matricula, usuario.contrasena, usuario.correo, usuario.rol
|
|
||||||
]);
|
|
||||||
return result.affectedRows > 0 ? new Mensaje(true, usuario.matricula, usuario.contrasena) : new Mensaje(false, null);
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
return new Mensaje(false, null);
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static async editarAlumno(usuario) {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
try {
|
|
||||||
const sql = `UPDATE usuario SET nombre = ?, apellido = ?, correo = ?, nacionalidad = ?, tipoSangre = ?, fecha_nacimiento = ?, curp = ?, idCarrera = ? WHERE id = ?`;
|
|
||||||
const [result] = await conexionEstablecida.query(sql, [
|
|
||||||
usuario.nombre, usuario.apellido, usuario.correo,
|
|
||||||
usuario.nacionalidad, usuario.tipoSangre, usuario.fecha_nacimiento,
|
|
||||||
usuario.curp, usuario.idCarrera, usuario.id
|
|
||||||
]);
|
|
||||||
return result.affectedRows > 0;
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
return false;
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static async alumnoIniciado(matricula, contrasena) {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
try {
|
|
||||||
const sql = `SELECT * FROM usuario WHERE matricula = ? AND contrasena = ?`;
|
|
||||||
const [rows] = await conexionEstablecida.query(sql, [matricula, contrasena]);
|
|
||||||
if (rows.length > 0) {
|
|
||||||
const row = rows[0];
|
|
||||||
const usuario = new Usuario(
|
|
||||||
row.id, row.nombre, row.apellido, row.matricula, row.contrasena,
|
|
||||||
row.correo, row.nacionalidad,
|
|
||||||
row.tipoSangre, row.fecha_nacimiento, row.curp,
|
|
||||||
row.rol, row.idCarrera, row.inscrito
|
|
||||||
);
|
|
||||||
await DAORegistro.registrar(usuario, "Inicio Sesión", new Date());
|
|
||||||
return usuario;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
return null;
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static async obtenerUltimoID() {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
try {
|
|
||||||
const sql = `SELECT MAX(id) AS ultimo_id FROM usuario`;
|
|
||||||
const [rows] = await conexionEstablecida.query(sql);
|
|
||||||
return rows[0].ultimo_id || -1;
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
return -1;
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static crearContrasena() {
|
|
||||||
const CARACTERES_PERMITIDOS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#";
|
|
||||||
let contrasena = '';
|
|
||||||
for (let i = 0; i < 10; i++) {
|
|
||||||
const index = Math.floor(Math.random() * CARACTERES_PERMITIDOS.length);
|
|
||||||
contrasena += CARACTERES_PERMITIDOS.charAt(index);
|
|
||||||
}
|
|
||||||
return contrasena;
|
|
||||||
}
|
|
||||||
|
|
||||||
static async traeUsuario(id) {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
let usuario = null;
|
|
||||||
try {
|
|
||||||
const sql = `SELECT id, nombre, apellido, matricula, correo, nacionalidad, tipoSangre, fecha_nacimiento, curp, rol, idCarrera, inscrito FROM usuario WHERE id = ?`;
|
|
||||||
const [rows] = await conexionEstablecida.query(sql, [id]);
|
|
||||||
if (rows.length > 0) {
|
|
||||||
const row = rows[0];
|
|
||||||
|
|
||||||
// Convertir la fecha al formato "yyyy-MM-dd"
|
|
||||||
const fechaNacimiento = new Date(row.fecha_nacimiento);
|
|
||||||
const formattedDate = fechaNacimiento.toISOString().split('T')[0]; // "yyyy-MM-dd"
|
|
||||||
|
|
||||||
usuario = new Usuario(
|
|
||||||
row.id, row.nombre, row.apellido, row.matricula, "", row.correo,
|
|
||||||
row.nacionalidad, row.tipoSangre, formattedDate, row.curp,
|
|
||||||
row.rol, row.idCarrera, row.inscrito
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
return usuario;
|
|
||||||
}
|
|
||||||
static async editarAlumnoInscrito(data) {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
try {
|
|
||||||
const sql = `UPDATE usuario SET inscrito = ? WHERE id = ?`;
|
|
||||||
const [result] = await conexionEstablecida.query(sql, [
|
|
||||||
1, data.idUsuario
|
|
||||||
]);
|
|
||||||
return result.affectedRows > 0;
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static async traeTodosLosDatosUsuario(id) {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
let usuario = null;
|
|
||||||
try {
|
|
||||||
const sql = `SELECT U.id,U.nombre,U.apellido,matricula,correo,nacionalidad,tipoSangre,fecha_nacimiento,curp,inscrito, T.nombre as tutorNombre, T.apellido as tutorApellido, T.numeroDeTelefono,C.nombre as carreraNombre FROM usuario U, tutor T, carrera C where C.id= U.idCarrera and U.id = T.idUsuario and inscrito =1 and U.id =?;`;
|
|
||||||
const [rows] = await conexionEstablecida.query(sql, [id]);
|
|
||||||
if (rows.length > 0) {
|
|
||||||
const row = rows[0];
|
|
||||||
|
|
||||||
// Convertir la fecha al formato "yyyy-MM-dd"
|
|
||||||
const fechaNacimiento = new Date(row.fecha_nacimiento);
|
|
||||||
const formattedDate = fechaNacimiento.toISOString().split('T')[0]; // "yyyy-MM-dd"
|
|
||||||
|
|
||||||
usuario = {
|
|
||||||
id: row.id,
|
|
||||||
nombre: row.nombre,
|
|
||||||
apellido: row.apellido,
|
|
||||||
matricula: row.matricula,
|
|
||||||
correo: row.correo,
|
|
||||||
nacionalidad: row.nacionalidad,
|
|
||||||
tipoSangre: row.tipoSangre,
|
|
||||||
fecha_nacimiento: formattedDate,
|
|
||||||
curp: row.curp,
|
|
||||||
inscrito: row.inscrito,
|
|
||||||
tutorNombre: row.tutorNombre,
|
|
||||||
tutorApellido: row.tutorApellido,
|
|
||||||
numeroDeTelefono: row.numeroDeTelefono,
|
|
||||||
carreraNombre: row.carreraNombre
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
return usuario;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default DAO;
|
|
|
@ -1,22 +0,0 @@
|
||||||
import Conexion from './Conexion.js'; // Asegúrate de tener la ruta correcta al archivo de conexión
|
|
||||||
import Carrera from '../Model/Carrera.js'; // Asegúrate de tener la ruta correcta al archivo de Carrera
|
|
||||||
|
|
||||||
class DAOCarrera {
|
|
||||||
static async dameCarreras() {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
try {
|
|
||||||
const sql = "SELECT * FROM carrera";
|
|
||||||
const [rows] = await conexionEstablecida.query(sql);
|
|
||||||
const resultado = rows.map(row => new Carrera(row.id, row.nombre, row.area, row.campus, row.descripcion, row.mision, row.vision, row.objetivo));
|
|
||||||
return resultado;
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
return [];
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default DAOCarrera;
|
|
|
@ -1,22 +0,0 @@
|
||||||
import Conexion from './Conexion.js';
|
|
||||||
|
|
||||||
class DAODocumento {
|
|
||||||
static async agregarDocumento(req, file) {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar()
|
|
||||||
try {
|
|
||||||
const sql = "INSERT INTO `documento`(`titulo`,`archivo`,`idUsuario`,`valido`) VALUES(?,?,?,?);";
|
|
||||||
const [result] = await conexionEstablecida.query(sql, [
|
|
||||||
req.titulo, file, req.idUsuario, 0
|
|
||||||
]);
|
|
||||||
return result.affectedRows > 0;
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error);
|
|
||||||
throw error;
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default DAODocumento;
|
|
|
@ -1,20 +0,0 @@
|
||||||
import Conexion from './Conexion.js'; // Asegúrate de tener la ruta correcta al archivo de conexión
|
|
||||||
|
|
||||||
class DAORegistro {
|
|
||||||
static async registrar(usuario, descripcion, day) {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
try {
|
|
||||||
const sql = "INSERT INTO registro (matricula, descripcion) VALUES (?, ?)";
|
|
||||||
const stm = await conexionEstablecida.query(sql, [usuario.getMatricula(), descripcion + day]);
|
|
||||||
return stm.affectedRows > 0;
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
return false;
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default DAORegistro;
|
|
|
@ -1,57 +0,0 @@
|
||||||
import Conexion from './Conexion.js'; // Asegúrate de tener la ruta correcta al archivo de conexión
|
|
||||||
import Tutor from '../Model/Tutor.js'; // Asegúrate de tener la ruta correcta al archivo de Tutor
|
|
||||||
|
|
||||||
class DAOTutor {
|
|
||||||
|
|
||||||
static async agregarTutor(tutor) {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
try {
|
|
||||||
const sql = `INSERT INTO tutor (nombre,apellido,numeroDeTelefono,idUsuario)VALUES(?,?,?,?);`;
|
|
||||||
const [result] = await conexionEstablecida.query(sql, [tutor.nombre, tutor.apellido, tutor.numeroDeTelefono, tutor.idUsuario]);
|
|
||||||
return result.affectedRows > 0;
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
return false;
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static async editarTutor(tutor) {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
try {
|
|
||||||
const sql = `UPDATE tutor SET nombre = ?, apellido = ?, numeroDeTelefono = ? WHERE idUsuario = ?`;
|
|
||||||
const [result] = await conexionEstablecida.query(sql, [tutor.nombre, tutor.apellido, tutor.numeroDeTelefono, tutor.idUsuario]);
|
|
||||||
return result.affectedRows > 0;
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
return false;
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static async traerTutor(id) {
|
|
||||||
const conexion = new Conexion();
|
|
||||||
const conexionEstablecida = await conexion.conectar();
|
|
||||||
try {
|
|
||||||
const sql = `SELECT id, nombre, apellido, numeroDeTelefono, idUsuario FROM tutor WHERE idUsuario = ?`;
|
|
||||||
const [rows] = await conexionEstablecida.query(sql, [id]);
|
|
||||||
if (rows.length > 0) {
|
|
||||||
const row = rows[0];
|
|
||||||
const tutor = new Tutor(row.id, row.nombre, row.apellido, row.numeroDeTelefono, row.idUsuario);
|
|
||||||
return tutor;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error);
|
|
||||||
return null;
|
|
||||||
} finally {
|
|
||||||
conexion.cerrarConexion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default DAOTutor;
|
|
|
@ -1,80 +0,0 @@
|
||||||
class Carrera {
|
|
||||||
constructor(id, nombre, area, campus, descripcion, mision, vision, objetivo) {
|
|
||||||
this.id = id;
|
|
||||||
this.nombre = nombre;
|
|
||||||
this.area = area;
|
|
||||||
this.campus = campus;
|
|
||||||
this.descripcion = descripcion;
|
|
||||||
this.mision = mision;
|
|
||||||
this.vision = vision;
|
|
||||||
this.objetivo = objetivo;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Getters
|
|
||||||
getId() {
|
|
||||||
return this.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
getNombre() {
|
|
||||||
return this.nombre;
|
|
||||||
}
|
|
||||||
|
|
||||||
getArea() {
|
|
||||||
return this.area;
|
|
||||||
}
|
|
||||||
|
|
||||||
getCampus() {
|
|
||||||
return this.campus;
|
|
||||||
}
|
|
||||||
|
|
||||||
getDescripcion() {
|
|
||||||
return this.descripcion;
|
|
||||||
}
|
|
||||||
|
|
||||||
getMision() {
|
|
||||||
return this.mision;
|
|
||||||
}
|
|
||||||
|
|
||||||
getVision() {
|
|
||||||
return this.vision;
|
|
||||||
}
|
|
||||||
|
|
||||||
getObjetivo() {
|
|
||||||
return this.objetivo;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setters
|
|
||||||
setId(id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
setNombre(nombre) {
|
|
||||||
this.nombre = nombre;
|
|
||||||
}
|
|
||||||
|
|
||||||
setArea(area) {
|
|
||||||
this.area = area;
|
|
||||||
}
|
|
||||||
|
|
||||||
setCampus(campus) {
|
|
||||||
this.campus = campus;
|
|
||||||
}
|
|
||||||
|
|
||||||
setDescripcion(descripcion) {
|
|
||||||
this.descripcion = descripcion;
|
|
||||||
}
|
|
||||||
|
|
||||||
setMision(mision) {
|
|
||||||
this.mision = mision;
|
|
||||||
}
|
|
||||||
|
|
||||||
setVision(vision) {
|
|
||||||
this.vision = vision;
|
|
||||||
}
|
|
||||||
|
|
||||||
setObjetivo(objetivo) {
|
|
||||||
this.objetivo = objetivo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Carrera;
|
|
|
@ -1,29 +0,0 @@
|
||||||
class Mensaje {
|
|
||||||
constructor(verificacion, matricula, contrasena) {
|
|
||||||
this.verificacion = verificacion;
|
|
||||||
this.matricula = matricula;
|
|
||||||
this.contrasena = contrasena;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Getter para la propiedad 'verificacion'
|
|
||||||
isVerificacion() {
|
|
||||||
return this.verificacion;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Getter para la propiedad 'usuario'
|
|
||||||
getUsuario() {
|
|
||||||
return this.usuario;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setter para la propiedad 'verificacion'
|
|
||||||
setVerificacion(verificacion) {
|
|
||||||
this.verificacion = verificacion;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setter para la propiedad 'usuario'
|
|
||||||
setUsuario(usuario) {
|
|
||||||
this.usuario = usuario;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Mensaje;
|
|
|
@ -1,39 +0,0 @@
|
||||||
class Registro {
|
|
||||||
constructor(id, matricula, descripcion) {
|
|
||||||
this.id = id;
|
|
||||||
this.matricula = matricula;
|
|
||||||
this.descripcion = descripcion;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Getter para la propiedad 'id'
|
|
||||||
getId() {
|
|
||||||
return this.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Getter para la propiedad 'matricula'
|
|
||||||
getMatricula() {
|
|
||||||
return this.matricula;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Getter para la propiedad 'descripcion'
|
|
||||||
getDescripcion() {
|
|
||||||
return this.descripcion;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setter para la propiedad 'id'
|
|
||||||
setId(id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setter para la propiedad 'matricula'
|
|
||||||
setMatricula(matricula) {
|
|
||||||
this.matricula = matricula;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setter para la propiedad 'descripcion'
|
|
||||||
setDescripcion(descripcion) {
|
|
||||||
this.descripcion = descripcion;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = Registro;
|
|
|
@ -1,51 +0,0 @@
|
||||||
class Tutor {
|
|
||||||
constructor(id, nombre, apellido, numeroDeTelefono, idUsuario) {
|
|
||||||
this.id = id;
|
|
||||||
this.nombre = nombre;
|
|
||||||
this.apellido = apellido;
|
|
||||||
this.numeroDeTelefono = numeroDeTelefono;
|
|
||||||
this.idUsuario = idUsuario;
|
|
||||||
}
|
|
||||||
|
|
||||||
getId() {
|
|
||||||
return this.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
getNombre() {
|
|
||||||
return this.nombre;
|
|
||||||
}
|
|
||||||
|
|
||||||
getApellido() {
|
|
||||||
return this.apellido;
|
|
||||||
}
|
|
||||||
|
|
||||||
getNumeroDeTelefono() {
|
|
||||||
return this.numeroDeTelefono;
|
|
||||||
}
|
|
||||||
|
|
||||||
getIdUsuario() {
|
|
||||||
return this.idUsuario;
|
|
||||||
}
|
|
||||||
|
|
||||||
setId(id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
setNombre(nombre) {
|
|
||||||
this.nombre = nombre;
|
|
||||||
}
|
|
||||||
|
|
||||||
setApellido(apellido) {
|
|
||||||
this.apellido = apellido;
|
|
||||||
}
|
|
||||||
|
|
||||||
setNumeroDeTelefono(numeroDeTelefono) {
|
|
||||||
this.numeroDeTelefono = numeroDeTelefono;
|
|
||||||
}
|
|
||||||
|
|
||||||
setIdUsuario(idUsuario) {
|
|
||||||
this.idUsuario = idUsuario;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Tutor;
|
|
|
@ -1,139 +0,0 @@
|
||||||
class Usuario {
|
|
||||||
constructor(
|
|
||||||
id, nombre, apellido, matricula, contrasena, correo,
|
|
||||||
nacionalidad, tipoSangre, fecha_nacimiento, curp,
|
|
||||||
rol, idCarrera, inscrito
|
|
||||||
) {
|
|
||||||
this.id = id;
|
|
||||||
this.nombre = nombre;
|
|
||||||
this.apellido = apellido;
|
|
||||||
this.matricula = matricula;
|
|
||||||
this.contrasena = contrasena || ''; // Valor predeterminado para contrasena
|
|
||||||
this.correo = correo;
|
|
||||||
this.nacionalidad = nacionalidad;
|
|
||||||
this.tipoSangre = tipoSangre;
|
|
||||||
this.fecha_nacimiento = fecha_nacimiento;
|
|
||||||
this.curp = curp;
|
|
||||||
this.rol = rol;
|
|
||||||
this.idCarrera = idCarrera;
|
|
||||||
this.inscrito = inscrito;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Getters
|
|
||||||
getId() {
|
|
||||||
return this.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
getNombre() {
|
|
||||||
return this.nombre;
|
|
||||||
}
|
|
||||||
|
|
||||||
getApellido() {
|
|
||||||
return this.apellido;
|
|
||||||
}
|
|
||||||
|
|
||||||
getMatricula() {
|
|
||||||
return this.matricula;
|
|
||||||
}
|
|
||||||
|
|
||||||
getContrasena() {
|
|
||||||
return this.contrasena;
|
|
||||||
}
|
|
||||||
|
|
||||||
getCorreo() {
|
|
||||||
return this.correo;
|
|
||||||
}
|
|
||||||
|
|
||||||
getNacionalidad() {
|
|
||||||
return this.nacionalidad;
|
|
||||||
}
|
|
||||||
|
|
||||||
getTipoSangre() {
|
|
||||||
return this.tipoSangre;
|
|
||||||
}
|
|
||||||
|
|
||||||
getFecha_nacimiento() {
|
|
||||||
return this.fecha_nacimiento;
|
|
||||||
}
|
|
||||||
|
|
||||||
getCurp() {
|
|
||||||
return this.curp;
|
|
||||||
}
|
|
||||||
|
|
||||||
getRol() {
|
|
||||||
return this.rol;
|
|
||||||
}
|
|
||||||
|
|
||||||
getIdCarrera() {
|
|
||||||
return this.idCarrera;
|
|
||||||
}
|
|
||||||
|
|
||||||
getInscrito() {
|
|
||||||
return this.inscrito;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setters
|
|
||||||
setId(id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
setNombre(nombre) {
|
|
||||||
this.nombre = nombre;
|
|
||||||
}
|
|
||||||
|
|
||||||
setApellido(apellido) {
|
|
||||||
this.apellido = apellido;
|
|
||||||
}
|
|
||||||
|
|
||||||
setMatricula(matricula) {
|
|
||||||
this.matricula = matricula;
|
|
||||||
}
|
|
||||||
|
|
||||||
setContrasena(contrasena) {
|
|
||||||
this.contrasena = contrasena;
|
|
||||||
}
|
|
||||||
|
|
||||||
setCorreo(correo) {
|
|
||||||
this.correo = correo;
|
|
||||||
}
|
|
||||||
|
|
||||||
setNacionalidad(nacionalidad) {
|
|
||||||
this.nacionalidad = nacionalidad;
|
|
||||||
}
|
|
||||||
|
|
||||||
setTipoSangre(tipoSangre) {
|
|
||||||
this.tipoSangre = tipoSangre;
|
|
||||||
}
|
|
||||||
|
|
||||||
setFecha_nacimiento(fecha_nacimiento) {
|
|
||||||
this.fecha_nacimiento = fecha_nacimiento;
|
|
||||||
}
|
|
||||||
|
|
||||||
setCurp(curp) {
|
|
||||||
this.curp = curp;
|
|
||||||
}
|
|
||||||
|
|
||||||
setRol(rol) {
|
|
||||||
this.rol = rol;
|
|
||||||
}
|
|
||||||
|
|
||||||
setIdCarrera(idCarrera) {
|
|
||||||
this.idCarrera = idCarrera;
|
|
||||||
}
|
|
||||||
|
|
||||||
setInscrito(inscrito) {
|
|
||||||
this.inscrito = inscrito;
|
|
||||||
}
|
|
||||||
|
|
||||||
crearToken() {
|
|
||||||
const CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
||||||
let token = '';
|
|
||||||
for (let i = 0; i < 15; i++) {
|
|
||||||
const index = Math.floor(Math.random() * CHARACTERS.length);
|
|
||||||
token += CHARACTERS.charAt(index);
|
|
||||||
}
|
|
||||||
return token;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Usuario;
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,26 +0,0 @@
|
||||||
{
|
|
||||||
"name": "server",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"main": "index.js",
|
|
||||||
"type": "module",
|
|
||||||
"scripts": {
|
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
|
||||||
},
|
|
||||||
"keywords": [],
|
|
||||||
"author": "",
|
|
||||||
"license": "ISC",
|
|
||||||
"description": "",
|
|
||||||
"dependencies": {
|
|
||||||
"body-parser": "^1.20.2",
|
|
||||||
"cors": "^2.8.5",
|
|
||||||
"express": "^4.19.2",
|
|
||||||
"jsonwebtoken": "^9.0.2",
|
|
||||||
"multer": "^1.4.5-lts.1",
|
|
||||||
"mysql": "^2.18.1",
|
|
||||||
"mysql2": "^3.9.7",
|
|
||||||
"winston": "^3.13.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"nodemon": "^3.1.0"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
import express from 'express';
|
|
||||||
import DAO from '../Controller/dao.js';// Asegúrate de que la ruta sea correcta
|
|
||||||
|
|
||||||
const router = express.Router();
|
|
||||||
|
|
||||||
router.post('/alumnoIniciado', async (req, res) => {
|
|
||||||
const { matricula, contrasena } = req.body;
|
|
||||||
try {
|
|
||||||
// Verificar si el alumno está en la base de datos
|
|
||||||
const usuario = await DAO.alumnoIniciado(matricula, contrasena);
|
|
||||||
if (usuario) {
|
|
||||||
// El alumno está autenticado correctamente
|
|
||||||
const authToken = usuario.crearToken();
|
|
||||||
const authRol = usuario.getRol();
|
|
||||||
const authId = usuario.getId();
|
|
||||||
const message = `Bienvenido ${usuario.getNombre()}`;
|
|
||||||
res.json({ matricula, authToken, authRol, authId, message });
|
|
||||||
} else {
|
|
||||||
// El alumno no está autenticado
|
|
||||||
res.status(401).json({ error: "Credenciales inválidas" });
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Error al iniciar sesión:', error);
|
|
||||||
res.status(500).json({ error: "Error al iniciar sesión" });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
export default router;
|
|
196
Server/server.js
196
Server/server.js
|
@ -1,196 +0,0 @@
|
||||||
import express from 'express';
|
|
||||||
import bodyParser from 'body-parser';
|
|
||||||
import cors from 'cors';
|
|
||||||
import DAO from './Controller/DAO.js'; // Importa tus controladores DAO
|
|
||||||
import DAOTutor from './Controller/DAOTutor.js';
|
|
||||||
import DAOCarreras from './Controller/DAOCarrera.js';
|
|
||||||
import Usuario from './Model/Usuario.js'; // Importa tus modelos
|
|
||||||
import multer from 'multer';
|
|
||||||
import path from 'path';
|
|
||||||
import { fileURLToPath } from 'url';
|
|
||||||
import DAODocumento from './Controller/DAODocumento.js';
|
|
||||||
import fs from 'fs';
|
|
||||||
|
|
||||||
const app = express();
|
|
||||||
const port = 3000;
|
|
||||||
|
|
||||||
// Obtener el directorio actual
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
|
||||||
const __dirname = path.dirname(__filename);
|
|
||||||
|
|
||||||
const diskStorage = multer.diskStorage({
|
|
||||||
destination: path.join(__dirname, '/ActasNacimiento'),
|
|
||||||
filename: (req, file, cb) => {
|
|
||||||
cb(null, file.originalname);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const fileUpload = multer({
|
|
||||||
storage: diskStorage
|
|
||||||
}).single('archivo');
|
|
||||||
|
|
||||||
app.use(bodyParser.json());
|
|
||||||
|
|
||||||
// Configuración de CORS
|
|
||||||
app.use(cors({
|
|
||||||
origin: 'http://localhost:5173', // Especifica el origen permitido
|
|
||||||
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
|
|
||||||
allowedHeaders: ['Origin', 'X-Requested-With', 'Content-Type', 'Accept'],
|
|
||||||
credentials: true
|
|
||||||
}));
|
|
||||||
app.use(express.static(path.join(__dirname,'ActasNacimiento')))
|
|
||||||
|
|
||||||
// Rutas
|
|
||||||
app.get("/matriculas", async (req, res) => {
|
|
||||||
try {
|
|
||||||
const alumnos = await DAO.matriculas();
|
|
||||||
res.json(alumnos);
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
app.post("/agregarAlumno", async (req, res) => {
|
|
||||||
try {
|
|
||||||
const usuario = req.body;
|
|
||||||
usuario.rol = "estudiante";
|
|
||||||
const msj = await DAO.agregarAlumno(usuario);
|
|
||||||
res.json(msj);
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
app.put("/editarUsuario", async (req, res) => {
|
|
||||||
try {
|
|
||||||
const usuario = req.body;
|
|
||||||
const verificado = await DAO.editarAlumno(usuario);
|
|
||||||
res.json({ Editado: verificado });
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
app.put("/editarTutor", async (req, res) => {
|
|
||||||
try {
|
|
||||||
const tutor = req.body;
|
|
||||||
const verificado = await DAOTutor.editarTutor(tutor);
|
|
||||||
res.json({ Editado: verificado });
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
app.post("/agregarTutor", async (req, res) => {
|
|
||||||
try {
|
|
||||||
const tutor = req.body;
|
|
||||||
const agregado = await DAOTutor.agregarTutor(tutor);
|
|
||||||
res.json({ msj: agregado });
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
app.post("/alumnoIniciado", async (req, res) => {
|
|
||||||
try {
|
|
||||||
const alumno = req.body;
|
|
||||||
const matricula = alumno.matricula;
|
|
||||||
if (!alumno.matricula || !alumno.contrasena) {
|
|
||||||
return res.status(400).json({ error: "Missing matricula or contrasena" });
|
|
||||||
}
|
|
||||||
const usuario = await DAO.alumnoIniciado(alumno.matricula, alumno.contrasena);
|
|
||||||
const user = new Usuario();
|
|
||||||
if (usuario) {
|
|
||||||
const authToken = user.crearToken();
|
|
||||||
const authRol = usuario.getRol();
|
|
||||||
const authId = usuario.getId();
|
|
||||||
const message = `Bienvenido ${usuario.getNombre()}`;
|
|
||||||
res.json({ matricula, authToken, authRol, authId, message });
|
|
||||||
} else {
|
|
||||||
res.status(401).json({ error: "Credenciales inválidas" });
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
app.post("/usuarioValido", async (req, res) => {
|
|
||||||
try {
|
|
||||||
const usuario = req.body;
|
|
||||||
const verificado = await DAO.validarAlumno(usuario);
|
|
||||||
res.json({ existe: verificado });
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
app.post("/traerDatosAlumno", async (req, res) => {
|
|
||||||
try {
|
|
||||||
const usuario = req.body;
|
|
||||||
const datos = await DAO.traeUsuario(usuario.id);
|
|
||||||
res.json(datos);
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
app.get("/carreras", async (req, res) => {
|
|
||||||
try {
|
|
||||||
const carreras = await DAOCarreras.dameCarreras();
|
|
||||||
res.json(carreras);
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
app.post("/traerDatosTutor", async (req, res) => {
|
|
||||||
try {
|
|
||||||
const usuario = req.body;
|
|
||||||
const datos = await DAOTutor.traerTutor(usuario.id);
|
|
||||||
res.json(datos);
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
app.post("/agregarDocumentoAN", fileUpload, async (req, res) => {
|
|
||||||
try {
|
|
||||||
const data = req.body;
|
|
||||||
const file = fs.readFileSync(path.join(__dirname, '/ActasNacimiento/' + req.file.filename))
|
|
||||||
const guardado = await DAODocumento.agregarDocumento(data, file);
|
|
||||||
|
|
||||||
if (guardado) {
|
|
||||||
const cambiar = await DAO.editarAlumnoInscrito(data);
|
|
||||||
if (cambiar) {
|
|
||||||
res.json({ message: true });
|
|
||||||
} else {
|
|
||||||
res.json({ message: false });
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
res.json({ message: false });
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Manejo de errores
|
|
||||||
app.use((err, req, res, next) => {
|
|
||||||
console.error(err.stack);
|
|
||||||
res.status(500).send('Something broke!');
|
|
||||||
});
|
|
||||||
|
|
||||||
// Iniciar el servidor
|
|
||||||
app.listen(port, () => {
|
|
||||||
console.log(`App listening at http://localhost:${port}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
app.post("/traerTodosDatosAlumno", async (req, res) => {
|
|
||||||
try {
|
|
||||||
const usuario = req.body;
|
|
||||||
const datos = await DAO.traeTodosLosDatosUsuario(usuario.id);
|
|
||||||
res.json(datos);
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"java.configuration.updateBuildConfiguration": "interactive"
|
|
||||||
}
|
|
|
@ -4,15 +4,11 @@ import static spark.Spark.*;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.*;
|
||||||
import com.google.gson.JsonObject;
|
|
||||||
|
|
||||||
import mx.uv.Controller.DAO;
|
import mx.uv.Controller.DAO;
|
||||||
import mx.uv.Controller.DAOTutor;
|
|
||||||
import mx.uv.Controller.DAO_Carrrera;
|
import mx.uv.Controller.DAO_Carrrera;
|
||||||
import mx.uv.Model.Mensaje;
|
import mx.uv.Model.*;
|
||||||
import mx.uv.Model.Tutor;
|
|
||||||
import mx.uv.Model.Usuario;
|
|
||||||
|
|
||||||
public class App {
|
public class App {
|
||||||
static Gson gson = new Gson();
|
static Gson gson = new Gson();
|
||||||
|
@ -55,7 +51,7 @@ public class App {
|
||||||
return respuesta;
|
return respuesta;
|
||||||
});
|
});
|
||||||
|
|
||||||
put("/editarUsuario", (request, response) -> {
|
put("/editarAlumno", (request, response) -> {
|
||||||
String payload = request.body();
|
String payload = request.body();
|
||||||
Usuario usuario = gson.fromJson(payload, Usuario.class);
|
Usuario usuario = gson.fromJson(payload, Usuario.class);
|
||||||
boolean verificado = DAO.editarAlumno(usuario);
|
boolean verificado = DAO.editarAlumno(usuario);
|
||||||
|
@ -64,21 +60,12 @@ public class App {
|
||||||
return respuesta;
|
return respuesta;
|
||||||
});
|
});
|
||||||
|
|
||||||
put("/editarTutor", (request, response) -> {
|
delete("/eliminarAlumno", (request, response) -> {
|
||||||
String payload = request.body();
|
String payload = request.body();
|
||||||
Tutor tutor = gson.fromJson(payload, Tutor.class);
|
Usuario usuario = gson.fromJson(payload, Usuario.class);
|
||||||
boolean verificado = DAOTutor.editarTutor(tutor);
|
boolean verificado = DAO.eliminarAlumno(usuario.getId());
|
||||||
JsonObject respuesta = new JsonObject();
|
JsonObject respuesta = new JsonObject();
|
||||||
respuesta.addProperty("Editado", verificado);
|
respuesta.addProperty("existe", verificado);
|
||||||
return respuesta;
|
|
||||||
});
|
|
||||||
|
|
||||||
post("/agregarTutor", (request, response) -> {
|
|
||||||
String payload = request.body();
|
|
||||||
Tutor tutor = gson.fromJson(payload, Tutor.class);
|
|
||||||
Boolean agregado = DAOTutor.agregarTutor(tutor);
|
|
||||||
JsonObject respuesta = new JsonObject();
|
|
||||||
respuesta.addProperty("msj", agregado);
|
|
||||||
return respuesta;
|
return respuesta;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -95,7 +82,6 @@ public class App {
|
||||||
respuesta.addProperty("matricula", usuario.getMatricula());
|
respuesta.addProperty("matricula", usuario.getMatricula());
|
||||||
respuesta.addProperty("authToken", usuario.crearToken());
|
respuesta.addProperty("authToken", usuario.crearToken());
|
||||||
respuesta.addProperty("authRol", usuario.getRol());
|
respuesta.addProperty("authRol", usuario.getRol());
|
||||||
respuesta.addProperty("authId", usuario.getId());
|
|
||||||
respuesta.addProperty("message", "Binevenido " + usuario.getNombre());
|
respuesta.addProperty("message", "Binevenido " + usuario.getNombre());
|
||||||
return gson.toJson(respuesta);
|
return gson.toJson(respuesta);
|
||||||
});
|
});
|
||||||
|
@ -109,24 +95,9 @@ public class App {
|
||||||
return respuesta;
|
return respuesta;
|
||||||
});
|
});
|
||||||
|
|
||||||
post("/traerDatosAlumno", (request, response) -> {
|
|
||||||
String payload = request.body();
|
|
||||||
response.type("application/json");
|
|
||||||
Usuario u = gson.fromJson(payload, Usuario.class);
|
|
||||||
return gson.toJson(DAO.traeUsuario(u.getId()));
|
|
||||||
});
|
|
||||||
|
|
||||||
get("/carreras", (request, response) -> {
|
get("/carreras", (request, response) -> {
|
||||||
response.type("application/json");
|
response.type("application/json");
|
||||||
return gson.toJson(DAO_Carrrera.dameCarreras());
|
return gson.toJson(DAO_Carrrera.dameCarreras());
|
||||||
});
|
});
|
||||||
|
|
||||||
post("/traerDatosTutor", (request, response) -> {
|
|
||||||
String payload = request.body();
|
|
||||||
response.type("application/json");
|
|
||||||
Usuario u = gson.fromJson(payload, Usuario.class);
|
|
||||||
return gson.toJson(DAOTutor.tarerTutor(u.getId()));
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,8 +6,6 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import com.google.gson.JsonElement;
|
|
||||||
|
|
||||||
import mx.uv.Model.Usuario;
|
import mx.uv.Model.Usuario;
|
||||||
import mx.uv.Model.Mensaje;
|
import mx.uv.Model.Mensaje;
|
||||||
import mx.uv.Model.Registro;
|
import mx.uv.Model.Registro;
|
||||||
|
@ -54,6 +52,7 @@ public class DAO {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
} finally {
|
} finally {
|
||||||
|
cerrarConexiones(null, conn);
|
||||||
}
|
}
|
||||||
return resultado;
|
return resultado;
|
||||||
}
|
}
|
||||||
|
@ -79,6 +78,7 @@ public class DAO {
|
||||||
} catch (SQLException ex) {
|
} catch (SQLException ex) {
|
||||||
System.err.println(ex);
|
System.err.println(ex);
|
||||||
} finally {
|
} finally {
|
||||||
|
cerrarConexiones(stm, conn);
|
||||||
}
|
}
|
||||||
return verificacion;
|
return verificacion;
|
||||||
}
|
}
|
||||||
|
@ -113,6 +113,7 @@ public class DAO {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
} finally {
|
} finally {
|
||||||
|
cerrarConexiones(stm, conn);
|
||||||
}
|
}
|
||||||
return mensaje;
|
return mensaje;
|
||||||
}
|
}
|
||||||
|
@ -128,6 +129,24 @@ public class DAO {
|
||||||
return contrasena.toString();
|
return contrasena.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void cerrarConexiones(PreparedStatement stm, Connection conn) {
|
||||||
|
if (stm != null) {
|
||||||
|
try {
|
||||||
|
stm.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if (conn != null) {
|
||||||
|
conn.close();
|
||||||
|
cn.cerrarConexion();
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean eliminarAlumno(int idAlumno) {
|
public static boolean eliminarAlumno(int idAlumno) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -138,23 +157,23 @@ public class DAO {
|
||||||
boolean verificacion = false;
|
boolean verificacion = false;
|
||||||
conn = cn.conectar();
|
conn = cn.conectar();
|
||||||
try {
|
try {
|
||||||
String sql = "UPDATE `usuario` SET `nombre` = ?, `apellido` = ?, `correo` = ?, `nacionalidad` = ?, `tipoSangre` = ?, `fecha_nacimiento` = ?, `curp` = ?, `idCarrera` = ? WHERE `id` = ?;";
|
String sql = "UPDATE " + nombreTabla + " SET " + colNombre + " = ?, " + colApellido + " = ?, "
|
||||||
|
+ colFechaNacimiento + " = ?, " + colNacionalidad + " = ?, " + colTipoSangre + " = ?, "
|
||||||
|
+ colContrasena + " = ? WHERE " + colId + " = ?";
|
||||||
stm = conn.prepareStatement(sql);
|
stm = conn.prepareStatement(sql);
|
||||||
stm.setString(1, usuario.getNombre());
|
stm.setString(1, usuario.getNombre());
|
||||||
stm.setString(2, usuario.getApellido());
|
stm.setString(2, usuario.getApellido());
|
||||||
stm.setString(3, usuario.getCorreo());
|
stm.setString(3, usuario.getFecha_nacimiento());
|
||||||
stm.setString(4, usuario.getNacionalidad());
|
stm.setString(4, usuario.getNacionalidad());
|
||||||
stm.setString(5, usuario.getTipoSangre());
|
stm.setString(5, usuario.getTipoSangre());
|
||||||
stm.setString(6, usuario.getFecha_nacimiento());
|
stm.setString(6, usuario.getContrasena());
|
||||||
stm.setString(7, usuario.getCurp());
|
stm.setInt(7, usuario.getId());
|
||||||
stm.setInt(8, usuario.getIdCarrera());
|
stm.executeUpdate();
|
||||||
stm.setInt(9, usuario.getId());
|
|
||||||
if (stm.executeUpdate() > 0) {
|
|
||||||
verificacion = true;
|
verificacion = true;
|
||||||
}
|
|
||||||
} catch (SQLException ex) {
|
} catch (SQLException ex) {
|
||||||
System.err.println(ex);
|
System.err.println(ex);
|
||||||
} finally {
|
} finally {
|
||||||
|
cerrarConexiones(stm, conn);
|
||||||
cn.cerrarConexion();
|
cn.cerrarConexion();
|
||||||
}
|
}
|
||||||
return verificacion;
|
return verificacion;
|
||||||
|
@ -180,6 +199,7 @@ public class DAO {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
} finally {
|
} finally {
|
||||||
|
cerrarConexiones(null, conn);
|
||||||
}
|
}
|
||||||
return usuario;
|
return usuario;
|
||||||
}
|
}
|
||||||
|
@ -213,31 +233,4 @@ public class DAO {
|
||||||
}
|
}
|
||||||
return ultimoID;
|
return ultimoID;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Usuario traeUsuario(int id) {
|
|
||||||
PreparedStatement stm = null;
|
|
||||||
Connection conn = null;
|
|
||||||
Usuario user = null;
|
|
||||||
ResultSet rs = null;
|
|
||||||
conn = cn.conectar();
|
|
||||||
try {
|
|
||||||
String sql = "SELECT `id`,`nombre`,`apellido`,`matricula`,`correo`,`nacionalidad`,`tipoSangre`,`fecha_nacimiento`,`curp`,`idCarrera`,`inscrito`\n"
|
|
||||||
+ //
|
|
||||||
"FROM `usuario` where id = ? ;";
|
|
||||||
stm = conn.prepareStatement(sql);
|
|
||||||
stm.setInt(1, id);
|
|
||||||
rs = stm.executeQuery();
|
|
||||||
while (rs.next()) {
|
|
||||||
user = new Usuario(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5),
|
|
||||||
rs.getString(6), rs.getString(7), rs.getString(8), rs.getString(9), rs.getInt(10),
|
|
||||||
rs.getInt(11));
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (SQLException ex) {
|
|
||||||
System.err.println(ex);
|
|
||||||
} finally {
|
|
||||||
}
|
|
||||||
return user;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ public class DAOTutor {
|
||||||
stm = conn.createStatement();
|
stm = conn.createStatement();
|
||||||
rs = stm.executeQuery(sql);
|
rs = stm.executeQuery(sql);
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
Tutor u = new Tutor(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getInt(5));
|
Tutor u = new Tutor(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getInt(5));
|
||||||
resultado.add(u);
|
resultado.add(u);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -72,7 +72,7 @@ public class DAOTutor {
|
||||||
stm = (PreparedStatement) conn.prepareStatement(sql);
|
stm = (PreparedStatement) conn.prepareStatement(sql);
|
||||||
stm.setString(1, tutor.getNombre());
|
stm.setString(1, tutor.getNombre());
|
||||||
stm.setString(2, tutor.getApellido());
|
stm.setString(2, tutor.getApellido());
|
||||||
stm.setInt(3, tutor.getNumeroDeTelefono());
|
stm.setString(3, tutor.getNumeroDeTelefono());
|
||||||
stm.setInt(4, tutor.getIdUsuario());
|
stm.setInt(4, tutor.getIdUsuario());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
|
@ -109,15 +109,11 @@ public class DAOTutor {
|
||||||
boolean verificacion = false;
|
boolean verificacion = false;
|
||||||
conn = cn.conectar();
|
conn = cn.conectar();
|
||||||
try {
|
try {
|
||||||
String sql = "UPDATE `tutor` SET `nombre` = ?, `apellido` = ?, `numeroDeTelefono` = ? WHERE `idUsuario` = ?;";
|
String sql = "UPDATE `tutor` SET `nombre` = '" + tutor.getNombre() + "',`apellido` = '"
|
||||||
|
+ tutor.getApellido() + "';";
|
||||||
stm = conn.prepareStatement(sql);
|
stm = conn.prepareStatement(sql);
|
||||||
stm.setString(1, tutor.getNombre());
|
stm.executeQuery();
|
||||||
stm.setString(2, tutor.getApellido());
|
|
||||||
stm.setInt(3, tutor.getNumeroDeTelefono());
|
|
||||||
stm.setInt(4, tutor.getIdUsuario());
|
|
||||||
if (stm.executeUpdate() > 0) {
|
|
||||||
verificacion = true;
|
verificacion = true;
|
||||||
}
|
|
||||||
} catch (SQLException ex) {
|
} catch (SQLException ex) {
|
||||||
System.out.println(ex);
|
System.out.println(ex);
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -127,30 +123,4 @@ public class DAOTutor {
|
||||||
return verificacion;
|
return verificacion;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Tutor tarerTutor(int id) {
|
|
||||||
PreparedStatement stm = null;
|
|
||||||
Connection conn = null;
|
|
||||||
Tutor tutor = null;
|
|
||||||
ResultSet rs = null;
|
|
||||||
conn = cn.conectar();
|
|
||||||
try {
|
|
||||||
String sql = "SELECT `id`,`nombre`,`apellido`,`numeroDeTelefono`,`idUsuario`\n"
|
|
||||||
+
|
|
||||||
"FROM `tutor` where idUsuario = ? ;";
|
|
||||||
stm = conn.prepareStatement(sql);
|
|
||||||
stm.setInt(1, id);
|
|
||||||
rs = stm.executeQuery();
|
|
||||||
if (rs.next()) {
|
|
||||||
tutor = new Tutor(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getInt(5));
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (SQLException ex) {
|
|
||||||
System.err.println(ex);
|
|
||||||
} finally {
|
|
||||||
cerrarConexiones(stm, conn);
|
|
||||||
cn.cerrarConexion();
|
|
||||||
}
|
|
||||||
return tutor;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ public class DAO_Carrrera {
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
Connection conn = null;
|
Connection conn = null;
|
||||||
List<Carrera> resultado = new ArrayList<>();
|
List<Carrera> resultado = new ArrayList<>();
|
||||||
System.out.println("Aqui");
|
|
||||||
conn = cn.conectar();
|
conn = cn.conectar();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -30,9 +30,86 @@ public class DAO_Carrrera {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
} finally {
|
} finally {
|
||||||
|
cerrarConexiones(null, conn);
|
||||||
}
|
}
|
||||||
return resultado;
|
return resultado;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* public static boolean agregarCarrera(Carrera carrera) {
|
||||||
|
* PreparedStatement stm = null;
|
||||||
|
* Connection conn = null;
|
||||||
|
* boolean msj = false;
|
||||||
|
*
|
||||||
|
* conn = cn.conectar();
|
||||||
|
*
|
||||||
|
* try {
|
||||||
|
* String sql =
|
||||||
|
* "INSERT INTO `carrera` (`area`,`nombre`, `modalidad`, `campus`, `costo`) VALUES(?,?,?,?,?);"
|
||||||
|
* ;
|
||||||
|
* stm = (PreparedStatement) conn.prepareStatement(sql);
|
||||||
|
* stm.setString(1, carrera.getArea());
|
||||||
|
* stm.setString(2, carrera.getNombre());
|
||||||
|
* stm.setString(3, carrera.getModalidad());
|
||||||
|
* stm.setString(4, carrera.getCampus());
|
||||||
|
* stm.setDouble(5, carrera.getCosto());
|
||||||
|
*
|
||||||
|
* } catch (Exception e) {
|
||||||
|
* System.out.println(e);
|
||||||
|
* } finally {
|
||||||
|
* cerrarConexiones(stm, conn);
|
||||||
|
* }
|
||||||
|
* return msj;
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
|
||||||
|
private static void cerrarConexiones(PreparedStatement stm, Connection conn) {
|
||||||
|
if (stm != null) {
|
||||||
|
try {
|
||||||
|
stm.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println(e);
|
||||||
|
}
|
||||||
|
stm = null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
conn.close();
|
||||||
|
cn.cerrarConexion();
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean eliminarCarrera(int idCarrera) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* public static boolean editarCarrera(Carrera carrera) {
|
||||||
|
* PreparedStatement stm = null;
|
||||||
|
* Connection conn = null;
|
||||||
|
* boolean verificacion = false;
|
||||||
|
* conn = cn.conectar();
|
||||||
|
*
|
||||||
|
* try {
|
||||||
|
* String sql = "UPDATE `alumno` SET `area` = '" + carrera.getArea() +
|
||||||
|
* "',`nombre` = '" + carrera.getNombre()
|
||||||
|
* + "',`modalidad` = '" + carrera.getModalidad() + "',`campus` = '"
|
||||||
|
* + carrera.getCampus() + "', `costo` = '" + carrera.getCosto() +
|
||||||
|
* "' WHERE `id` = '"
|
||||||
|
* + carrera.getId() + "';";
|
||||||
|
* stm = conn.prepareStatement(sql);
|
||||||
|
* stm.executeUpdate();
|
||||||
|
* verificacion = true;
|
||||||
|
* } catch (SQLException ex) {
|
||||||
|
* System.err.println(ex);
|
||||||
|
* } finally {
|
||||||
|
* cerrarConexiones(stm, conn);
|
||||||
|
* cn.cerrarConexion();
|
||||||
|
* }
|
||||||
|
* return verificacion;
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
|
@ -81,27 +81,37 @@ public class DAO_Documentacion {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean agregarDocumento(Documento doc) {
|
public static boolean editarDocumentacion(Documento documentacion) {
|
||||||
PreparedStatement stm = null;
|
PreparedStatement stm = null;
|
||||||
Connection conn = null;
|
Connection conn = null;
|
||||||
boolean msj = false;
|
boolean verificacion = false;
|
||||||
|
|
||||||
conn = cn.conectar();
|
conn = cn.conectar();
|
||||||
String sql = "INSERT INTO documento (titulo, archivo, idUsuario, valido) VALUES (?, ?, ?, ?)";
|
|
||||||
try {
|
|
||||||
stm = conn.prepareStatement(sql);
|
|
||||||
stm.setString(1, doc.getTitulo());
|
|
||||||
stm.setBlob(2, doc.getArchivo());
|
|
||||||
stm.setInt(3, doc.getIdUsuario());
|
|
||||||
stm.setInt(4, doc.getValido());
|
|
||||||
|
|
||||||
if (stm.executeUpdate() > 0) {
|
try {
|
||||||
msj = true;
|
/*
|
||||||
|
* String sql = "UPDATE `documentacion` SET `acta_nacimiento` = '" +
|
||||||
|
* documentacion.getActaNacimiento()
|
||||||
|
* + "',`certificado_bachillerato` = '" +
|
||||||
|
* documentacion.getCertificadoBachillerato() + "',`curp` = '"
|
||||||
|
* + documentacion.getCurp() + "',`ine` = '" + documentacion.getIne() +
|
||||||
|
* "', `ine_tutor` = '"
|
||||||
|
* + documentacion.getIneTutor() + "',`certificado_medico` = '" +
|
||||||
|
* documentacion.getCertificadoMedico()
|
||||||
|
* + "',`comprobante` = '" + documentacion.getComprobante() +
|
||||||
|
* "',`fotografia` = '"
|
||||||
|
* + documentacion.getFotografia() + "',`constancia` = '" +
|
||||||
|
* documentacion.getConstancia()
|
||||||
|
* + "' WHERE `id` = '" + documentacion.getId() + "';";
|
||||||
|
*/
|
||||||
|
stm = conn.prepareStatement("");
|
||||||
|
stm.executeUpdate();
|
||||||
|
verificacion = true;
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
System.err.println(ex);
|
||||||
|
} finally {
|
||||||
|
cerrarConexiones(stm, conn);
|
||||||
|
cn.cerrarConexion();
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
return verificacion;
|
||||||
e.printStackTrace();
|
|
||||||
// Manejar cualquier excepción y retornar falso en caso de error
|
|
||||||
}
|
|
||||||
return msj;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +1,14 @@
|
||||||
package mx.uv.Model;
|
package mx.uv.Model;
|
||||||
|
|
||||||
import java.io.InputStream;
|
|
||||||
|
|
||||||
|
|
||||||
public class Documento {
|
public class Documento {
|
||||||
private int id;
|
private int id;
|
||||||
private String titulo;
|
private String titulo;
|
||||||
private InputStream archivo;
|
private byte[] archivo;
|
||||||
private int idUsuario;
|
private int idUsuario;
|
||||||
private int valido;
|
private int valido;
|
||||||
|
|
||||||
public Documento(String titulo, InputStream archivo, int idUsuario, int valido) {
|
public Documento(int id, String titulo, byte[] archivo, int idUsuario, int valido) {
|
||||||
|
this.id = id;
|
||||||
this.titulo = titulo;
|
this.titulo = titulo;
|
||||||
this.archivo = archivo;
|
this.archivo = archivo;
|
||||||
this.idUsuario = idUsuario;
|
this.idUsuario = idUsuario;
|
||||||
|
@ -25,7 +23,7 @@ public class Documento {
|
||||||
return titulo;
|
return titulo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public InputStream getArchivo() {
|
public byte[] getArchivo() {
|
||||||
return archivo;
|
return archivo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +43,7 @@ public class Documento {
|
||||||
this.titulo = titulo;
|
this.titulo = titulo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setArchivo(InputStream archivo) {
|
public void setArchivo(byte[] archivo) {
|
||||||
this.archivo = archivo;
|
this.archivo = archivo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,10 @@ public class Tutor {
|
||||||
private int id;
|
private int id;
|
||||||
private String nombre;
|
private String nombre;
|
||||||
private String apellido;
|
private String apellido;
|
||||||
private int numeroDeTelefono;
|
private String numeroDeTelefono;
|
||||||
private int idUsuario;
|
private int idUsuario;
|
||||||
|
|
||||||
public Tutor(int id, String nombre, String apellido, int numeroDeTelefono, int idUsuario) {
|
public Tutor(int id, String nombre, String apellido, String numeroDeTelefono, int idUsuario) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.nombre = nombre;
|
this.nombre = nombre;
|
||||||
this.apellido = apellido;
|
this.apellido = apellido;
|
||||||
|
@ -27,7 +27,7 @@ public class Tutor {
|
||||||
return apellido;
|
return apellido;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getNumeroDeTelefono() {
|
public String getNumeroDeTelefono() {
|
||||||
return numeroDeTelefono;
|
return numeroDeTelefono;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ public class Tutor {
|
||||||
this.apellido = apellido;
|
this.apellido = apellido;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNumeroDeTelefono(int numeroDeTelefono) {
|
public void setNumeroDeTelefono(String numeroDeTelefono) {
|
||||||
this.numeroDeTelefono = numeroDeTelefono;
|
this.numeroDeTelefono = numeroDeTelefono;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ public class Usuario {
|
||||||
this.inscrito = inscrito;
|
this.inscrito = inscrito;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Usuario(int id, String nombre, String apellido, String matricula) {
|
public Usuario(int id, String nombre, String apellido, String matricula) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.nombre = nombre;
|
this.nombre = nombre;
|
||||||
|
@ -42,6 +43,8 @@ public class Usuario {
|
||||||
this.matricula = matricula;
|
this.matricula = matricula;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Usuario(int id, String nombre, String apellido, String matricula, String rol) {
|
public Usuario(int id, String nombre, String apellido, String matricula, String rol) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.nombre = nombre;
|
this.nombre = nombre;
|
||||||
|
@ -50,20 +53,6 @@ public class Usuario {
|
||||||
this.rol = rol;
|
this.rol = rol;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Usuario(int id, String nombre, String apellido, String matricula, String correo, String nacionalidad,
|
|
||||||
String tipoSangre, String fecha_nacimiento, String curp, int idCarrera, int inscrito) {
|
|
||||||
this.id = id;
|
|
||||||
this.nombre = nombre;
|
|
||||||
this.apellido = apellido;
|
|
||||||
this.matricula = matricula;
|
|
||||||
this.correo = correo;
|
|
||||||
this.nacionalidad = nacionalidad;
|
|
||||||
this.tipoSangre = tipoSangre;
|
|
||||||
this.fecha_nacimiento = fecha_nacimiento;
|
|
||||||
this.curp = curp;
|
|
||||||
this.idCarrera = idCarrera;
|
|
||||||
this.inscrito = inscrito;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Usuario(String matricula, String contrasena) {
|
public Usuario(String matricula, String contrasena) {
|
||||||
this.matricula = matricula;
|
this.matricula = matricula;
|
||||||
|
|
|
@ -17,13 +17,11 @@ function App() {
|
||||||
<BrowserRouter>
|
<BrowserRouter>
|
||||||
<Nav />
|
<Nav />
|
||||||
<Routes>
|
<Routes>
|
||||||
|
|
||||||
<Route path="/login" element={<Login />} />
|
<Route path="/login" element={<Login />} />
|
||||||
<Route path="/registro" element={<Registro />} />
|
<Route path="/registro" element={<Registro />} />
|
||||||
<Route element={<ProtectorDeRutas />}>
|
<Route element={<ProtectorDeRutas />}>
|
||||||
<Route path="/home" element={<OfertaEducativa />} />
|
<Route path="/home" element={<OfertaEducativa />} />
|
||||||
<Route path="/info" element={<Informacion />} />
|
<Route path="/info" element={<Informacion />} />
|
||||||
<Route path="/" />
|
|
||||||
<Route element={<ProtectorAdmin />}>
|
<Route element={<ProtectorAdmin />}>
|
||||||
<Route path="/inscripcion" element={<Inscripcion />} />
|
<Route path="/inscripcion" element={<Inscripcion />} />
|
||||||
</Route>
|
</Route>
|
||||||
|
|
|
@ -7,7 +7,6 @@ const Nav = () => {
|
||||||
storage.remove("authToken");
|
storage.remove("authToken");
|
||||||
storage.remove("authUser");
|
storage.remove("authUser");
|
||||||
storage.remove("authRol");
|
storage.remove("authRol");
|
||||||
storage.remove("authId");
|
|
||||||
go("/login");
|
go("/login");
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -4,7 +4,7 @@ import storage from "../Storage/storage";
|
||||||
|
|
||||||
export const ProtectorDeRutas = ({ children }) => {
|
export const ProtectorDeRutas = ({ children }) => {
|
||||||
const authUser = storage.get("authToken");
|
const authUser = storage.get("authToken");
|
||||||
if (!authUser ) {
|
if (!authUser) {
|
||||||
return <Navigate to="/login" />;
|
return <Navigate to="/login" />;
|
||||||
}
|
}
|
||||||
return <Outlet />;
|
return <Outlet />;
|
||||||
|
|
|
@ -1,321 +1,134 @@
|
||||||
import React, { useEffect, useState } from 'react';
|
import React from 'react';
|
||||||
import axios from 'axios';
|
import { useNavigate, NavLink } from "react-router-dom";
|
||||||
|
import { sendRequest } from "../funciones";
|
||||||
import DivInput from "../Components/divInput";
|
import DivInput from "../Components/divInput";
|
||||||
import storage from "../Storage/storage";
|
import storage from "../Storage/storage";
|
||||||
import { useNavigate } from 'react-router-dom';
|
|
||||||
|
|
||||||
const Inscripcion = () => {
|
const Inscripcion = () => {
|
||||||
const go = useNavigate();
|
|
||||||
const [user] = useState({ id: storage.get('authId') });
|
|
||||||
const [carreraSeleccionada, setCarreraSeleccionada] = useState('');
|
|
||||||
const [usuario, setUsuario] = useState({
|
|
||||||
id: 0,
|
|
||||||
nombre: "",
|
|
||||||
apellido: "",
|
|
||||||
matricula: "",
|
|
||||||
correo: "",
|
|
||||||
nacionalidad: "",
|
|
||||||
tipoSangre: "",
|
|
||||||
fecha_nacimiento: "",
|
|
||||||
curp: "",
|
|
||||||
idCarrera: 0,
|
|
||||||
inscrito:0
|
|
||||||
});
|
|
||||||
|
|
||||||
const [tutor, setTutor] = useState({
|
|
||||||
id: 0,
|
|
||||||
nombre: "",
|
|
||||||
apellido: "",
|
|
||||||
numeroDeTelefono: "",
|
|
||||||
idUsuario: storage.get('authId')
|
|
||||||
});
|
|
||||||
const [carrera, setCarrera] = useState([]);
|
|
||||||
const [actaN, setActaN] = useState({
|
|
||||||
id: 0,
|
|
||||||
titulo: "",
|
|
||||||
archivo: null,
|
|
||||||
idUsuario: 0,
|
|
||||||
valido: null
|
|
||||||
});
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
const fetchData = async () => {
|
|
||||||
try {
|
|
||||||
const resUsuario = await axios.post("/traerDatosAlumno", user);
|
|
||||||
if (resUsuario.status === 200) {
|
|
||||||
setUsuario((prevUsuario) => ({
|
|
||||||
...prevUsuario,
|
|
||||||
id: resUsuario.data.id || 0,
|
|
||||||
nombre: resUsuario.data.nombre || "",
|
|
||||||
apellido: resUsuario.data.apellido || "",
|
|
||||||
matricula: resUsuario.data.matricula || "",
|
|
||||||
correo: resUsuario.data.correo || "",
|
|
||||||
nacionalidad: resUsuario.data.nacionalidad || "",
|
|
||||||
tipoSangre: resUsuario.data.tipoSangre || "",
|
|
||||||
fecha_nacimiento: resUsuario.data.fecha_nacimiento || "",
|
|
||||||
curp: resUsuario.data.curp || "",
|
|
||||||
idCarrera: resUsuario.data.idCarrera || 0,
|
|
||||||
inscrito: resUsuario.data.inscrito || 0
|
|
||||||
}));
|
|
||||||
} else {
|
|
||||||
console.log('Error: No hay usuario');
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const resTutor = await axios.post("/traerDatosTutor", user);
|
|
||||||
if (resTutor.status === 200) {
|
|
||||||
setTutor({
|
|
||||||
id: resTutor.data.id,
|
|
||||||
nombre: resTutor.data.nombre || "",
|
|
||||||
apellido: resTutor.data.apellido || "",
|
|
||||||
numeroDeTelefono: resTutor.data.numeroDeTelefono || "",
|
|
||||||
idUsuario: resTutor.data.idUsuario || 0
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
console.log('Error: No hay tutor');
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Error:', error);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const resCarrera = await axios.get("/carreras", user);
|
|
||||||
if (resCarrera.status === 200) {
|
|
||||||
setCarrera(resCarrera.data);
|
|
||||||
} else {
|
|
||||||
console.log('Error: No hay Carrera');
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Error:', error);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
fetchData();
|
|
||||||
}, [user]);
|
|
||||||
|
|
||||||
const handleInputChange = (e) => {
|
|
||||||
const { name, value } = e.target;
|
|
||||||
setUsuario((prevUsuario) => ({
|
|
||||||
...prevUsuario,
|
|
||||||
[name]: value
|
|
||||||
}));
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleTutorInputChange = (e) => {
|
|
||||||
const { name, value } = e.target;
|
|
||||||
setTutor((prevTutor) => ({
|
|
||||||
...prevTutor,
|
|
||||||
[name]: value
|
|
||||||
}));
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleFileChange = (e) => {
|
|
||||||
const file = e.target.files[0];
|
|
||||||
const fileName = `${usuario.matricula}_ActaN.pdf`;
|
|
||||||
const modifiedFile = new File([file], fileName, { type: file.type });
|
|
||||||
|
|
||||||
setActaN((prevActaN) => ({
|
|
||||||
...prevActaN,
|
|
||||||
archivo: modifiedFile
|
|
||||||
}));
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleCarreraChange = (e) => {
|
|
||||||
const selectedCarreraId = e.target.value;
|
|
||||||
setCarreraSeleccionada(selectedCarreraId);
|
|
||||||
setUsuario((prevUsuario) => ({
|
|
||||||
...prevUsuario,
|
|
||||||
idCarrera: parseInt(selectedCarreraId, 10)
|
|
||||||
}));
|
|
||||||
};
|
|
||||||
|
|
||||||
const subir = async (e) => {
|
|
||||||
e.preventDefault();
|
|
||||||
try {
|
|
||||||
if (tutor.id === 0) {
|
|
||||||
setTutor({
|
|
||||||
idUsuario: usuario.id
|
|
||||||
});
|
|
||||||
const res = await axios.post(`/agregarTutor`, tutor);
|
|
||||||
if (res.status === 200) {
|
|
||||||
console.log('Tutor agregado exitosamente:', res.data);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
const res = await axios.put(`/editarTutor`, tutor);
|
|
||||||
if (res.status === 200) {
|
|
||||||
console.log('Tutor actualizado exitosamente:', res.data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const resUsuario = await axios.put(`/editarUsuario`, usuario);
|
|
||||||
if (resUsuario.status === 200) {
|
|
||||||
console.log('Usuario actualizado exitosamente:', resUsuario.data);
|
|
||||||
}
|
|
||||||
|
|
||||||
const formData = new FormData();
|
|
||||||
formData.append('titulo', `${usuario.matricula}_ActaN`);
|
|
||||||
formData.append('archivo', actaN.archivo);
|
|
||||||
formData.append('idUsuario', usuario.id);
|
|
||||||
const reqs = await axios.post('/agregarDocumentoAN', formData,{
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'multipart/form-data',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
if (reqs){
|
|
||||||
window.location.reload();
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Error al subir los datos:', error);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return (
|
return (
|
||||||
<>
|
|
||||||
{usuario.inscrito !== 1 ? (
|
|
||||||
<div className='container'>
|
<div className='container'>
|
||||||
<div className='nbn'>
|
<div className='nbn'>
|
||||||
<form onSubmit={subir}>
|
<form>
|
||||||
<div className="mb-4">
|
<div className="mb-4">
|
||||||
<h5>Datos Personales</h5>
|
<h5>Datos Personales</h5>
|
||||||
<DivInput
|
<DivInput
|
||||||
type="text"
|
type="text"
|
||||||
name="nombre"
|
name="nombre"
|
||||||
value={usuario.nombre}
|
|
||||||
className="form-control mb-3"
|
className="form-control mb-3"
|
||||||
placeholder="Nombre"
|
placeholder="Nombre"
|
||||||
required
|
required
|
||||||
handleChange={handleInputChange}
|
|
||||||
/>
|
/>
|
||||||
<DivInput
|
<DivInput
|
||||||
type="text"
|
type="text"
|
||||||
name="apellido"
|
name="apellido"
|
||||||
value={usuario.apellido}
|
|
||||||
className="form-control mb-3"
|
className="form-control mb-3"
|
||||||
placeholder="Apellido"
|
placeholder="Apellido"
|
||||||
required
|
required
|
||||||
handleChange={handleInputChange}
|
|
||||||
/>
|
/>
|
||||||
<DivInput
|
<DivInput
|
||||||
type="email"
|
type="email"
|
||||||
name="correo"
|
name="correo"
|
||||||
value={usuario.correo}
|
|
||||||
className="form-control mb-3"
|
className="form-control mb-3"
|
||||||
placeholder="Correo Electrónico"
|
placeholder="Correo Electrónico"
|
||||||
required
|
required
|
||||||
handleChange={handleInputChange}
|
|
||||||
/>
|
/>
|
||||||
<DivInput
|
<DivInput
|
||||||
type="text"
|
type="text"
|
||||||
name="nacionalidad"
|
name="nacionalidad"
|
||||||
value={usuario.nacionalidad}
|
|
||||||
className="form-control mb-3"
|
className="form-control mb-3"
|
||||||
placeholder="Nacionalidad"
|
placeholder="Nacionalidad"
|
||||||
required
|
required
|
||||||
handleChange={handleInputChange}
|
|
||||||
/>
|
/>
|
||||||
<DivInput
|
<DivInput
|
||||||
type="text"
|
type="text"
|
||||||
name="tipoSangre"
|
name="tipoSangre"
|
||||||
value={usuario.tipoSangre}
|
|
||||||
className="form-control mb-3"
|
className="form-control mb-3"
|
||||||
placeholder="Tipo de Sangre"
|
placeholder="Tipo de Sangre"
|
||||||
required
|
required
|
||||||
handleChange={handleInputChange}
|
|
||||||
/>
|
/>
|
||||||
<h6>Fecha de Nacimiento</h6>
|
<h7>Fecha de Nacimiento</h7>
|
||||||
<DivInput
|
<DivInput
|
||||||
type="date"
|
type="date"
|
||||||
name="fecha_nacimiento"
|
name="fechaNacimiento"
|
||||||
value={usuario.fecha_nacimiento}
|
|
||||||
className="form-control mb-3"
|
className="form-control mb-3"
|
||||||
placeholder="Fecha de Nacimiento"
|
placeholder="Fecha de Nacimiento"
|
||||||
required
|
required
|
||||||
handleChange={handleInputChange}
|
|
||||||
/>
|
/>
|
||||||
<DivInput
|
<DivInput
|
||||||
type="text"
|
type="text"
|
||||||
name="curp"
|
name="curp"
|
||||||
value={usuario.curp}
|
|
||||||
className="form-control mb-3"
|
className="form-control mb-3"
|
||||||
placeholder="CURP"
|
placeholder="CURP"
|
||||||
required
|
required
|
||||||
handleChange={handleInputChange}
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="mb-4">
|
<div className="mb-4">
|
||||||
<h5>Datos del Tutor</h5>
|
<h5>Datos del Tutor</h5>
|
||||||
<DivInput
|
<DivInput
|
||||||
type="text"
|
type="text"
|
||||||
name="nombre"
|
name="nombreTutor"
|
||||||
value={tutor.nombre}
|
|
||||||
className="form-control mb-3"
|
className="form-control mb-3"
|
||||||
placeholder="Nombre"
|
placeholder="Nombre"
|
||||||
required
|
required
|
||||||
handleChange={handleTutorInputChange}
|
|
||||||
/>
|
/>
|
||||||
<DivInput
|
<DivInput
|
||||||
type="text"
|
type="text"
|
||||||
name="apellido"
|
name="apellidoTutor"
|
||||||
value={tutor.apellido}
|
|
||||||
className="form-control mb-3"
|
className="form-control mb-3"
|
||||||
placeholder="Apellidos"
|
placeholder="Apellidos"
|
||||||
required
|
required
|
||||||
handleChange={handleTutorInputChange}
|
|
||||||
/>
|
/>
|
||||||
<DivInput
|
<DivInput
|
||||||
type="tel"
|
type="tel"
|
||||||
name="numeroDeTelefono"
|
name="numeroDeTelefono"
|
||||||
value={tutor.numeroDeTelefono}
|
|
||||||
className="form-control mb-3"
|
className="form-control mb-3"
|
||||||
placeholder="Número de Teléfono"
|
placeholder="Número de Teléfono"
|
||||||
required
|
required
|
||||||
handleChange={handleTutorInputChange}
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="mb-4">
|
|
||||||
<h5>Carrera</h5>
|
|
||||||
<select
|
|
||||||
id="carreraSelect"
|
|
||||||
className="form-control"
|
|
||||||
value={carreraSeleccionada}
|
|
||||||
onChange={handleCarreraChange}
|
|
||||||
>
|
|
||||||
<option value="" disabled>Selecciona una carrera</option>
|
|
||||||
{carrera.map((carrera) => (
|
|
||||||
<option key={carrera.id} value={carrera.id}>
|
|
||||||
{carrera.nombre}
|
|
||||||
</option>
|
|
||||||
))}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div className="mb-4">
|
<div className="mb-4">
|
||||||
<h5>Documentación</h5>
|
<h5>Documentación</h5>
|
||||||
<h6>Acta De Nacimiento</h6>
|
<h6>Acta De Nacimiento</h6>
|
||||||
<input
|
<input
|
||||||
type="file"
|
type="file"
|
||||||
name="archivo"
|
name="actaDeNacimiento"
|
||||||
className="form-control mb-3"
|
className="form-control mb-3"
|
||||||
accept=".pdf"
|
accept=".pdf"
|
||||||
placeholder="Acta de Nacimiento"
|
placeholder="Acta de Nacimiento"
|
||||||
required
|
required
|
||||||
onChange={handleFileChange}
|
/>
|
||||||
|
<h6>Constancia De Estudio</h6>
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
name="constanciaDeEstudios"
|
||||||
|
className="form-control mb-3"
|
||||||
|
accept=".pdf"
|
||||||
|
placeholder="Constancia de Estudios"
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
<h6>Fotografia</h6>
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
name="fotografia"
|
||||||
|
className="form-control mb-3"
|
||||||
|
accept=".pdf"
|
||||||
|
placeholder="Fotografía"
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
<h6>Certificado Medico</h6>
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
name="certificadoMedico"
|
||||||
|
className="form-control mb-3"
|
||||||
|
accept=".pdf"
|
||||||
|
placeholder="Certificado Médico"
|
||||||
|
required
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" className="btn btn-primary">Enviar Inscripción</button>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
) : (
|
|
||||||
<div className="d-flex justify-content-center align-items-center vh-100">
|
|
||||||
<div className="p-5 text-center bg-light border rounded shadow">
|
|
||||||
Inscripción en Proceso, Validando los datos por favor revisa esta página dentro de una semana
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
);
|
);
|
||||||
};
|
}
|
||||||
|
|
||||||
export default Inscripcion;
|
export default Inscripcion;
|
||||||
|
|
|
@ -13,13 +13,12 @@ const Login = () => {
|
||||||
const form = { ...usuario };
|
const form = { ...usuario };
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await sendRequest("POST", usuario, "/alumnoIniciado", "", false);
|
const res = await sendRequest("POST", form, "/alumnoIniciado", "", false);
|
||||||
|
|
||||||
if (res && res.authToken) {
|
if (res && res.authToken) {
|
||||||
storage.set("authToken", res.authToken);
|
storage.set("authToken", res.authToken);
|
||||||
storage.set("authUser", res.matricula);
|
storage.set("authUser", res.matricula);
|
||||||
storage.set("authRol", res.authRol);
|
storage.set("authRol", res.authRol);
|
||||||
storage.set("authId", res.authId);
|
|
||||||
const rol =storage.get("authRol");
|
const rol =storage.get("authRol");
|
||||||
go("/home")
|
go("/home")
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,100 +1,47 @@
|
||||||
import axios from 'axios';
|
import React, { useState } from 'react';
|
||||||
import React, { useState, useEffect } from 'react';
|
|
||||||
|
|
||||||
|
|
||||||
const ValidacionAdm = () => {
|
const ValidacionAdm = () => {
|
||||||
const [loading, setLoading] = useState(true);
|
const [loading, setLoading] = useState(true);
|
||||||
const [alumno, setAlumno] = useState({});
|
|
||||||
const [matriculas, setMatriculas] = useState([]);
|
|
||||||
const [currentMatriculaIndex, setCurrentMatriculaIndex] = useState(0);
|
|
||||||
|
|
||||||
useEffect(() => {
|
const handleLoad = () => {
|
||||||
const fetchData = async () => {
|
|
||||||
try {
|
|
||||||
const resMatriculas = await axios.get('http://localhost:3000/matriculas');
|
|
||||||
if (resMatriculas.status === 200 && resMatriculas.data.length > 0) {
|
|
||||||
setMatriculas(resMatriculas.data);
|
|
||||||
await fetchAlumnoData(resMatriculas.data[0].id);
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error);
|
|
||||||
} finally {
|
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
fetchData();
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const fetchAlumnoData = async (id) => {
|
|
||||||
try {
|
|
||||||
const resAlumno = await axios.post('http://localhost:3000/traerTodosDatosAlumno', { id: parseInt(id, 10) });
|
|
||||||
if (resAlumno.status === 200) {
|
|
||||||
setAlumno(resAlumno.data);
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const handlePreviousMatricula = () => {
|
|
||||||
if (currentMatriculaIndex > 0) {
|
|
||||||
const newIndex = currentMatriculaIndex - 1;
|
|
||||||
setCurrentMatriculaIndex(newIndex);
|
|
||||||
fetchAlumnoData(matriculas[newIndex].id);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleNextMatricula = () => {
|
|
||||||
if (currentMatriculaIndex < matriculas.length - 1) {
|
|
||||||
const newIndex = currentMatriculaIndex + 1;
|
|
||||||
setCurrentMatriculaIndex(newIndex);
|
|
||||||
fetchAlumnoData(matriculas[newIndex].id);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if (loading) {
|
|
||||||
return <div>Loading...</div>;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="container mt-4">
|
<div className="container mt-4">
|
||||||
<h1 className="text-center mb-4">Validación Administrativa</h1>
|
<h1 className="text-center mb-4">Validacion Administrativa</h1>
|
||||||
|
|
||||||
<div className="input-group mb-3 justify-content-center">
|
<div className="input-group mb-3 justify-content-center">
|
||||||
<div className="input-group-prepend">
|
<div className="input-group-prepend">
|
||||||
<button className="btn btn-sm p-0 border-0" type="button" onClick={handlePreviousMatricula}>
|
<button className="btn btn-sm p-0 border-0" type="button">
|
||||||
<img src="left-arrow.png" alt="Icono de flecha izquierda" style={{ width: '20px', height: '20px' }} />
|
<img src="left-arrow.png" alt="Icono de flecha izquierda" style={{ width: '20px', height: '20px' }} />
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<input
|
<input type="text" className="form-control form-control-sm text-center" style={{ maxWidth: '250px' }} placeholder="Aqui aparece la matricula" />
|
||||||
type="text"
|
|
||||||
className="form-control form-control-sm text-center"
|
|
||||||
style={{ maxWidth: '250px' }}
|
|
||||||
placeholder="Aqui aparece la matricula"
|
|
||||||
value={matriculas[currentMatriculaIndex].matricula}
|
|
||||||
readOnly
|
|
||||||
/>
|
|
||||||
<div className="input-group-append">
|
<div className="input-group-append">
|
||||||
<button className="btn btn-sm p-0 border-0" type="button" onClick={handleNextMatricula}>
|
<button className="btn btn-sm p-0 border-0" type="button">
|
||||||
<img src="right-arrow.png" alt="Icono de flecha derecha" style={{ width: '20px', height: '20px' }} />
|
<img src="right-arrow.png" alt="Icono de flecha derecha" style={{ width: '20px', height: '20px' }} />
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div className="card mb-4">
|
<div className="card mb-4">
|
||||||
<div className="card-body">
|
<div className="card-body">
|
||||||
<h2 className="card-title">Datos del Alumno</h2>
|
<h2 className="card-title">Datos del Alumno</h2>
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col-md-6">
|
<div className="col-md-6">
|
||||||
<p className="card-text"><strong>Nombre:</strong> {alumno.nombre}</p>
|
<p className="card-text"><strong>Nombre:</strong> { } </p>
|
||||||
<p className="card-text"><strong>Apellido:</strong> {alumno.apellido}</p>
|
<p className="card-text"><strong>Apellido:</strong>{ } </p>
|
||||||
<p className="card-text"><strong>Matricula:</strong> {alumno.matricula}</p>
|
<p className="card-text"><strong>Matricula:</strong> { }</p>
|
||||||
<p className="card-text"><strong>Correo:</strong> {alumno.correo}</p>
|
<p className="card-text"><strong>Correo:</strong>{ } </p>
|
||||||
<p className="card-text"><strong>Nacionalidad:</strong> {alumno.nacionalidad}</p>
|
<p className="card-text"><strong>Nacionalidad:</strong>{ } </p>
|
||||||
<p className="card-text"><strong>Tipo de sangre:</strong> {alumno.tipoSangre}</p>
|
<p className="card-text"><strong>Tipo de sangre:</strong>{ } </p>
|
||||||
<p className="card-text"><strong>Fecha de nacimiento:</strong> {alumno.fecha_nacimiento}</p>
|
<p className="card-text"><strong>Fecha de nacimiento:</strong>{ } </p>
|
||||||
<p className="card-text"><strong>CURP:</strong> {alumno.curp}</p>
|
<p className="card-text"><strong>CURP:</strong>{ } </p>
|
||||||
<p className="card-text"><strong>Carrera:</strong> {alumno.carreraNombre}</p>
|
<p className="card-text"><strong>Carrera:</strong>{ } </p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -105,9 +52,9 @@ const ValidacionAdm = () => {
|
||||||
<h2 className="card-title">Datos del Tutor</h2>
|
<h2 className="card-title">Datos del Tutor</h2>
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col-md-6">
|
<div className="col-md-6">
|
||||||
<p className="card-text"><strong>Nombre:</strong> {alumno.tutorNombre}</p>
|
<p className="card-text"><strong>Nombre:</strong> { } </p>
|
||||||
<p className="card-text"><strong>Apellido:</strong> {alumno.tutorApellido}</p>
|
<p className="card-text"><strong>Apellido:</strong>{ } </p>
|
||||||
<p className="card-text"><strong>Teléfono:</strong> {alumno.numeroDeTelefono}</p>
|
<p className="card-text"><strong>Teléfono:</strong>{ }</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -115,33 +62,35 @@ const ValidacionAdm = () => {
|
||||||
|
|
||||||
<div className="card mb-4">
|
<div className="card mb-4">
|
||||||
<div className="card-body">
|
<div className="card-body">
|
||||||
<h2 className="card-title">Documentos del Alumno</h2>
|
<h2 className="card-title">Documentos de Alumno</h2>
|
||||||
<div className="pdf-container mb-4">
|
<div className="pdf-container mb-4">
|
||||||
<p className="card-text"><strong>Acta de Nacimiento:</strong></p>
|
<p className="card-text"><strong>Acta de Nacimiento:</strong> </p>
|
||||||
<embed src={'http://localhost:3000/'+alumno.matricula+'_ActaN.pdf'} type="application/pdf" width="100%" height="300px" />
|
<embed src={"mapa_curri_TC.pdf"} type="application/pdf" width="100%" height="300px" onLoad={handleLoad} />
|
||||||
<div className="d-flex justify-content-center mt-3">
|
<div className="d-flex justify-content-center mt-3">
|
||||||
<button className="btn btn-primary btn-sm me-1">Aceptar Documentos</button>
|
<button className="btn btn-primary btn-sm me-1">Aceptar Documentos</button>
|
||||||
<button className="btn btn-primary btn-sm ms-1">Rechazar Documentos</button>
|
<button className="btn btn-primary btn-sm ms-1">Rechazar Documentos</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="pdf-container mb-4">
|
<div className="pdf-container mb-4">
|
||||||
<p className="card-text"><strong>Constancia de estudios:</strong></p>
|
<p className="card-text"><strong>Constancia de estudios :</strong> </p>
|
||||||
<embed src={alumno.constanciaEstudios} type="application/pdf" width="100%" height="300px" />
|
<embed src={"mapa_curri_TC.pdf"} type="application/pdf" width="100%" height="300px" onLoad={handleLoad} />
|
||||||
<div className="d-flex justify-content-center mt-3">
|
<div className="d-flex justify-content-center mt-3">
|
||||||
<button className="btn btn-primary btn-sm me-1">Aceptar Documentos</button>
|
<button className="btn btn-primary btn-sm me-1">Aceptar Documentos</button>
|
||||||
<button className="btn btn-primary btn-sm ms-1">Rechazar Documentos</button>
|
<button className="btn btn-primary btn-sm ms-1">Rechazar Documentos</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="pdf-container mb-4">
|
<div className="pdf-container mb-4">
|
||||||
<p className="card-text"><strong>Fotografía:</strong></p>
|
<p className="card-text"><strong>Fotografia:</strong> </p>
|
||||||
<embed src={alumno.fotografia} type="application/pdf" width="100%" height="300px" />
|
<embed src={"mapa_curri_TC.pdf"} type="application/pdf" width="100%" height="300px" onLoad={handleLoad} />
|
||||||
<div className="d-flex justify-content-center mt-3">
|
<div className="d-flex justify-content-center mt-3">
|
||||||
<button className="btn btn-primary btn-sm me-1">Aceptar Documentos</button>
|
<button className="btn btn-primary btn-sm me-1">Aceptar Documentos</button>
|
||||||
<button className="btn btn-primary btn-sm ms-1">Rechazar Documentos</button>
|
<button className="btn btn-primary btn-sm ms-1">Rechazar Documentos</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -8,7 +8,7 @@ import axios from "axios";
|
||||||
|
|
||||||
window.axios = axios;
|
window.axios = axios;
|
||||||
|
|
||||||
window.axios.defaults.baseURL = "http://localhost:3000";
|
window.axios.defaults.baseURL = "http://localhost:4567";
|
||||||
window.axios.defaults.headers.common["Accept"] = "application/json";
|
window.axios.defaults.headers.common["Accept"] = "application/json";
|
||||||
window.axios.defaults.headers.common["Content-Type"] = "application/json";
|
window.axios.defaults.headers.common["Content-Type"] = "application/json";
|
||||||
window.axios.defaults.headers.common["X-Requested-with"] = "XMLHttpRequest";
|
window.axios.defaults.headers.common["X-Requested-with"] = "XMLHttpRequest";
|
||||||
|
|
Loading…
Reference in New Issue