version 2.0

This commit is contained in:
Soka_jplr 2024-05-21 11:35:35 -06:00
parent 122b4f43dc
commit 8814524f3f
60 changed files with 1848 additions and 2664 deletions

View File

@ -1,23 +1,56 @@
create database universidad;
drop database universidad;
CREATE USER 'UserRemoto' @'localhost' IDENTIFIED BY 'password123';
DROP USER 'UserRemoto'@'localhost';
GRANT ALL PRIVILEGES ON cocina TO 'UserRemoto' @'localhost';
GRANT ALL PRIVILEGES ON universidad.* TO 'UserRemoto'@'LOCALHOST';
FLUSH PRIVILEGES;
use universidad;
drop table alumno;
create table alumno(
create table usuario(
id integer auto_increment primary key,
nombre varchar(40) not null,
apellido varchar(100) not null,
matricula varchar(40) not null UNIQUE,
contrasena varchar(40) not null,
correo varchar(40) not null,
nacionalidad varchar(30),
tipoSangre varchar(6),
fecha_nacimiento date,
curp varchar(18),
rol varchar(30) not null,
idCarrera integer references carrera,
inscrito BIT
);
create table carrera(
id integer auto_increment primary key,
nombre varchar(40),
apellido varchar(100),
fecha_nacimiento date,
nacionalidad varchar(40),
tipoSangre varchar(40),
matricula varchar(40),
password varchar(40),
correo varchar(40)
area varchar(40)
);
create table tutor(
id integer auto_increment primary key,
nombre varchar(40),
apellido varchar(40),
numeroDeTelefono integer,
idUsuario integer references usuario
);
create table documento(
id integer auto_increment primary key,
titulo varchar(40),
archivo blob,
idUsuario integer references usuario,
valido BIT
);
create table inscripcion(
id integer auto_increment primary key,
idUusario integer references usuario,
idDocumento integer references documento
);
create table registro(
@ -26,146 +59,14 @@ create table registro(
descripcion varchar(100)
);
drop table examen;
create table examen(
id integer auto_increment primary key,
calificacion double,
derecho_inscripcion boolean,
id_alumno integer,
FOREIGN KEY (id_alumno) REFERENCES alumno(id)
);
drop table tutor;
create table tutor(
id integer auto_increment primary key,
nombre varchar(40),
apellidos varchar(100),
parentesco varchar(40),
ocupacion varchar(100),
telefono varchar(100)
);
drop table carrera;
create table carrera(
id integer auto_increment primary key,
area varchar(100),
nombre varchar(40),
modalidad varchar(40),
campus varchar(40),
costo double
);
drop table documentacion;
create table documentacion(
id integer auto_increment primary key,
acta_nacimiento blob,
certificado_bachillerato blob,
curp blob,
ine blob,
ine_tutor blob,
certificado_medico blob,
comprobante blob,
fotografia blob,
constancia blob
);
drop table fichaP;
create table fichaP(
id integer auto_increment primary key,
id_alumno integer,
id_carrera integer,
fecha_inicio date,
fecha_fin date,
FOREIGN KEY (id_alumno) REFERENCES alumno(id),
FOREIGN KEY (id_carrera) REFERENCES carrera(id)
);
drop table fichaI;
create table fichaI(
id_alumno integer,
id_carrera integer,
id_tutor integer,
id_documentacion integer,
fecha_inicio date,
fecha_fin date,
FOREIGN KEY (id_alumno) REFERENCES alumno(id),
FOREIGN KEY (id_carrera) REFERENCES carrera(id),
FOREIGN KEY (id_tutor) REFERENCES tutor(id),
FOREIGN KEY (id_documentacion) REFERENCES documentacion(id)
);
drop table administrador;
create table administrador(
id integer auto_increment primary key,
matricula varchar(40),
contraseña varchar(40)
);
create table documentacion;
create table documentacion (
id integer auto_increment primary key,
acta_nacimiento BLOB,
certificadoBachillerato BLOB,
curp BLOB,
ine_Alumno BLOB,
ine_Tutor BLOB,
certificado_Medico BLOB,
comprobante_Domicilio BLOB,
fotografia BLOB,
constancia BLOB,
municipio varchar(40),
estado varchar(40),
telefono varchar(40),
domicilio varchar(40)
);
INSERT INTO alumno (nombre, apellidos, fecha_nacimiento, nacionalidad, tipoSangre, matricula, password)
VALUES
('Juan', 'Pérez García', '2000-05-15', 'Mexicana', 'O+', '123ABC', 'contraseña123'),
('María', 'López Rodríguez', '1999-10-20', 'Mexicana', 'A-', '456DEF', 'maria123'),
('Carlos', 'González Martínez', '2001-03-08', 'Mexicana', 'B+', '789GHI', 'carlos456'),
('Laura', 'Hernández Sánchez', '1998-12-03', 'Mexicana', 'AB-', '012JKL', 'laura789'),
('Pedro', 'Díaz Pérez', '2002-07-11', 'Mexicana', 'O-', '345MNO', 'pedro123');
INSERT INTO examen (calificacion, derecho_inscripcion, id_alumno)
VALUES
(85.5, true, 1),
(78.9, false, 2),
(92.3, true, 3),
(64.7, false, 4),
(88.1, true, 5);
INSERT INTO tutor (nombre, apellidos, parentesco, ocupacion, telefono)
VALUES
('Ana', 'García Martínez', 'Madre', 'Ingeniera', '555-123-4567'),
('Luis', 'López Rodríguez', 'Padre', 'Abogado', '555-987-6543'),
('María', 'Pérez Sánchez', 'Tía', 'Médico', '555-456-7890'),
('Juan', 'Martínez González', 'Abuelo', 'Profesor', '555-234-5678'),
('Laura', 'Díaz Fernández', 'Hermana', 'Estudiante', '555-678-9012');
INSERT INTO carrera (area, nombre, modalidad, campus, costo)
VALUES
('Ingeniería', 'Ingeniería Civil', 'Presencial', 'Ciudad Universitaria', 120000),
('Ciencias de la Salud', 'Medicina', 'Presencial', 'Hospital Universitario', 180000),
('Ciencias Sociales', 'Psicología', 'Presencial', 'Campus Central', 100000),
('Arte y Diseño', 'Diseño Gráfico', 'Presencial', 'Campus de Arte', 90000),
('Ciencias de la Computación', 'Ingeniería en Sistemas', 'Presencial', 'Campus Tecnológico', 150000);
INSERT INTO fichaP (id_alumno, id_carrera, fecha_inicio, fecha_fin)
VALUES
(1, 1, '2023-09-01', '2027-06-30'),
(2, 2, '2023-09-01', '2027-06-30'),
(3, 3, '2023-09-01', '2027-06-30'),
(4, 4, '2023-09-01', '2027-06-30'),
(5, 5, '2023-09-01', '2027-06-30');
INSERT INTO administrador (matricula, contraseña) VALUES ('Daniel', 'lalelilolu');
INSERT INTO administrador (matricula, contraseña) VALUES ('Juan', 'perrotonto16');
INSERT INTO administrador (matricula, contraseña) VALUES ('francis', 'palapa');
INSERT INTO administrador (matricula, contraseña) VALUES ('citlali', 'java');
INSERT INTO carrera (nombre, area) VALUES
('Ingeniería de Sistemas', 'Tecnología'),
('Medicina', 'Salud'),
('Derecho', 'Ciencias Sociales'),
('Arquitectura', 'Arte y Diseño'),
('Administración de Empresas', 'Negocios'),
('Psicología', 'Ciencias Sociales');

View File

@ -11,15 +11,16 @@ import mx.uv.Model.*;
public class App {
static Gson gson = new Gson();
static HashMap<String, Alumno> usuarios = new HashMap<>();
static HashMap<String, Usuario> usuarios = new HashMap<>();
public static void main(String[] args) {
// fuente:https://gist.github.com/saeidzebardast/e375b7d17be3e0f4dddf
// Configuración de CORS
options("/*", (request, response) -> {
String accessControlRequestHeaders = request.headers("Access-Control-Request-Headers");
if (accessControlRequestHeaders != null) {
response.header("Access-Control-Allow-Headers", accessControlRequestHeaders);
}
String accessControlRequestMethod = request.headers("Access-Control-Request-Method");
if (accessControlRequestMethod != null) {
response.header("Access-Control-Allow-Methods", accessControlRequestMethod);
@ -27,60 +28,70 @@ public class App {
return "OK";
});
before((request, response) -> response.header("Access-Control-Allow-Origin", "*"));
before((request, response) -> {
response.header("Access-Control-Allow-Origin", "http://localhost:5173");
response.header("Access-Control-Allow-Credentials", "true");
});
get("/todosLosAlumnos", (request, response) -> {
response.type("application/json");
return gson.toJson(DAO.dameAlumnos());
});
post("/agregarAlumno", (request, response) -> {
String payload = request.body();
Alumno alumno = gson.fromJson(payload, Alumno.class);
Mensaje msj = DAO.agregarAlumno(alumno);
Usuario usuario = gson.fromJson(payload, Usuario.class);
usuario.setRol("estudiante");
Mensaje msj = DAO.agregarAlumno(usuario);
JsonObject respuesta = new JsonObject();
respuesta.addProperty("contrasena", msj.getAlumno().getContrasena());
respuesta.addProperty("matricula", msj.getAlumno().getMatricula());
respuesta.addProperty("contrasena", msj.getUsuario().getContrasena());
respuesta.addProperty("matricula", msj.getUsuario().getMatricula());
respuesta.addProperty("verificacion", msj.isVerificacion());
return respuesta;
});
put("/editarAlumno", (request, response) -> {
String payload = request.body();
Alumno alumno = gson.fromJson(payload, Alumno.class);
boolean verificado = DAO.editarAlumno(alumno);
Usuario usuario = gson.fromJson(payload, Usuario.class);
boolean verificado = DAO.editarAlumno(usuario);
JsonObject respuesta = new JsonObject();
respuesta.addProperty("Editado", verificado);
return respuesta;
});
delete("/eliminarAlumno", (request, response) -> {
String payload = request.body();
Alumno alumno = gson.fromJson(payload, Alumno.class);
boolean verificado = DAO.eliminarAlumno(alumno.getId());
Usuario usuario = gson.fromJson(payload, Usuario.class);
boolean verificado = DAO.eliminarAlumno(usuario.getId());
JsonObject respuesta = new JsonObject();
respuesta.addProperty("existe", verificado);
return respuesta;
});
get("/alumnoIniciado", (request, response) -> {
post("/alumnoIniciado", (request, response) -> {
String payload = request.body();
response.type("application/json");
String contrasena = request.queryParams("contrasena");
String matricula = request.queryParams("matricula");
Alumno alumno = new Alumno(matricula, contrasena);
if (contrasena == null || matricula == null) {
response.status(400); // Bad request
Usuario u = gson.fromJson(payload, Usuario.class);
if (u.getContrasena() == null || u.getMatricula() == null) {
response.status(400);
return gson.toJson("Missing matricula or contrasena");
}
return gson.toJson(DAO.alumnoIniciado(alumno.getMatricula(), alumno.getContrasena()));
Usuario usuario = DAO.alumnoIniciado(u.getMatricula(), u.getContrasena());
JsonObject respuesta = new JsonObject();
respuesta.addProperty("matricula", usuario.getMatricula());
respuesta.addProperty("authToken", usuario.crearToken());
respuesta.addProperty("authRol", usuario.getRol());
respuesta.addProperty("message", "Binevenido " + usuario.getNombre());
return gson.toJson(respuesta);
});
post("/usuarioValido", (request, response) -> {
String payload = request.body();
Alumno alumno = gson.fromJson(payload, Alumno.class);
boolean verificado = DAO.validarAlumno(alumno);
Usuario usuario = gson.fromJson(payload, Usuario.class);
boolean verificado = DAO.validarAlumno(usuario);
JsonObject respuesta = new JsonObject();
respuesta.addProperty("existe", verificado);
return respuesta;
});
}
}

View File

@ -6,26 +6,47 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import mx.uv.Model.Alumno;
import mx.uv.Model.Usuario;
import mx.uv.Model.Mensaje;
import mx.uv.Model.Registro;
import java.sql.*;
import java.util.*;
import java.time.LocalDateTime;
public class DAO {
private static Conexion cn = Conexion.getInstance();
private static String nombreTabla = "usuario";
private static String colId = "id";
private static String colNombre = "nombre";
private static String colApellido = "apellido";
private static String colMatricula = "matricula";
private static String colContrasena = "contrasena";
private static String colCorreo = "correo";
private static String colNacionalidad = "nacionalidad";
private static String colTipoSangre = "tipoSangre";
private static String colFechaNacimiento = "fecha_nacimiento";
private static String colCurp = "curp";
private static String colRol = "rol";
private static String colIdCarrera = "idCarrera";
private static String colInscrito = "inscrito";
public static List<Alumno> dameAlumnos() {
public static List<Usuario> dameAlumnos() {
Statement stm = null;
ResultSet rs = null;
Connection conn = null;
List<Alumno> resultado = new ArrayList<>();
List<Usuario> resultado = new ArrayList<>();
conn = cn.conectar();
try {
String sql = "SELECT * from alumno";
String sql = "SELECT " + colId + " " + colNombre + " " + colApellido + " " + colMatricula + " from "
+ nombreTabla;
stm = conn.createStatement();
rs = stm.executeQuery(sql);
while (rs.next()) {
Alumno u = new Alumno(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));
Usuario u = new Usuario(rs.getInt(colId), rs.getString(colNombre), rs.getString(colApellido),
rs.getString(colMatricula));
resultado.add(u);
}
} catch (Exception e) {
@ -35,139 +56,152 @@ public class DAO {
}
return resultado;
}
public static boolean validarAlumno(Alumno alumno) {
Statement stm = null;
public static boolean validarAlumno(Usuario alumno) {
PreparedStatement stm = null;
Connection conn = null;
boolean verificacion =false;
boolean verificacion = false;
ResultSet rs = null;
conn = cn.conectar();
try {
String sql ="select * from alumno "
+ "where matricula= '"+alumno.getMatricula()+"' and password='"+alumno.getContrasena()+"'";
stm = (Statement) conn.createStatement();
rs = stm.executeQuery(sql);
if(rs.next()){
String sql = "SELECT * FROM " + nombreTabla + " WHERE " + colMatricula + " = ? AND " + colContrasena
+ " = ?";
stm = conn.prepareStatement(sql);
stm.setString(1, alumno.getMatricula());
stm.setString(2, alumno.getContrasena());
rs = stm.executeQuery();
if (rs.next()) {
verificacion = true;
}else{
} else {
verificacion = false;
}
conn.close();
} catch (SQLException ex) {
System.err.println(ex);
} finally {
cerrarConexiones(stm, conn);
}
return verificacion;
}
public static Mensaje agregarAlumno(Alumno alumno) {
public static Mensaje agregarAlumno(Usuario usuario) {
Mensaje mensaje = new Mensaje();
PreparedStatement stm = null;
Connection conn = null;
boolean msj= false;
String matricula = "SIU24";
String matricula = "SIU24" + (1000 + obtenerUltimoID());
String password = crearContrasena();
matricula += 1000+ obtenerUltimoID();
alumno.setContrasena(password);
alumno.setMatricula(matricula);
usuario.setContrasena(password);
usuario.setMatricula(matricula);
conn = cn.conectar();
try {
String sql = "INSERT INTO `alumno`(`nombre`,`apellido`,`nacionalidad`,`matricula`,`password`, `correo`)VALUES(?,?,?,?,?,?);";
stm = (PreparedStatement) conn.prepareStatement(sql);
stm.setString(1, alumno.getNombre());
stm.setString(2, alumno.getApellido());
stm.setString(3, alumno.getNacionalidad());
stm.setString(4, alumno.getMatricula());
stm.setString(5, alumno.getContrasena());
stm.setString(6, alumno.getCorreo());
if (stm.executeUpdate() > 0){
String sql = "INSERT INTO " + nombreTabla + " (" + colNombre + ", " + colApellido + ", " + colNacionalidad
+ ", " + colMatricula + ", " + colContrasena + ", " + colCorreo + ", " + colRol
+ ") VALUES (?, ?, ?, ?, ?, ?,?)";
stm = conn.prepareStatement(sql);
stm.setString(1, usuario.getNombre());
stm.setString(2, usuario.getApellido());
stm.setString(3, usuario.getNacionalidad());
stm.setString(4, usuario.getMatricula());
stm.setString(5, usuario.getContrasena());
stm.setString(6, usuario.getCorreo());
stm.setString(7, usuario.getRol());
if (stm.executeUpdate() > 0) {
mensaje.setVerificacion(true);
mensaje.setAlumno(alumno);
}
else
mensaje.setUsuario(usuario);
} else {
mensaje.setVerificacion(false);
}
} catch (Exception e) {
System.out.println(e);
} finally {
cerrarConexiones(stm,conn);
cerrarConexiones(stm, conn);
}
return mensaje;
}
public static String crearContrasena() {
Random random = new Random();
String contrasena = "";
StringBuilder contrasena = new StringBuilder();
String CARACTERES_PERMITIDOS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#";
for (int i = 0; i < 10; i++) {
int numero = random.nextInt(CARACTERES_PERMITIDOS.length());
char caracterAleatorio = CARACTERES_PERMITIDOS.charAt(numero);
contrasena += caracterAleatorio;
contrasena.append(CARACTERES_PERMITIDOS.charAt(numero));
}
return contrasena.toString();
}
private static void cerrarConexiones(PreparedStatement stm,Connection conn) {
private static void cerrarConexiones(PreparedStatement stm, Connection conn) {
if (stm != null) {
try {
stm.close();
} catch (Exception e) {
System.out.println(e);
}
stm = null;
}
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;
}
public static boolean editarAlumno(Alumno alumno) {
public static boolean editarAlumno(Usuario usuario) {
PreparedStatement stm = null;
Connection conn = null;
boolean verificacion =false;
boolean verificacion = false;
conn = cn.conectar();
try {
String sql ="UPDATE `alumno` SET `nombre` = '"+alumno.getNombre()+"',`apellido` = '"+alumno.getApellido()+"',`fecha_nacimiento` = '"+alumno.getFechaNacimiento()+"',`nacionalidad` = '"+alumno.getNacionalidad()+"', `tipoSangre` = '"+alumno.getTipoDeSangre()+"', `password`= '"+alumno.getContrasena()+"' WHERE `id` = '"+alumno.getId()+"';";
String sql = "UPDATE " + nombreTabla + " SET " + colNombre + " = ?, " + colApellido + " = ?, "
+ colFechaNacimiento + " = ?, " + colNacionalidad + " = ?, " + colTipoSangre + " = ?, "
+ colContrasena + " = ? WHERE " + colId + " = ?";
stm = conn.prepareStatement(sql);
stm.setString(1, usuario.getNombre());
stm.setString(2, usuario.getApellido());
stm.setString(3, usuario.getFecha_nacimiento());
stm.setString(4, usuario.getNacionalidad());
stm.setString(5, usuario.getTipoSangre());
stm.setString(6, usuario.getContrasena());
stm.setInt(7, usuario.getId());
stm.executeUpdate();
verificacion = true;
} catch (SQLException ex) {
System.err.println(ex);
}finally{
} finally {
cerrarConexiones(stm, conn);
cn.cerrarConexion();
}
return verificacion;
}
public static Alumno alumnoIniciado(String matricula, String contrasena) {
public static Usuario alumnoIniciado(String matricula, String contrasena) {
ResultSet rs = null;
Connection conn = null;
Alumno alumno =null;
Usuario usuario = null;
conn = cn.conectar();
try {
String sql = "SELECT * FROM alumno WHERE matricula = ? AND password = ?";
String sql = "SELECT * FROM " + nombreTabla + " WHERE " + colMatricula + " = ? AND " + colContrasena
+ " = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, matricula);
stmt.setString(2, contrasena);
rs = stmt.executeQuery();
while (rs.next()) {
alumno = new Alumno(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));
if (rs.next()) {
usuario = new Usuario(rs.getInt(colId), rs.getString(colNombre), rs.getString(colApellido),
rs.getString(colMatricula), rs.getString(colRol));
DAORegistro.registrar(usuario, "Inicio Sesión", LocalDateTime.now());
}
DAORegistro.registrar(alumno," Inicio Sesión ", LocalDateTime.now());
} catch (Exception e) {
System.out.println(e);
} finally {
cerrarConexiones(null, conn);
}
return alumno;
return usuario;
}
public static int obtenerUltimoID() {
@ -175,24 +209,24 @@ public class DAO {
Statement stm = null;
ResultSet rs = null;
int ultimoID = -1;
try {
conn = cn.conectar();
String sql = "SELECT MAX(id) AS ultimo_id FROM alumno";
String sql = "SELECT MAX(" + colId + ") AS ultimo_id FROM " + nombreTabla;
stm = conn.createStatement();
rs = stm.executeQuery(sql);
if (rs.next()) {
ultimoID = rs.getInt("ultimo_id");
}
} catch (SQLException ex) {
System.err.println(ex);
} finally {
// Cerrar recursos
try {
if (rs != null) rs.close();
if (stm != null) stm.close();
if (conn != null) conn.close();
if (rs != null)
rs.close();
if (stm != null)
stm.close();
if (conn != null)
conn.close();
} catch (SQLException ex) {
System.err.println(ex);
}

View File

@ -3,29 +3,29 @@ package mx.uv.Controller;
import java.time.LocalDateTime;
import java.sql.*;
import mx.uv.Model.Alumno;
import mx.uv.Model.Usuario;
public class DAORegistro {
private static Conexion cn = Conexion.getInstance();
public static void registrar(Alumno alumno, String descripcion, LocalDateTime day) {
public static void registrar(Usuario usuario, String descripcion, LocalDateTime day) {
PreparedStatement stm = null;
Connection conn = null;
conn = cn.conectar();
try {
String sql = "INSERT INTO `registro`(`matricula`,`descripcion`)VALUES(?,?);";
stm = (PreparedStatement) conn.prepareStatement(sql);
stm.setString(1, alumno.getMatricula());
stm.setString(1, usuario.getMatricula());
stm.setString(2, descripcion + day);
stm.executeUpdate();
} catch (Exception e) {
System.out.println(e);
} finally {
cerrarConexiones(stm,conn);
cerrarConexiones(stm, conn);
}
}
private static void cerrarConexiones(PreparedStatement stm,Connection conn) {
private static void cerrarConexiones(PreparedStatement stm, Connection conn) {
if (stm != null) {
try {
stm.close();

View File

@ -10,7 +10,6 @@ import java.util.List;
import mx.uv.Model.Tutor;
public class DAOTutor {
private static Conexion cn = Conexion.getInstance();
@ -28,7 +27,7 @@ public class DAOTutor {
stm = conn.createStatement();
rs = stm.executeQuery(sql);
while (rs.next()) {
Tutor u = new Tutor(rs.getInt(1), rs.getString(2), rs.getString(3),rs.getString(4), rs.getString(5),rs.getString(6));
Tutor u = new Tutor(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getInt(5));
resultado.add(u);
}
} catch (Exception e) {
@ -39,20 +38,20 @@ public class DAOTutor {
return resultado;
}
public static boolean validarTutor(Tutor tutor){
public static boolean validarTutor(Tutor tutor) {
Statement stm = null;
Connection conn = null;
boolean verificacion =false;
boolean verificacion = false;
ResultSet rs = null;
conn = cn.conectar();
try {
String sql ="select * from tutor "
+ "where id= '"+tutor.getId()+"' and nombre='"+tutor.getNombre()+"'";
String sql = "select * from tutor "
+ "where id= '" + tutor.getId() + "' and nombre='" + tutor.getNombre() + "'";
stm = (Statement) conn.createStatement();
rs = stm.executeQuery(sql);
if(rs.next()){
if (rs.next()) {
verificacion = true;
}else{
} else {
verificacion = false;
}
conn.close();
@ -73,19 +72,18 @@ public class DAOTutor {
stm = (PreparedStatement) conn.prepareStatement(sql);
stm.setString(1, tutor.getNombre());
stm.setString(2, tutor.getApellido());
stm.setString(3, tutor.getParentesco());
stm.setString(4, tutor.getOcupacion());
stm.setString(5, tutor.getTelefono());
stm.setString(3, tutor.getNumeroDeTelefono());
stm.setInt(4, tutor.getIdUsuario());
} catch (Exception e) {
System.out.println(e);
} finally {
//cerrarConexiones(stm, conn);
// cerrarConexiones(stm, conn);
}
return msj;
}
private static void cerrarConexiones(PreparedStatement stm, Connection conn){
if(stm != null){
private static void cerrarConexiones(PreparedStatement stm, Connection conn) {
if (stm != null) {
try {
stm.close();
} catch (Exception e) {
@ -93,7 +91,7 @@ public class DAOTutor {
}
stm = null;
}
try{
try {
conn.close();
cn.cerrarConexion();
} catch (Exception e) {
@ -110,12 +108,13 @@ public class DAOTutor {
Connection conn = null;
boolean verificacion = false;
conn = cn.conectar();
try{
String sql ="UPDATE `tutor` SET `nombre` = '"+tutor.getNombre()+"',`apellido` = '"+tutor.getApellido()+"',`parentesco` = '"+tutor.getParentesco()+"',`ocupacion` = '"+tutor.getOcupacion()+"', `telefono` = '"+tutor.getTelefono()+"';";
try {
String sql = "UPDATE `tutor` SET `nombre` = '" + tutor.getNombre() + "',`apellido` = '"
+ tutor.getApellido() + "';";
stm = conn.prepareStatement(sql);
stm.executeQuery();
verificacion = true;
} catch (SQLException ex){
} catch (SQLException ex) {
System.out.println(ex);
} finally {
cerrarConexiones(stm, conn);

View File

@ -1,153 +0,0 @@
package mx.uv.Controller;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import mx.uv.Model.Administrador;
public class DAO_Administrador{
private static Conexion cn = Conexion.getInstance();
public static List<Administrador> dameAministradores(){
Statement stm = null;
ResultSet rs = null;
Connection conn = null;
List<Administrador> resultado = new ArrayList<>();
conn = cn.conectar();
try {
String sql = "SELECT * from administrador";
stm = conn.createStatement();
rs = stm.executeQuery(sql);
while (rs.next()) {
Administrador u = new Administrador(rs.getInt(1), rs.getString(2), rs.getString(3),rs.getString(4),rs.getString(5));
resultado.add(u);
}
} catch (Exception e) {
System.out.println(e);
} finally {
cerrarConexiones(null, conn);
}
return resultado;
}
public static boolean ValidarAdministrador(Administrador administrador){
Statement stm = null;
Connection conn = null;
boolean verificacion =false;
ResultSet rs = null;
conn = cn.conectar();
try {
String sql ="select * from administrador "
+ "where matricula= '"+administrador.getMatricula()+"' and contrasena='"+administrador.getContrasena()+"'";
stm = (Statement) conn.createStatement();
rs = stm.executeQuery(sql);
if(rs.next()){
verificacion = true;
}else{
verificacion = false;
}
conn.close();
} catch (SQLException ex) {
System.err.println(ex);
}
return verificacion;
}
public boolean agregarAdministrador(Administrador administrador){
PreparedStatement stm = null;
Connection conn = null;
boolean msj= false;
conn = cn.conectar();
try{
String sql ="INSERT INTO `administrador` (`matricula`,`contrasena`, `nombre`, `apellido`) VALUES(?,?,?,?);";
stm = (PreparedStatement) conn.prepareStatement(sql);
stm.setString(1, administrador.getMatricula());
stm.setString(2, administrador.getContrasena());
stm.setString(3, administrador.getNombre());
stm.setString(4, administrador.getNombre());
stm.setString(5, administrador.getApellido());
}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 eliminarAdministrador(int idAdministrador){
return false;
}
public static boolean editarAdministrador(Administrador administrador){
PreparedStatement stm = null;
Connection conn = null;
boolean verificacion =false;
conn = cn.conectar();
try{
String sql ="UPDATE `administrador` SET `matricula` = '"+administrador.getMatricula()+"',`contrasena` = '"+administrador.getContrasena()+"',`nombre` = '"+administrador.getNombre()+"',`apellido` = '"+administrador.getApellido()+"' WHERE `id` = '"+administrador.getId()+"';";
stm = conn.prepareStatement(sql);
stm.executeUpdate();
verificacion = true;
}catch (SQLException ex) {
System.err.println(ex);
}finally{
cerrarConexiones(stm, conn);
cn.cerrarConexion();
}
return verificacion;
}
public static Administrador administradorIniciado(String matricula, String contrasena){
ResultSet rs = null;
Connection conn = null;
Administrador administrador =null;
conn = cn.conectar();
try {
String sql = "SELECT * FROM administrador WHERE matricula = ? AND contrasena = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, matricula);
stmt.setString(2, contrasena);
rs = stmt.executeQuery();
while (rs.next()) {
administrador = new Administrador(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5));
}
} catch (Exception e) {
System.out.println(e);
} finally {
cerrarConexiones(null, conn);
}
return administrador;
}
}

View File

@ -4,104 +4,111 @@ import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import mx.uv.Model.Carrera;
public class DAO_Carrrera{
private static Conexion cn = Conexion.getInstance();
public static List<Carrera> dameCarreras(){
Statement stm = null;
ResultSet rs = null;
Connection conn = null;
List<Carrera> resultado = new ArrayList<>();
conn = cn.conectar();
try {
String sql = "SELECT * from carrera";
stm = conn.createStatement();
rs = stm.executeQuery(sql);
while (rs.next()) {
Carrera u = new Carrera(rs.getInt(1), rs.getString(2), rs.getString(3),rs.getString(4), rs.getString(5),rs.getDouble(6));
resultado.add(u);
}
} catch (Exception e) {
System.out.println(e);
} finally {
cerrarConexiones(null, conn);
}
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;
}
public class DAO_Carrrera {
/*
* private static Conexion cn = Conexion.getInstance();
*
* public static List<Carrera> dameCarreras(){
* Statement stm = null;
* ResultSet rs = null;
* Connection conn = null;
* List<Carrera> resultado = new ArrayList<>();
*
* conn = cn.conectar();
*
* try {
* String sql = "SELECT * from carrera";
* stm = conn.createStatement();
* rs = stm.executeQuery(sql);
* while (rs.next()) {
* Carrera u = new Carrera(rs.getInt(1), rs.getString(2),
* rs.getString(3),rs.getString(4), rs.getString(5),rs.getDouble(6));
* resultado.add(u);
* }
* } catch (Exception e) {
* System.out.println(e);
* } finally {
* cerrarConexiones(null, conn);
* }
* 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;
* }
*/
}

View File

@ -8,26 +8,28 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import mx.uv.Model.Documentacion;
import mx.uv.Model.Documento;
public class DAO_Documentacion {
private static Conexion cn = Conexion.getInstance();
@SuppressWarnings("null")
public List<Documentacion> dameDocumentacion() {
public List<Documento> dameDocumentacion() {
Statement stm = null;
ResultSet rs = null;
Connection conn = null;
List<Documentacion> resultado = new ArrayList<>();
List<Documento> resultado = new ArrayList<>();
try {
String sql = "SELECT * from documentacion";
stm = conn.createStatement();
rs = stm.executeQuery(sql);
while (rs.next()) {
Documentacion u = new Documentacion(rs.getInt(1), rs.getBytes(2), rs.getBytes(3),rs.getBytes(4), rs.getBytes(5),rs.getBytes(6), rs.getBytes(7), rs.getBytes(8), rs.getBytes(9), rs.getBytes(10));
resultado.add(u);
// Documento u = new Documento(rs.getInt(1), rs.getBytes(2),
// rs.getBytes(3),rs.getBytes(4), rs.getBytes(5),rs.getBytes(6), rs.getBytes(7),
// rs.getBytes(8), rs.getBytes(9), rs.getBytes(10));
// resultado.add(u);
}
} catch (Exception e) {
System.out.println(e);
@ -37,42 +39,28 @@ public class DAO_Documentacion {
return resultado;
}
public static boolean agregarDocumentacion(Documentacion documentacion){
public static boolean agregarDocumentacion(Documento documentacion) {
PreparedStatement stm = null;
Connection conn = null;
boolean msj= false;
boolean msj = false;
conn = cn.conectar();
try{
String sql ="INSERT INTO `documentacion` (`id`,`acta_nacimiento`, `certificado_bachillerato`, `curp`, `ine`, `ine_tutor`, `certificado_medico`, `comprobante`, `fotografia`, `constancia`) VALUES(?,?,?,?,?,?,?,?,?,?);";
try {
String sql = "INSERT INTO `documentacion` (`id`,`acta_nacimiento`, `certificado_bachillerato`, `curp`, `ine`, `ine_tutor`, `certificado_medico`, `comprobante`, `fotografia`, `constancia`) VALUES(?,?,?,?,?,?,?,?,?,?);";
stm = (PreparedStatement) conn.prepareStatement(sql);
stm.setInt(1, documentacion.getId());
stm.setBytes(2, documentacion.getActaNacimiento());
stm.setBytes(3, documentacion.getCertificadoBachillerato());
stm.setBytes(4, documentacion.getCurp());
stm.setBytes(5, documentacion.getIne());
stm.setBytes(6, documentacion.getIneTutor());
stm.setBytes(7, documentacion.getCertificadoMedico());
stm.setBytes(8, documentacion.getComprobante());
stm.setBytes(9, documentacion.getFotografia());
stm.setBytes(10, documentacion.getConstancia());
}catch(Exception e) {
} catch (Exception e) {
System.out.println(e);
} finally {
cerrarConexiones(stm,conn);
cerrarConexiones(stm, conn);
}
return msj;
}
private static void cerrarConexiones(PreparedStatement stm,Connection conn) {
private static void cerrarConexiones(PreparedStatement stm, Connection conn) {
if (stm != null) {
try {
stm.close();
@ -89,24 +77,38 @@ public class DAO_Documentacion {
}
}
public static boolean eliminarDocumentacion(int idDocumentacion){
public static boolean eliminarDocumentacion(int idDocumentacion) {
return false;
}
public static boolean editarDocumentacion(Documentacion documentacion){
public static boolean editarDocumentacion(Documento documentacion) {
PreparedStatement stm = null;
Connection conn = null;
boolean verificacion =false;
boolean verificacion = false;
conn = cn.conectar();
try{
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(sql);
try {
/*
* 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) {
} catch (SQLException ex) {
System.err.println(ex);
}finally{
} finally {
cerrarConexiones(stm, conn);
cn.cerrarConexion();
}

View File

@ -1,109 +0,0 @@
package mx.uv.Controller;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import mx.uv.Model.Examen;
public class DAO_Examen {
private static Conexion cn = Conexion.getInstance();
public static List<Examen> dameExamenes(){
Statement stm = null;
ResultSet rs = null;
Connection conn = null;
List<Examen> resultado = new ArrayList<>();
conn = cn.conectar();
try {
String sql = "SELECT * from examen";
stm = conn.createStatement();
rs = stm.executeQuery(sql);
while (rs.next()) {
Examen u = new Examen(rs.getInt(1),rs.getDouble(2),rs.getBoolean(3),rs.getInt(4));
resultado.add(u);
}
} catch (Exception e) {
System.out.println(e);
} finally {
cerrarConexiones(null, conn);
}
return resultado;
}
public static boolean agregarExamen(Examen examen){
PreparedStatement stm = null;
Connection conn = null;
boolean msj = false;
conn = cn.conectar();
try{
String sql = "INSERT INTO `examen` (`calificacion`, `derechoInscripcion`) VALUES(?,?);";
stm = (PreparedStatement) conn.prepareStatement(sql);
stm.setDouble(1, examen.getCalificacion());
stm.setBoolean(2, examen.isDerechoInscripcion());
} 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 eliminarExamen(int id){
return false;
}
public static boolean editarExamen(Examen examen){
PreparedStatement stm = null;
Connection conn = null;
boolean verificacion = false;
conn = cn.conectar();
try{
String sql = "UPDATE `examen` SET `calificacion` = ?, `derechoInscripcion` = ? WHERE `idExamen` = ?;";
stm = conn.prepareStatement(sql);
stm.executeQuery();
verificacion = true;
} catch (SQLException ex){
System.err.println(ex);
} finally{
cerrarConexiones(stm, conn);
cn.cerrarConexion();
}
return verificacion;
}
}

View File

@ -1,118 +0,0 @@
package mx.uv.Controller;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import mx.uv.Model.FichaI;
public class DAO_FichaI {
private static Conexion cn = Conexion.getInstance();
public static List<FichaI> obtenerFichas() {
Statement stm = null;
ResultSet rs = null;
Connection conn = null;
List<FichaI> resultado = new ArrayList<>();
conn = cn.conectar();
try {
String sql = "SELECT * FROM fichaI";
stm = conn.createStatement();
rs = stm.executeQuery(sql);
while (rs.next()) {
FichaI ficha = new FichaI(
rs.getInt("id_alumno"),
rs.getInt("id_carrera"),
rs.getInt("id_tutor"),
rs.getInt("id_documentacion"),
rs.getDate("fecha_inicio"),
rs.getDate("fecha_fin")
);
resultado.add(ficha);
}
} catch (Exception e) {
System.out.println(e);
} finally {
cerrarConexiones(null, conn);
}
return resultado;
}
public static boolean agregarFichaI(FichaI ficha) {
PreparedStatement stm = null;
Connection conn = null;
boolean agregado = false;
conn = cn.conectar();
try {
String sql = "INSERT INTO fichaI (id_alumno, id_carrera, id_tutor, id_documentacion, fecha_inicio, fecha_fin) VALUES (?, ?, ?, ?, ?, ?)";
stm = conn.prepareStatement(sql);
stm.setInt(1, ficha.getIdAlumno());
stm.setInt(2, ficha.getIdCarrera());
stm.setInt(3, ficha.getIdTutor());
stm.setInt(4, ficha.getIdDocumentacion());
stm.setDate(5, new java.sql.Date(ficha.getFechaInicio().getTime()));
stm.setDate(6, new java.sql.Date(ficha.getFechaFin().getTime()));
agregado = stm.executeUpdate() > 0;
} catch (Exception e) {
System.out.println(e);
} finally {
cerrarConexiones(stm, conn);
}
return agregado;
}
public static boolean editarFichaI(FichaI ficha) {
PreparedStatement stm = null;
Connection conn = null;
boolean actualizado = false;
conn = cn.conectar();
try {
String sql = "UPDATE fichaI SET id_carrera = ?, id_tutor = ?, id_documentacion = ?, fecha_inicio = ?, fecha_fin = ? WHERE id_alumno = ?";
stm = conn.prepareStatement(sql);
stm.setInt(1, ficha.getIdCarrera());
stm.setInt(2, ficha.getIdTutor());
stm.setInt(3, ficha.getIdDocumentacion());
stm.setDate(4, new java.sql.Date(ficha.getFechaInicio().getTime()));
stm.setDate(5, new java.sql.Date(ficha.getFechaFin().getTime()));
stm.setInt(6, ficha.getIdAlumno());
actualizado = stm.executeUpdate() > 0;
} catch (SQLException ex) {
System.err.println(ex);
} finally {
cerrarConexiones(stm, conn);
}
return actualizado;
}
public static boolean eliminarFicha(int idAlumno) {
return false;
}
private static void cerrarConexiones(PreparedStatement stm, Connection conn) {
if (stm != null) {
try {
stm.close();
} catch (Exception e) {
System.out.println(e);
}
}
if (conn != null) {
try {
conn.close();
cn.cerrarConexion();
} catch (Exception e) {
System.out.println(e);
}
}
}
}

View File

@ -1,113 +0,0 @@
package mx.uv.Controller;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import mx.uv.Model.FichaP;
public class DAO_FichaP {
private static Conexion cn = Conexion.getInstance();
// Método para obtener todas las fichas
public static List<FichaP> dameFichasP() {
Statement stm = null;
ResultSet rs = null;
Connection conn = null;
List<FichaP> resultado = new ArrayList<>();
conn = cn.conectar();
try {
String sql = "SELECT * FROM fichaP";
stm = conn.createStatement();
rs = stm.executeQuery(sql);
while (rs.next()) {
FichaP ficha = new FichaP(
rs.getInt("id"),
rs.getInt("id_alumno"),
rs.getInt("id_carrera"),
rs.getDate("fecha_inicio"),
rs.getDate("fecha_fin")
);
resultado.add(ficha);
}
} catch (Exception e) {
System.out.println(e);
} finally {
cerrarConexiones(null, conn);
}
return resultado;
}
public static boolean agregarFichaP(FichaP ficha) {
PreparedStatement stm = null;
Connection conn = null;
boolean agregado = false;
conn = cn.conectar();
try {
String sql = "INSERT INTO fichaP (id_alumno, id_carrera, fecha_inicio, fecha_fin) VALUES (?, ?, ?, ?)";
stm = conn.prepareStatement(sql);
stm.setInt(1, ficha.getIdAlumno());
stm.setInt(2, ficha.getIdCarrera());
stm.setDate(3, new java.sql.Date(ficha.getFechaInicio().getTime()));
stm.setDate(4, new java.sql.Date(ficha.getFechaFin().getTime()));
agregado = stm.executeUpdate() > 0;
} catch (Exception e) {
System.out.println(e);
} finally {
cerrarConexiones(stm, conn);
}
return agregado;
}
public static boolean editarFichaP(FichaP ficha) {
PreparedStatement stm = null;
Connection conn = null;
boolean actualizado = false;
conn = cn.conectar();
try {
String sql = "UPDATE fichaP SET id_alumno = ?, id_carrera = ?, fecha_inicio = ?, fecha_fin = ? WHERE id = ?";
stm = conn.prepareStatement(sql);
stm.setInt(1, ficha.getIdAlumno());
stm.setInt(2, ficha.getIdCarrera());
stm.setDate(3, new java.sql.Date(ficha.getFechaInicio().getTime()));
stm.setDate(4, new java.sql.Date(ficha.getFechaFin().getTime()));
stm.setInt(5, ficha.getId());
actualizado = stm.executeUpdate() > 0;
} catch (SQLException ex) {
System.err.println(ex);
} finally {
cerrarConexiones(stm, conn);
}
return actualizado;
}
public static boolean eliminarFichaP(int id) {
return false;
}
private static void cerrarConexiones(PreparedStatement stm, Connection conn) {
if (stm != null) {
try {
stm.close();
} catch (Exception e) {
System.out.println(e);
}
}
if (conn != null) {
try {
conn.close();
cn.cerrarConexion();
} catch (Exception e) {
System.out.println(e);
}
}
}
}

View File

@ -1,55 +0,0 @@
package mx.uv.Model;
public class Administrador {
private int id;
private String matricula;
private String contrasena;
private String nombre;
private String apellido;
public Administrador() {
}
public Administrador(int id, String matricula, String contrasena, String nombre, String apellido) {
this.id = id;
this.matricula = matricula;
this.contrasena = contrasena;
this.nombre = nombre;
this.apellido = apellido;
}
public void setId(int id) {
this.id = id;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public void setContrasena(String contrasena) {
this.contrasena = contrasena;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public int getId() {
return id;
}
public String getMatricula() {
return matricula;
}
public String getContrasena() {
return contrasena;
}
public String getNombre() {
return nombre;
}
public String getApellido() {
return apellido;
}
}

View File

@ -1,106 +0,0 @@
package mx.uv.Model;
// * Clase Alumno que servira para comunicarse con el controlador.
public class Alumno {
private int id;
private String nombre;
private String apellido;
private String fechaNacimiento;
private String nacionalidad;
private String tipoDeSangre;
private String matricula;
private String contrasena;
private String correo;
public Alumno(int id, String nombre, String apellido, String fechaNacimiento, String nacionalidad,
String tipoDeSangre, String matricula, String contrasena, String correo) {
this.id = id;
this.nombre = nombre;
this.apellido = apellido;
this.fechaNacimiento = fechaNacimiento;
this.nacionalidad = nacionalidad;
this.tipoDeSangre = tipoDeSangre;
this.matricula = matricula;
this.contrasena = contrasena;
this.correo = correo;
}
public Alumno() {
}
public Alumno(String nombre, String apellido, String nacionalidad, String matricula, String contrasena,String correo) {
this.nombre = nombre;
this.apellido = apellido;
this.nacionalidad = nacionalidad;
this.matricula = matricula;
this.contrasena = contrasena;
this.correo = correo;
}
public Alumno(String matricula, String contrasena) {
this.matricula = matricula;
this.contrasena = contrasena;
}
public void setId(int id) {
this.id = id;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public void setFechaNacimiento(String fechaNacimiento) {
this.fechaNacimiento = fechaNacimiento;
}
public void setNacionalidad(String nacionalidad) {
this.nacionalidad = nacionalidad;
}
public void setTipoDeSangre(String tipoDeSangre) {
this.tipoDeSangre = tipoDeSangre;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public void setContrasena(String contrasena) {
this.contrasena = contrasena;
}
public int getId() {
return id;
}
public String getNombre() {
return nombre;
}
public String getApellido() {
return apellido;
}
public String getFechaNacimiento() {
return fechaNacimiento;
}
public String getNacionalidad() {
return nacionalidad;
}
public String getTipoDeSangre() {
return tipoDeSangre;
}
public String getMatricula() {
return matricula;
}
public String getContrasena() {
return contrasena;
}
public String getCorreo() {
return correo;
}
public void setCorreo(String correo) {
this.correo = correo;
}
}

View File

@ -2,69 +2,36 @@ package mx.uv.Model;
public class Carrera {
private int id;
private String area;
private String nombre;
private String modalidad;
private String campus;
private Double costo;
private String area;
public Carrera(int id,String area, String nombre, String modalidad, String campus, double costo){
this.id=id;
this.area=area;
this.nombre=nombre;
this.modalidad=modalidad;
this.campus=campus;
this.costo=costo;
public Carrera(int id, String nombre, String area) {
this.id = id;
this.nombre = nombre;
this.area = area;
}
public void setId(int id){
this.id=id;
}
public void setArea(String area){
this.area=area;
}
public void setNombre(String nombre){
this.nombre=nombre;
}
public void setModalidad(String modalidad){
this.modalidad=modalidad;
}
public void setCampus(String campus){
this.campus=campus;
}
public void setCosto(double costo){
this.costo=costo;
}
public int getId(){
public int getId() {
return id;
}
public String getArea(){
return area;
}
public String getNombre(){
public String getNombre() {
return nombre;
}
public String getModalidad(){
return modalidad;
public String getArea() {
return area;
}
public String getCampus(){
return campus;
public void setId(int id) {
this.id = id;
}
public double getCosto(){
return costo;
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setArea(String area) {
this.area = area;
}
}

View File

@ -1,108 +0,0 @@
package mx.uv.Model;
public class Documentacion {
private int id;
private byte[] actaDeNacimiento;
private byte[] certificadoBachillerato;
private byte[] curp;
private byte[] ine;
private byte[] ineTutor;
private byte[] certificadoMedico;
private byte[] comprobante;
private byte[] fotografia;
private byte[] constancia;
public Documentacion(int id, byte[] actaDeNacimiento, byte[] certificadoBachillerato, byte[] curp, byte[] ine, byte[] ineTutor, byte[] certificadoMedico, byte[] comprobante, byte[] fotografia, byte[] constancia){
this.id=id;
this.actaDeNacimiento=actaDeNacimiento;
this.certificadoBachillerato=certificadoBachillerato;
this.curp=curp;
this.ine=ine;
this.ineTutor=ineTutor;
this.certificadoMedico=certificadoMedico;
this.comprobante=comprobante;
this.fotografia=fotografia;
this.constancia=constancia;
}
public void setId(int id){
this.id=id;
}
public void setActaNacimiento(byte[] actaDeNacimiento){
this.actaDeNacimiento=actaDeNacimiento;
}
public void setCertificadoBachillerato(byte[] certificadoBachillerato){
this.certificadoBachillerato=certificadoBachillerato;
}
public void setCurp(byte[] curp){
this.curp=curp;
}
public void setIne(byte[] ine){
this.ine=ine;
}
public void setIneTutor(byte[] ineTutor){
this.ineTutor=ineTutor;
}
public void setCertificadoMedico(byte[] certificadoMedico){
this.certificadoMedico=certificadoMedico;
}
public void setComprobante(byte[] comprobante){
this.comprobante=comprobante;
}
public void setFoto(byte[] fotografia){
this.fotografia=fotografia;
}
public void setConstancia(byte[] constancia){
this.constancia=constancia;
}
public int getId(){
return id;
}
public byte[] getActaNacimiento(){
return actaDeNacimiento;
}
public byte[] getCertificadoBachillerato(){
return certificadoBachillerato;
}
public byte[] getCurp(){
return curp;
}
public byte[] getIne(){
return ine;
}
public byte[] getIneTutor(){
return ineTutor;
}
public byte[] getCertificadoMedico(){
return certificadoMedico;
}
public byte[] getComprobante(){
return comprobante;
}
public byte[] getFotografia(){
return fotografia;
}
public byte[] getConstancia(){
return constancia;
}
}

View File

@ -0,0 +1,57 @@
package mx.uv.Model;
public class Documento {
private int id;
private String titulo;
private byte[] archivo;
private int idUsuario;
private int valido;
public Documento(int id, String titulo, byte[] archivo, int idUsuario, int valido) {
this.id = id;
this.titulo = titulo;
this.archivo = archivo;
this.idUsuario = idUsuario;
this.valido = valido;
}
public int getId() {
return id;
}
public String getTitulo() {
return titulo;
}
public byte[] getArchivo() {
return archivo;
}
public int getIdUsuario() {
return idUsuario;
}
public int getValido() {
return valido;
}
public void setId(int id) {
this.id = id;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public void setArchivo(byte[] archivo) {
this.archivo = archivo;
}
public void setIdUsuario(int idUsuario) {
this.idUsuario = idUsuario;
}
public void setValido(int valido) {
this.valido = valido;
}
}

View File

@ -1,59 +0,0 @@
package mx.uv.Model;
public class Examen {
private int id;
private double calificacion;
private boolean derechoInscripcion;
private int idAlumno;
public Examen(int id, double calificacion, boolean derechoInscripcion, int idAlumno) {
this.id = id;
this.calificacion = calificacion;
this.derechoInscripcion = derechoInscripcion;
this.idAlumno = idAlumno;
}
// Getters y Setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getCalificacion() {
return calificacion;
}
public void setCalificacion(double calificacion) {
this.calificacion = calificacion;
}
public boolean isDerechoInscripcion() {
return derechoInscripcion;
}
public void setDerechoInscripcion(boolean derechoInscripcion) {
this.derechoInscripcion = derechoInscripcion;
}
public int getIdAlumno() {
return idAlumno;
}
public void setIdAlumno(int idAlumno) {
this.idAlumno = idAlumno;
}
// toString() para representación legible
@Override
public String toString() {
return "Examen{" +
"id=" + id +
", calificacion=" + calificacion +
", derechoInscripcion=" + derechoInscripcion +
", idAlumno=" + idAlumno +
'}';
}
}

View File

@ -1,84 +0,0 @@
package mx.uv.Model;
import java.util.Date;
public class FichaI {
private int idAlumno;
private int idCarrera;
private int idTutor;
private int idDocumentacion;
private Date fechaInicio;
private Date fechaFin;
public FichaI(int idAlumno, int idCarrera, int idTutor, int idDocumentacion, Date fechaInicio, Date fechaFin) {
this.idAlumno = idAlumno;
this.idCarrera = idCarrera;
this.idTutor = idTutor;
this.idDocumentacion = idDocumentacion;
this.fechaInicio = fechaInicio;
this.fechaFin = fechaFin;
}
// Getters y Setters
public int getIdAlumno() {
return idAlumno;
}
public void setIdAlumno(int idAlumno) {
this.idAlumno = idAlumno;
}
public int getIdCarrera() {
return idCarrera;
}
public void setIdCarrera(int idCarrera) {
this.idCarrera = idCarrera;
}
public int getIdTutor() {
return idTutor;
}
public void setIdTutor(int idTutor) {
this.idTutor = idTutor;
}
public int getIdDocumentacion() {
return idDocumentacion;
}
public void setIdDocumentacion(int idDocumentacion) {
this.idDocumentacion = idDocumentacion;
}
public Date getFechaInicio() {
return fechaInicio;
}
public void setFechaInicio(Date fechaInicio) {
this.fechaInicio = fechaInicio;
}
public Date getFechaFin() {
return fechaFin;
}
public void setFechaFin(Date fechaFin) {
this.fechaFin = fechaFin;
}
// toString() para representación legible
@Override
public String toString() {
return "FichaI{" +
"idAlumno=" + idAlumno +
", idCarrera=" + idCarrera +
", idTutor=" + idTutor +
", idDocumentacion=" + idDocumentacion +
", fechaInicio=" + fechaInicio +
", fechaFin=" + fechaFin +
'}';
}
}

View File

@ -1,73 +0,0 @@
package mx.uv.Model;
import java.util.Date;
public class FichaP {
private int id;
private int idAlumno;
private int idCarrera;
private Date fechaInicio;
private Date fechaFin;
public FichaP(int id, int idAlumno, int idCarrera, Date fechaInicio, Date fechaFin) {
this.id = id;
this.idAlumno = idAlumno;
this.idCarrera = idCarrera;
this.fechaInicio = fechaInicio;
this.fechaFin = fechaFin;
}
// Getters y Setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getIdAlumno() {
return idAlumno;
}
public void setIdAlumno(int idAlumno) {
this.idAlumno = idAlumno;
}
public int getIdCarrera() {
return idCarrera;
}
public void setIdCarrera(int idCarrera) {
this.idCarrera = idCarrera;
}
public Date getFechaInicio() {
return fechaInicio;
}
public void setFechaInicio(Date fechaInicio) {
this.fechaInicio = fechaInicio;
}
public Date getFechaFin() {
return fechaFin;
}
public void setFechaFin(Date fechaFin) {
this.fechaFin = fechaFin;
}
// toString() para representación legible
@Override
public String toString() {
return "FichaP{" +
"id=" + id +
", idAlumno=" + idAlumno +
", idCarrera=" + idCarrera +
", fechaInicio=" + fechaInicio +
", fechaFin=" + fechaFin +
'}';
}
}

View File

@ -0,0 +1,38 @@
package mx.uv.Model;
public class Incripcion {
private int id;
private int idUusario;
private int idDocumento;
public Incripcion(int id, int idUusario, int idDocumento) {
this.id = id;
this.idUusario = idUusario;
this.idDocumento = idDocumento;
}
public void setId(int id) {
this.id = id;
}
public void setIdUusario(int idUusario) {
this.idUusario = idUusario;
}
public void setIdDocumento(int idDocumento) {
this.idDocumento = idDocumento;
}
public int getId() {
return id;
}
public int getIdUusario() {
return idUusario;
}
public int getIdDocumento() {
return idDocumento;
}
}

View File

@ -2,25 +2,30 @@ package mx.uv.Model;
public class Mensaje {
private boolean verificacion;
private Alumno alumno;
private Usuario usuario;
public Mensaje(){
};
public Mensaje(boolean verificacion, Alumno alumno) {
this.verificacion = verificacion;
this.alumno = alumno;
public Mensaje() {
}
public Mensaje(boolean verificacion, Usuario usuario) {
this.verificacion = verificacion;
this.usuario = usuario;
}
public boolean isVerificacion() {
return verificacion;
}
public Alumno getAlumno() {
return alumno;
public Usuario getUsuario() {
return usuario;
}
public void setVerificacion(boolean verificacion) {
this.verificacion = verificacion;
}
public void setAlumno(Alumno alumno) {
this.alumno = alumno;
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
}

View File

@ -1,5 +1,38 @@
package mx.uv.Model;
public class Registro {
private int id;
private String matricula;
private String descripcion;
public Registro(int id, String matricula, String descripcion) {
this.id = id;
this.matricula = matricula;
this.descripcion = descripcion;
}
public void setId(int id) {
this.id = id;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public int getId() {
return id;
}
public String getMatricula() {
return matricula;
}
public String getDescripcion() {
return descripcion;
}
}

View File

@ -1,57 +1,58 @@
package mx.uv.Model;
public class Tutor {
private int id;
private String nombre;
private String apellido;
private String parentesco;
private String ocupacion;
private String telefono;
private String numeroDeTelefono;
private int idUsuario;
public Tutor(int id, String nombre, String apellido, String parentesco, String ocupacion, String telefono) {
public Tutor(int id, String nombre, String apellido, String numeroDeTelefono, int idUsuario) {
this.id = id;
this.nombre = nombre;
this.apellido = apellido;
this.parentesco = parentesco;
this.ocupacion = ocupacion;
this.telefono = telefono;
}
public void setId(int id) {
this.id = id;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public void setParentesco(String parentesco) {
this.parentesco = parentesco;
}
public void setOcupacion(String ocupacion) {
this.ocupacion = ocupacion;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
this.numeroDeTelefono = numeroDeTelefono;
this.idUsuario = idUsuario;
}
public int getId() {
return id;
}
public String getNombre() {
return nombre;
}
public String getApellido() {
return apellido;
}
public String getParentesco() {
return parentesco;
public String getNumeroDeTelefono() {
return numeroDeTelefono;
}
public String getOcupacion() {
return ocupacion;
public int getIdUsuario() {
return idUsuario;
}
public String getTelefono() {
return telefono;
public void setId(int id) {
this.id = id;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public void setNumeroDeTelefono(String numeroDeTelefono) {
this.numeroDeTelefono = numeroDeTelefono;
}
public void setIdUsuario(int idUsuario) {
this.idUsuario = idUsuario;
}
}

View File

@ -0,0 +1,176 @@
package mx.uv.Model;
import java.security.SecureRandom;
public class Usuario {
private int id;
private String nombre;
private String apellido;
private String matricula;
private String contrasena;
private String correo;
private String nacionalidad;
private String tipoSangre;
private String fecha_nacimiento;
private String curp;
private String rol;
private int idCarrera;
private int inscrito;
public Usuario(int id, String nombre, String apellido, String matricula, String contrasena, String correo,
String nacionalidad, String tipoSangre, String fecha_nacimiento, String curp, String rol, int idCarrera,
int inscrito) {
this.id = id;
this.nombre = nombre;
this.apellido = apellido;
this.matricula = matricula;
this.contrasena = 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;
}
public Usuario(int id, String nombre, String apellido, String matricula) {
this.id = id;
this.nombre = nombre;
this.apellido = apellido;
this.matricula = matricula;
}
public Usuario(int id, String nombre, String apellido, String matricula, String rol) {
this.id = id;
this.nombre = nombre;
this.apellido = apellido;
this.matricula = matricula;
this.rol = rol;
}
public Usuario(String matricula, String contrasena) {
this.matricula = matricula;
this.contrasena = contrasena;
}
public int getId() {
return id;
}
public String getNombre() {
return nombre;
}
public String getApellido() {
return apellido;
}
public String getMatricula() {
return matricula;
}
public String getContrasena() {
return contrasena;
}
public String getCorreo() {
return correo;
}
public String getNacionalidad() {
return nacionalidad;
}
public String getTipoSangre() {
return tipoSangre;
}
public String getFecha_nacimiento() {
return fecha_nacimiento;
}
public String getCurp() {
return curp;
}
public String getRol() {
return rol;
}
public int getIdCarrera() {
return idCarrera;
}
public int getInscrito() {
return inscrito;
}
public void setId(int id) {
this.id = id;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public void setContrasena(String contrasena) {
this.contrasena = contrasena;
}
public void setCorreo(String correo) {
this.correo = correo;
}
public void setNacionalidad(String nacionalidad) {
this.nacionalidad = nacionalidad;
}
public void setTipoSangre(String tipoSangre) {
this.tipoSangre = tipoSangre;
}
public void setFecha_nacimiento(String fecha_nacimiento) {
this.fecha_nacimiento = fecha_nacimiento;
}
public void setCurp(String curp) {
this.curp = curp;
}
public void setRol(String rol) {
this.rol = rol;
}
public void setIdCarrera(int idCarrera) {
this.idCarrera = idCarrera;
}
public void setInscrito(int inscrito) {
this.inscrito = inscrito;
}
public String crearToken() {
String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
SecureRandom random = new SecureRandom();
StringBuilder token = new StringBuilder(15);
for (int i = 0; i < 15; i++) {
int index = random.nextInt(CHARACTERS.length());
token.append(CHARACTERS.charAt(index));
}
return token.toString();
}
}

View File

@ -2,9 +2,9 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<!--<link rel="icon" type="image/svg+xml" href="/vite.svg" />-->
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Registro</title>
<title>SIU</title>
</head>
<body>
<div id="root"></div>

File diff suppressed because it is too large Load Diff

View File

@ -10,12 +10,16 @@
"preview": "vite preview"
},
"dependencies": {
"axios": "^1.6.8",
"@fortawesome/fontawesome-free": "^6.5.2",
"axios": "^1.7.0",
"bootstrap": "^5.3.3",
"chart.js": "^4.4.3",
"react": "^18.2.0",
"react-bootstrap-pagination-control": "^1.0.5",
"react-chartjs-2": "^5.2.0",
"react-dom": "^18.2.0",
"react-dropzone": "^14.2.3",
"react-router": "^6.23.1",
"react-router-dom": "^6.23.1"
"react-router-dom": "^6.23.1",
"sweetalert2": "^11.11.0"
},
"devDependencies": {
"@types/react": "^18.2.66",
@ -25,7 +29,6 @@
"eslint-plugin-react": "^7.34.1",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.6",
"react-router-dom": "^6.23.1",
"vite": "^5.2.0"
}
}

37
frontend/src/App.jsx Normal file
View File

@ -0,0 +1,37 @@
import { BrowserRouter, Routes, Route } from "react-router-dom";
import Nav from "./Components/Nav";
import Login from "./Views/Login";
import Registro from "./Views/Registro";
import './Styles/App.css';
import ProtectorDeRutas from "./Components/ProtectorDeRutas";
import OfertaEducativa from "./Views/OfertaEducativa";
import Inscripcion from "./Views/Inscripcion";
import ProtectorEstudiante from "./Components/ProtectorEstudiante";
import ProtectorAdmin from "./Components/ProtectorAdmin";
import ValidacionAdm from "./Views/ValidacionAdm";
import Informacion from "./Views/Informacion";
function App() {
return (
<BrowserRouter>
<Nav />
<Routes>
<Route path="/login" element={<Login />} />
<Route path="/registro" element={<Registro />} />
<Route element={<ProtectorDeRutas />}>
<Route path="/home" element={<OfertaEducativa />} />
<Route path="/info" element={<Informacion />} />
<Route element={<ProtectorAdmin />}>
<Route path="/inscripcion" element={<Inscripcion />} />
</Route>
<Route element={<ProtectorEstudiante />}>
<Route path="/adminHome" element={<ValidacionAdm/>} />
</Route>
</Route>
</Routes>
</BrowserRouter>
);
}
export default App;

View File

@ -0,0 +1,68 @@
import { Link, useNavigate } from "react-router-dom";
import storage from "../Storage/storage";
const Nav = () => {
const go = useNavigate();
const logout = async () => {
storage.remove("authToken");
storage.remove("authUser");
storage.remove("authRol");
go("/login");
};
return (
<nav className="navbar navbar-expand-lg navbar-white bg-success">
<div className="container-fluid">
<a className="navbar-brand">Dran.Net</a>
<button
className="navbar-toggler"
type="button"
data-bs-toggle="collapse"
data-bs-target="#nav"
aria-controls="navbarSupportedContent"
>
<span className="navbar-toggler-icon"></span>
</button>
</div>
{storage.get("authUser") ? (
<div className="collapse navbar-collapse" id="nav">
<ul className="navbar-nav mx-auto mb-2">
<li className="nav-item px-lg-5 h4"> </li>
<li className="nav-item px-lg-5">
<Link to="/home" className="nav-link">
Oferta Educativa
</Link>
</li>
<li className="nav-item px-lg-5">
{ storage.get("authRol") == "estudiante" ? (
<Link to="/inscripcion" className="nav-link">
Incripción
</Link>
):(
<Link to="/adminHome" className="nav-link">
Incripción Panel
</Link>
)}
</li>
<li className="nav-item px-lg-5">
<Link to="/info" className="nav-link">
Informacion
</Link>
</li>
</ul>
<ul className="navbar-nav mx-auto mb-2">
<li className="nav-item px-lg-5">
<button className="btn btn-success" onClick={logout}>
Cerrar Sesión
</button>
</li>
</ul>
</div>
) : (
<h5>Bienvenido</h5>
)}
</nav>
);
};
export default Nav;

View File

@ -0,0 +1,14 @@
import React from "react";
import { Navigate, Outlet } from "react-router-dom";
import storage from "../Storage/storage";
export const ProtectorAdmin = () => {
const authRol = storage.get("authRol");
if (authRol != 'estudiante') {
return <Navigate to="/adminHome" />;
}
return <Outlet />;
}
export default ProtectorAdmin

View File

@ -0,0 +1,13 @@
import React from "react";
import { Navigate, Outlet } from "react-router-dom";
import storage from "../Storage/storage";
export const ProtectorDeRutas = ({ children }) => {
const authUser = storage.get("authToken");
if (!authUser) {
return <Navigate to="/login" />;
}
return <Outlet />;
};
export default ProtectorDeRutas;

View File

@ -0,0 +1,13 @@
import React from "react";
import { Navigate, Outlet } from "react-router-dom";
import storage from "../Storage/storage";
export const ProtectorEstudiante = ({ children }) => {
const authRol = storage.get("authRol");
if (authRol != 'administrador') {
return <Navigate to="/home" />;
}
return <Outlet />;
}
export default ProtectorEstudiante

View File

@ -0,0 +1,45 @@
import React, { forwardRef, useEffect, useRef } from "react";
export default forwardRef(
(
{
type = "",
icon = "",
placeholder = "",
name,
id,
value,
className,
required,
isFocused,
handleChange,
},
ref
) => {
const input = ref ? ref : useRef();
useEffect(() => {
if (isFocused) {
input.current.focus();
}
}, []);
return (
<div className="input-group mb-3">
<span className="input-group-text">
<i className={"fa-solid" + icon}></i>
</span>
<input
type={type}
placeholder={placeholder}
name={name}
id={id}
value={value}
className={className}
ref={input}
required={required}
onChange={(e) => handleChange(e)}
/>
</div>
);
}
);

View File

@ -0,0 +1,19 @@
export const storage = {
get(key) {
const val = window.localStorage.getItem(key);
if (!val) {
return null;
}
return JSON.parse(val);
},
set(key, val) {
window.localStorage.setItem(key, JSON.stringify(val));
},
remove(key) {
window.localStorage.removeItem(key);
},
clear() {
window.localStorage.clear();
},
};
export default storage;

View File

@ -0,0 +1,4 @@
footer {
margin-top: auto;
/* Coloca el footer al final */
}

View File

@ -1,17 +1,7 @@
import React, { useState } from "react";
import "../styles/Licenciatura.css";
import Encabezado from "./Encabezado.jsx";
import { useParams } from "react-router";
const Licenciatura = () => {
const { id } = useParams();
const { nombre } = useParams();
const [usuario, setUsuario] = useState({
id: id,
nombre: nombre,
});
import React from 'react'
import { useState } from 'react';
const Informacion = () => {
const [area, setArea] = useState("Tecnica");
const [licenciatura, setLicenciatura] = useState("Mátematicas");
@ -321,7 +311,6 @@ const Licenciatura = () => {
return (
<>
<div id="bodyLicenciatura">
<Encabezado usuario={usuario} setUsuario={setUsuario} />
<h1 id="h1Programas">Programas Educativos</h1>
<div id="opciones">
<label id="labelSelect">Seleccionar área:</label>
@ -401,14 +390,9 @@ const Licenciatura = () => {
</p>
</p>
</div>
<input
type="submit"
className="btnElegirCarrera"
value="Elegir Licenciatura"
/>
</div>
</>
);
};
}
export default Licenciatura;
export default Informacion

View File

@ -0,0 +1,26 @@
import React from 'react';
const Inscripcion = () => {
return (
<div className='container'>
<div className='nbn'>
<form>
<div className="mb-4">
<h5>Datos Personales</h5>
{/* Campos del formulario para Datos Personales */}
</div>
<div className="mb-4">
<h5>Datos del Tutor</h5>
{/* Campos del formulario para Datos del Tutor */}
</div>
<div className="mb-4">
<h5>Documentación</h5>
{/* Campos del formulario para Documentación */}
</div>
</form>
</div>
</div>
);
}
export default Inscripcion;

View File

@ -0,0 +1,93 @@
import React, { useState } from "react";
import { useNavigate, NavLink } from "react-router-dom";
import { sendRequest } from "../funciones";
import DivInput from "../Components/divInput";
import storage from "../Storage/storage";
const Login = () => {
const [usuario, setUsuario] = useState({ matricula: "", contrasena: "" });
const go = useNavigate();
const login = async (e) => {
e.preventDefault();
const form = { ...usuario };
try {
const res = await sendRequest("POST", form, "/alumnoIniciado", "", false);
if (res && res.authToken) {
storage.set("authToken", res.authToken);
storage.set("authUser", res.matricula);
storage.set("authRol", res.authRol);
const rol =storage.get("authRol");
go("/home")
} else {
console.error("Respuesta de la API inválida:", res);
}
} catch (error) {
console.error("Error al iniciar sesión:", error);
}
};
const handleChange = (e) => {
const { name, value } = e.target;
setUsuario((prevUsuario) => ({ ...prevUsuario, [name]: value }));
};
return (
<div className="container-fluid d-flex flex-column min-vh-100 p-0 overflow-hidden">
<div className="container flex-grow-1 d-flex align-items-center justify-content-center overflow-hidden">
<div className="row w-100 h-100">
<div className="col-md-6 d-flex align-items-center justify-content-center">
<img src="imagen.jpg" alt="Imagen" className="img-fluid" />
</div>
<div className="col-md-6 d-flex align-items-center">
<form className="p-4 border rounded bg-light w-100" onSubmit={login}>
<DivInput
type="text"
icon="fa-at"
name="matricula"
value={usuario.matricula}
className="form-control mb-3"
placeholder="Matrícula"
required
handleChange={handleChange}
/>
<DivInput
type="password"
icon="fa-lock"
name="contrasena"
value={usuario.contrasena}
className="form-control mb-3"
placeholder="Contraseña"
required
handleChange={handleChange}
/>
<NavLink to="/registro" className="d-block mb-3">
¿Aún no te has registrado?
</NavLink>
<button type="submit" className="btn btn-dark w-100">
<i className="fa-solid fa-door-open me-2"></i> Login
</button>
</form>
</div>
</div>
</div>
<footer className="bg-success text-white text-center py-3">
<div className="d-flex justify-content-center">
<a href="mailto:uniregistro@outlook.com" className="text-white mx-3">
uniregistro@outlook.com
</a>
<a href="#" className="text-white mx-3">
uniBandeVer
</a>
<a href="tel:4582349234" className="text-white mx-3">
4582349234
</a>
</div>
</footer>
</div>
);
};
export default Login;

View File

@ -0,0 +1,60 @@
import React from 'react';
const OfertaEducativa = () => {
return (
<div>
<h1 className="text-primary text-uppercase text-center my-5" style={{ fontSize: '50px' }}>
Oferta Educativa
</h1>
<div className="container">
<div className="row gy-5">
<div className="col-md-6 col-lg-3">
<div className="border border-primary p-3 h-100">
<h2 className="text-warning">Área Técnica</h2>
<ul className="list-unstyled text-secondary">
<li>Licenciatura en Matemáticas</li>
<li>Licenciatura en Física</li>
<li>Licenciatura en Arquitectura</li>
</ul>
</div>
</div>
<div className="col-md-6 col-lg-3">
<div className="border border-primary p-3 h-100">
<h2 className="text-warning">Área Económico-Administrativo</h2>
<ul className="list-unstyled text-secondary">
<li>Licenciatura en Contabilidad</li>
<li>Licenciatura en Economía</li>
<li>Licenciatura en Administración</li>
</ul>
</div>
</div>
<div className="col-md-6 col-lg-3">
<div className="border border-primary p-3 h-100">
<h2 className="text-warning">Área de Humanidades</h2>
<ul className="list-unstyled text-secondary">
<li>Licenciatura en Historia</li>
<li>Licenciatura en Antropología</li>
<li>Licenciatura en Pedagogía</li>
</ul>
</div>
</div>
<div className="col-md-6 col-lg-3">
<div className="border border-primary p-3 h-100">
<h2 className="text-warning">Área de Biológicas y Agropecuarias</h2>
<ul className="list-unstyled text-secondary">
<li>Licenciatura en Biología</li>
<li>Ingeniería Química</li>
<li>Ingeniero Agrónomo</li>
</ul>
</div>
</div>
</div>
</div>
<footer className="bg-success text-white text-center py-3 mt-5">
© 2024 Universidad Filadelfia. Todos los derechos reservados.
</footer>
</div>
);
};
export default OfertaEducativa;

View File

@ -0,0 +1,121 @@
import React, { useState } from 'react';
import { useNavigate, NavLink } from 'react-router-dom';
import { sendRequest } from '../funciones';
import DivInput from '../Components/divInput';
const Registro = () => {
const [alumno, setAlumno] = useState({
nombre: '',
apellido: '',
nacionalidad: '',
correo: '',
});
const [mensaje, setMensaje] = useState('');
const [error, setError] = useState('');
const [cargando, setCargando] = useState(false);
const go = useNavigate();
const limpiar = () => {
setAlumno({
nombre: '',
apellido: '',
nacionalidad: '',
correo: '',
});
};
const registro = async (e) => {
e.preventDefault();
const form = { ...alumno };
try {
setCargando(true);
const res = await sendRequest('POST', form, '/agregarAlumno', '', false);
if (res && res.verificacion) {
limpiar();
setMensaje(`Alumno Registrado Correctamente. Contraseña: ${res.contrasena}, Matrícula: ${res.matricula}`);
} else {
setError('Error: No se pudo Registrar');
}
} catch (error) {
console.error('Error al registrar:', error);
setError('Error: Ocurrió un problema al procesar la solicitud.');
} finally {
setCargando(false);
}
};
const handleChange = (e) => {
const { name, value } = e.target;
setAlumno((prevAlumno) => ({ ...prevAlumno, [name]: value }));
};
return (
<div className="container-fluid d-flex flex-column min-vh-100 p-0 overflow-hidden">
<div className="container flex-grow-1 d-flex align-items-center justify-content-center overflow-hidden">
<div className="row w-100 h-100">
<div className="col-md-6 d-flex align-items-center justify-content-center">
<h3>Registrarse</h3>
</div>
<div className="col-md-6 d-flex align-items-center">
<form className="p-4 border rounded bg-light w-100" onSubmit={registro}>
<DivInput
type="text"
icon="fa-user"
name="nombre"
value={alumno.nombre}
className="form-control mb-3"
placeholder="Nombre"
required
handleChange={handleChange}
/>
<DivInput
type="text"
icon="fa-user"
name="apellido"
value={alumno.apellido}
className="form-control mb-3"
placeholder="Apellido"
required
handleChange={handleChange}
/>
<DivInput
type="text"
icon="fa-flag"
name="nacionalidad"
value={alumno.nacionalidad}
className="form-control mb-3"
placeholder="Nacionalidad"
required
handleChange={handleChange}
/>
<DivInput
type="email"
icon="fa-at"
name="correo"
value={alumno.correo}
className="form-control mb-3"
placeholder="Correo"
required
handleChange={handleChange}
/>
{mensaje && <div className="alert alert-success">{mensaje}</div>}
{error && <div className="alert alert-danger">{error}</div>}
<div className="form-group">
<button className="btn btn-primary w-100" disabled={cargando}>
{cargando ? 'Registrando...' : 'Registrarse'}
</button>
<NavLink to="/login" className="d-block mb-3">
Regresar al Login
</NavLink>
</div>
</form>
</div>
</div>
</div>
</div>
);
};
export default Registro;

View File

@ -0,0 +1,9 @@
import React from 'react'
const ValidacionAdm = () => {
return (
<div>ValidacionAdm</div>
)
}
export default ValidacionAdm

View File

@ -1,7 +0,0 @@
import React from "react";
function Ajustes() {
return <></>;
}
export default Ajustes;

View File

@ -1,12 +0,0 @@
import React, { useState } from 'react';
function Comprobante() {
return (
<>
</>
);
}
export default Comprobante;

View File

@ -1,40 +0,0 @@
import React from "react";
import "../styles/Encabezado.css";
import { NavLink } from "react-router-dom";
function Encabezado({ usuario, setUsario }) {
return (
<header className="headerOE">
<nav>
<ul>
<div className="grupo1">
<img id="logo" src="logo.png" alt="Imagen" />
<li className="tit">Universidad Filadelfia de México</li>
</div>
<div className="grupo2">
<li>
<NavLink to={`/home/${usuario.id}/${usuario.nombre}`}>
Ofeta Educativa
</NavLink>
</li>
<li>
<NavLink to={`/preinscripcion/${usuario.id}/${usuario.nombre}`}>
Preiscripcion
</NavLink>
</li>
{/*<li>
<NavLink to="/ruta3">Ajustes</NavLink>
</li>*/}
<li>
<NavLink to={`/licenciatura/${usuario.id}/${usuario.nombre}`}>
Licenciaturas
</NavLink>
</li>
</div>
</ul>
</nav>
</header>
);
}
export default Encabezado;

View File

@ -1,14 +0,0 @@
import React from 'react';
import Encabezado from './Encabezado';
import Registro from './Registro';
function General() {
return (
<div>
<Encabezado />
<Registro />
</div>
);
}
export default General;

View File

@ -1,69 +0,0 @@
import { Outlet } from "react-router-dom";
import "../styles/OfertaEducativa.css";
import Encabezado from "./Encabezado";
import { useParams } from "react-router-dom";
import { useState } from "react";
function OfertaEducativa() {
const { id } = useParams();
const { nombre } = useParams();
const [usuario, setUsuario] = useState({
id: id,
nombre: nombre,
});
console.log(usuario);
return (
<>
<Encabezado usuario={usuario} setUsuario={setUsuario} />
<h1 className="tituloOE">Oferta Educativa</h1>
<div className="container">
<div className="area" id="areaTecnica">
Área Técnica
<div className="listaLic">
<ul>
<li>Licenciatura en Matemáticas</li>
<li>Licenciatura en Física</li>
<li>Licenciatura en Arquitectura</li>
</ul>
</div>
</div>
<div className="area">
Área Económico-Administrativo
<div className="listaLic">
<ul>
<li>Licenciatura en Contabilidad</li>
<li>Licenciatura en Economía</li>
<li>Licenciatura en Administración</li>
</ul>
</div>
</div>
<div className="area">
Área de Humanidades
<div className="listaLic">
<ul>
<li>Licenciatura en historia</li>
<li>Licenciatura en Antropología</li>
<li>Licenciatura en Pedagogía</li>
</ul>
</div>
</div>
<div className="area" id="areaBiologica">
Área de Biológicas y Agropecuarias
<div className="listaLic">
<ul>
<li>Licenciatura en Biología</li>
<li>Ingeniería Química</li>
<li>Ingeniero Agrónomo</li>
</ul>
</div>
</div>
</div>
<footer className="footerOE">
© 2024 Universidad Filadelfia. Todos los derechos reservados.
</footer>
</>
);
}
export default OfertaEducativa;

View File

@ -1,45 +0,0 @@
import SubirPDF from "./SubirPDF";
import React, { useState } from "react";
import "../styles/Preinscripcion.css";
import Encabezado from "./Encabezado";
import { useParams } from "react-router-dom";
const App = () => {
const { id } = useParams();
const { nombre } = useParams();
const [usuario, setUsuario] = useState({
id: id,
nombre: nombre,
});
return (
<>
<div id="bodyPre">
<Encabezado usuario={usuario} setUsuario={setUsuario} />
<h1 id="h1Pre">Proceso de Preinscripción</h1>
<p id="p1Pre">¡Bienvenido a esta gran comunidad estudiantil!</p>
<p id="p2Pre">
Para dar seguimiento al proceso de preinscripción es necesario que
subas los siguientes documentos en formato pdf que se te solicitan.
</p>
<label id="labelPre">Certificado de bachillerato</label>
<div>
<SubirPDF />
</div>
<label id="labelPre">Acta de nacimiento certificada</label>
<div>
<SubirPDF />
</div>
<label id="labelPre">Clave Única de Registro de Población (CURP)</label>
<div>
<SubirPDF />
</div>
<footer className="footerOE">
© 2024 Universidad Filadelfia. Todos los derechos reservados.
</footer>
</div>
</>
);
};
export default App;

View File

@ -1,91 +0,0 @@
import React, {useState} from 'react';
import axios from 'axios'
import '../styles/Registro.css'; // Estilo para el formulario
function Registro(){
const [Cargando, setCargando] = useState(false);
const [alumno, setAlumno] = useState({
nombre: "",
apellido: "",
nacionalidad: "",
correo: "",
});
const limpiar = () => {
setAlumno((prevAlumno) => ({
...prevAlumno,
nombre: "",
apellido: "",
nacionalidad: "",
correo: "",
}));
};
const hacerPeticion = async () => {
try {
const res = await axios.post("http://localhost:4567/agregarAlumno", alumno);
return res.data;
} catch (error) {
throw error;
}
};
const procesarFormulario = async (e) => {
e.preventDefault();
setCargando(true);
try {
const res = await hacerPeticion();
setCargando(false);
if (res.verificacion) {
limpiar();
alert("Producto Registrado Correctamente" + "Contraseña: " + res.contrasena +" Matricula: " +res.matricula);
} else {
alert("Error Producto No registrado");
}
} catch (error) {
console.log(error);
setCargando(false);
}finally{
}
};
const cambiosAlumno = (e) => {
const { name, value } = e.target;
setAlumno({
...alumno,
[name]: value,
});
};
return (
<div className="formulario">
<h2>Registro</h2>
<div><h4>Datos Personales</h4></div>
<form className='form'>
<div className="campo">
<label htmlFor="nombre">Nombre:</label>
<input type="text" id="nombre" onChange={cambiosAlumno} name='nombre' value={alumno.nombre} />
</div>
<div className="campo">
<label htmlFor="apellidoPaterno">Apellidos:</label>
<input type="text" id="apellidoPaterno" onChange={cambiosAlumno} name='apellido' value={alumno.apellido} />
</div>
<div className="campo">
<label htmlFor="nacionalidad">Nacionalidad:</label>
<input type="text" id="nacionalidad" onChange={cambiosAlumno} name="nacionalidad" value={alumno.nacionalidad} />
</div>
<div className="campo">
<label htmlFor="correo">Correo:</label>
<input type="email" id="correo" onChange={cambiosAlumno} name="correo" value={alumno.correo} />
</div>
</form>
<div>
<button type="submit" className='boton' disabled={Cargando} onClick={procesarFormulario}>Registrarse</button>
</div>
</div>
);
}
export default Registro;

View File

@ -1,36 +0,0 @@
import React, { useCallback } from 'react';
import { useDropzone } from 'react-dropzone';
import axios from 'axios';
import './SubirPDF'
const SubirPDF = () => {
const onDrop = useCallback(acceptedFiles => {
const file = acceptedFiles[0];
const formData = new FormData();
formData.append('pdfFile', file);
axios.post('http://localhost:${port}', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
.then(response => {
// Manejar la respuesta del servidor
console.log(response.data);
})
.catch(error => {
// Manejar errores
console.error('Error al subir el archivo:', error);
});
}, []);
const { getRootProps, getInputProps } = useDropzone({ onDrop });
return (
<div {...getRootProps()}>
<input id='inputPdf' type='submit' value='Subir pdf' />
</div>
);
};
export default SubirPDF;

View File

@ -1,152 +0,0 @@
import React, { useState } from "react";
import "../styles/login.css";
import { NavLink, useNavigate } from "react-router-dom";
import axios from "axios";
function Login() {
const [cargando, setCargando] = useState(false);
const [datosUsuario, setDatosUsuario] = useState({
matricula: "",
contrasena: "",
});
const [usuario, setUsuario] = useState({
id: 0,
nombre: "",
contrasena: "",
correo: "",
});
const navigate = useNavigate(); // Usa el hook useNavigate para la navegación programática
const limpiar = () => {
setDatosUsuario({
matricula: "",
contrasena: "",
});
};
const hacerPeticion = async () => {
try {
const res = await axios.post(
"http://localhost:4567/usuarioValido",
datosUsuario
);
return res.data;
} catch (error) {
throw error;
}
};
const obtenerUsuario = async () => {
try {
const res = await axios.get(
`http://localhost:4567/alumnoIniciado?matricula=${datosUsuario.matricula}&contrasena=${datosUsuario.contrasena}`
);
return res.data;
} catch (error) {
throw error;
}
};
const procesarFormulario = async (e) => {
e.preventDefault();
setCargando(true);
try {
const res = await hacerPeticion();
setCargando(false);
if (res.existe) {
const aux = await obtenerUsuario();
setUsuario({
id: aux.id,
nombre: aux.nombre,
contrasena: aux.contrasena,
correo: aux.correo,
});
alert("¡Bienvenido! " + aux.nombre);
limpiar();
// Navega a la página objetivo después del inicio de sesión exitoso, pasando parámetros si es necesario
navigate(`/home/${aux.id}/${aux.nombre}`);
} else {
alert("Usuario No encontrado");
}
} catch (error) {
console.log(error);
setCargando(false);
}
};
const cambiosUsuario = (e) => {
const { name, value } = e.target;
setDatosUsuario({
...datosUsuario,
[name]: value,
});
};
return (
<>
<body>
<header className="encabezado">
La universidad que esta para ti, ¡UNETE!
</header>
<div className="gridContainer">
<div className="imgColum">
<img src="imagen.jpg" alt="Imagen" />
</div>
<div className="loginColum">
<h1 className="bienvenida">Bienvenido</h1>
<form className="Formulario">
<input
type="text"
id="usuario"
onChange={cambiosUsuario}
value={datosUsuario.matricula}
name="matricula"
/>
<label>Contraseña:</label>
<input
type="password"
id="password"
onChange={cambiosUsuario}
value={datosUsuario.contrasena}
name="contrasena"
/>
<NavLink to="/registro">¿Aún no te has registrado?</NavLink>
<button
type="submit"
className="button"
disabled={cargando}
onClick={procesarFormulario}
>
Iniciar sesión
</button>
</form>
</div>
</div>
<footer>
<div id="footerId">
<a id="pie" href="">
uniregistro@outlook.com
</a>
</div>
<div id="footerId">
<a id="pie" href="">
uniBandeVer
</a>
</div>
<div id="footerId">
<a id="pie" href="">
4582349234
</a>
</div>
</footer>
</body>
</>
);
}
export default Login;

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -0,0 +1,54 @@
import Swal from "sweetalert2";
import storage from "./Storage/storage";
import axios from "axios";
export const show_alerta = (msj, icon) => {
Swal.fire({ title: msj, icon: icon, buttonsStyling: true });
};
export const sendRequest = async (metodo, params, url, redir = '', token = true) => {
if (token) {
const authToken = storage.get('authToken');
axios.defaults.headers.common['Authorization'] = 'Bearer ' + authToken;
}
let res;
try {
const response = await axios({ method: metodo, url: url, data: params });
res = response.data;
if (metodo !== 'GET') {
show_alerta(response.data.message, 'success');
}
if (redir !== '') {
setTimeout(() => {
window.location.href = redir;
}, 2000);
}
} catch (errors) {
let desc = '';
if (errors.response && errors.response.data && errors.response.data.errors) {
errors.response.data.errors.forEach((e) => {
desc = desc + ' ' + e;
});
}
res = errors.response ? errors.response.data : null;
console.error(desc);
}
return res;
};
export const confirmation = (name, url, redir) => {
const alert = Swal.mixin({ buttonsStyling: true });
alert.fire({
title: '¿Seguro de eliminar ' + name + '?',
icon: 'question',
showCancelButton: true,
confirmButtonText: '<i class="fa-solid fa-check"></i> Sí, eliminar',
cancelButtonText: '<i class="fa-solid fa-ban"></i> Cancelar',
}).then((result) => {
if (result.isConfirmed) {
sendRequest('DELETE', {}, url, redir);
}
});
};
export default show_alerta;

View File

@ -1,26 +1,21 @@
import React from "react";
import { createRoot } from "react-dom/client";
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
import Login from "./assets/login.jsx";
import Registro from "./assets/Registro.jsx";
import OfertaEducativa from "./assets/OfertaEducativa.jsx";
import ReactDOM from "react-dom/client";
import Licenciatura from "./assets/Licenciatura.jsx";
import Preinscripcion from "./assets/Preinscripcion.jsx";
createRoot(document.getElementById("root")).render(
import App from "./App.jsx";
import "@fortawesome/fontawesome-free/css/all.min.css";
import "bootstrap/dist/css/bootstrap.min.css";
import "bootstrap/dist/js/bootstrap.bundle.js";
import axios from "axios";
window.axios = axios;
window.axios.defaults.baseURL = "http://localhost:4567";
window.axios.defaults.headers.common["Accept"] = "application/json";
window.axios.defaults.headers.common["Content-Type"] = "application/json";
window.axios.defaults.headers.common["X-Requested-with"] = "XMLHttpRequest";
window.axios.defaults.withCredentials = true;
ReactDOM.createRoot(document.getElementById("root")).render(
<React.StrictMode>
<Router>
<Routes>
<Route path="/" element={<Login />} />
<Route path="/registro" element={<Registro />} />
<Route path="/home/:id/:nombre" element={<OfertaEducativa />} />
<Route path="/licenciatura/:id/:nombre" element={<Licenciatura />} />
<Route
path="/preinscripcion/:id/:nombre"
element={<Preinscripcion />}
/>
<Route path="/ajustes/:id/:nombre" element={<OfertaEducativa />} />
</Routes>
</Router>
<App />
</React.StrictMode>
);

View File

@ -1,41 +0,0 @@
header.headerOE{
display: inline;
width: 100%;
height: 18%;
text-align: center;
}
div.grupo1{
background-color: #444941;
}
#logo{
width: 70px;
height:min-content;
}
div.grupo2{
background-color: #444941;
margin-top: 20px;
margin-left: 30px;
padding: 15px;
text-align: left;
font-size: x-large;
}
li.tit{
background-color: #444941;
color: #ffffff;
font-size: xx-large;
font-weight: bold;
}
nav ul {
list-style-type: none;
background-color:#444941;
}
nav ul li {
display: inline;
margin-right: 80px;
}
li a{
background-color: #D5EEBB;
color:rgb(172, 104, 9);
}

View File

@ -1,65 +0,0 @@
#bodyLicenciatura{
margin-top: 11%;
}
#h1Programas{
margin-top: 0%;
padding-left: 0%;
text-align: center;
}
#opciones{
margin-left: 18%;
margin-top: 2%;
}
#informacion{
margin-left: 5%;
margin-right: 5%;
}
#labelSelect{
margin-right: 10px;
font-size: x-large;
color: #55574f;
font-weight: bold;
}
#area{
margin-right: 8%;
font-size: larger;
text-transform: capitalize;
}
#licenciaturas{
font-size: larger;
text-transform: capitalize;
}
#subtitulo{
font-size: x-large;
font-weight: bold;
}
#campusDisponibles{
font-weight: 100;
}
#campus1{
margin-right: 3%;
}
#grupoP{
margin-bottom: 2%;
}
#subtituloIngreso{
font-size: 20px;
}
#subtituloTexto{
font-size: large;
font-weight: 100;
}
.btnElegirCarrera{
display: flex;
justify-content: center;
font-family: Georgia, 'Times New Roman', Times, serif;
font-weight: bold;
font-size: x-large;
color: #D5EEBB;
background-color: #474941;
}
.btnElegirCarrera:hover{
background-color: #55574f;
}

View File

@ -1,43 +0,0 @@
h1.tituloOE{
color: #5F7A61;
text-transform: capitalize;
padding-inline:initial;
margin-top: 13%;
margin-bottom: 4%;
text-align: center;
font-size: 50px;
}
.container{
display: grid;
grid-template-columns: auto auto auto auto;
gap: 10%;
justify-content: center; /* Centra horizontalmente el contenedor */
align-items: center; /* Ajusta el ancho del contenedor según sea necesario */
}
div.area{
color: #b26705;
border: 2px solid rgba(36, 15, 103, 0.922);
font-size: x-large;
}
#areaTecnica{
margin-left: 10%;
}
#areaBiologica{
margin-right: 10%;
}
div.listaLic{
color: #474941;
}
.footerOE{
font-size:large;
padding: 20px 0; /* Espaciado interno del footer */
position:fixed; /* Hace que el footer sea fijo en la parte inferior */
width: 100%;
font-weight: bold;
}
footer.footerOE{
color: #fff;
}

View File

@ -1,18 +0,0 @@
#bodyPre{
width: 100%;
margin: 0 auto;
}
#h1Pre{
margin-top: 11%;
margin-left: 10%;
}
#p1Pre{
font-size: x-large;
}
#p2Pre{
font-size: x-large;
margin-top: 2%;
}
#labelPre{
text-transform: capitalize;
}

View File

@ -1,102 +0,0 @@
.bodyRegistro {
background-color: #e4e4df;
width: 100%;
margin: 0 auto;
}
h1.titRegistro {
text-align: center;
text-transform: capitalize;
font-size: 40px;
margin-top: 11%;
font-style: Jockey One;
color: #000000;
padding: 10px;
}
.bodyRegistro h4{
font-size: 20px;
margin-top: 1.5%;
font-style: Jockey One;
color: #000000;
padding: 10px;
}
.formRegistro {
margin-top: 20px;
padding: 10px;
display: flex;
flex-wrap: wrap;
flex-direction: row;
justify-content: space-evenly; /* Permite que los elementos se envuelvan si no caben en una sola línea */
}
.campo {
width: 28%; /* Ancho de cada campo (menos el espacio entre ellos) */
margin-left: 0%;
margin-right: 0%;
margin-top: 1.5%;
display: flex;
flex-direction: column; /* Cambiar la dirección del flujo a vertical */
overflow: hidden; /* Oculta cualquier contenido que se desborde del área del input */
}
.campo label {
padding-left: 2%;
font-size: 25px;
}
h2{
padding: 30%;
}
.h4{
padding: 30%;
align-items: center;
}
.campo input[type="text"],
.campo input[type="number"],
.campo select,
.campo input[type="password"],
.campo input[type="date"],
.campo input[type="email"] {
background-color: #D5EEBB;
width: 100%; /* Ocupar todo el ancho disponible */
padding: 5px;
border-radius: 5px;
border: 1px solid #ccc;
box-sizing: border-box;
font-size: 16px;
transition: border-color 0.3s ease;
margin-top: 0px; /* Espacio entre el label y el input */
}
.btnenviar{
text-align: center; /* Centra horizontalmente el contenido */
}
.boton {
text-align: center;
background-color: #474941;
color: #D5EEBB;
border: none;
font-size: larger;
padding: 15px 30px;
cursor: pointer;
border-radius: 20px;
margin-top: 1%;
font-weight: bold; /* Hace que el texto esté en negrita */
}
.boton:hover {
background-color: #55574f;
}
header{
text-align: center;
}
body{
margin: 0;
}

View File

@ -1,5 +0,0 @@
#inputPdf {
border: 1% solid #000;
padding: '20px';
text-align: center;
}

View File

@ -1,139 +0,0 @@
*{
background-color:#d8d8d8;
margin: auto;
box-sizing: border-box;
flex-direction: column;
}
.gridContainer {
display: grid;
grid-template-columns: 1fr 1fr; /* Dos columnas de ancho igual */
gap: 50px; /* Espacio entre las columnas */
}
.imgColum {
margin-left: 15%;
margin-top: 17%;
}
.Formulario {
font-size: 20px;
width:400px;
height: 315px;
padding: 25px;
border-radius: 5%;
}
input[type="text"], input[type="password"]{
background:#D5EEBB;
/* align-items: center; */
border-radius: 5px;
display: block;
height: 40px;
padding-left: 10px;
padding-right: 10px;
margin-left: auto;
margin-right: auto;
font-size: large;
}
header {
color: #ffffff;
background-color: #444941;
padding: 20px 0; /* Espaciado interno del encabezado */
position: fixed; /* Hace que el encabezado sea fijo */
width: 100%; /* Ancho completo del encabezado */
top: 0; /* Lo posiciona en la parte superior */
z-index: 1000; /* Asegura que esté por encima del contenido */
font-weight:bold;
font-size: x-large;
text-align: center;
margin-top: 0;
}
.encabezado{
text-align: center;
}
font{
background-color: transparent;
}
form{
margin-left: auto;
}
h1{
color: #5F7A61;
font-family: Jockey One;
text-transform: capitalize;
margin-top: 30%;
padding-left: 30%;
}
#bienvenida{
margin-top: 20%;
font-size: 40px;
}
.button{
background-color: #474941;
color:#D5EEBB;
margin-top: 30px;
margin-left: 24%;
stroke: none;
font-family: Georgia, 'Times New Roman', Times, serif;
font-weight: bold;
text-align: center;
padding: 5px 5px 5px 5px;
height: fit-content;
font-size: x-large;
}
.button:hover{
background-color: #55574f;
}
label{
color: #5F7A61;
font-family: JejuMyeongjo;
font-size: 40px;
font-weight: 400;
text-align: left;
}
#labelUsuario{
margin-left: 30%;
}
#labelContraseña{
margin-left: 24%;
}
footer{
background-color: #444941;
padding: 20px 0; /* Espaciado interno del footer */
position: absolute; /* Hace que el footer sea fijo en la parte inferior */
width: 100%; /* Ancho completo del footer */
bottom: 0; /* Lo posiciona en la parte inferior */
display: flex;
justify-content: center;
align-items: center;
flex-direction: row;
}
.footerId{
margin-left: 15px;
margin-right: 15px;
text-align: center;
font-size: large;
background-color: transparent;
font-weight: bold;
}
div a{
background-color: #444941;
color:#D5EEBB;
font-weight: bold;
}
#pie{
color: #ffffff;
}