funcinaliad del login
This commit is contained in:
parent
41b0f2c3aa
commit
014b5df704
|
@ -37,9 +37,11 @@ public class App
|
||||||
String payload = request.body();
|
String payload = request.body();
|
||||||
Alumno alumno = gson.fromJson(payload, Alumno.class);
|
Alumno alumno = gson.fromJson(payload, Alumno.class);
|
||||||
|
|
||||||
boolean msj = DAO.agregarAlumno(alumno);
|
Mensaje msj = DAO.agregarAlumno(alumno);
|
||||||
JsonObject respuesta = new JsonObject();
|
JsonObject respuesta = new JsonObject();
|
||||||
respuesta.addProperty("msj", msj);
|
respuesta.addProperty("contrasena", msj.getAlumno().getContrasena());
|
||||||
|
respuesta.addProperty("matricula", msj.getAlumno().getMatricula());
|
||||||
|
respuesta.addProperty("verificacion", msj.isVerificacion());
|
||||||
return respuesta;
|
return respuesta;
|
||||||
});
|
});
|
||||||
put("/editarAlumno", (request, response) ->{
|
put("/editarAlumno", (request, response) ->{
|
||||||
|
@ -58,12 +60,22 @@ public class App
|
||||||
respuesta.addProperty("existe", verificado);
|
respuesta.addProperty("existe", verificado);
|
||||||
return respuesta;
|
return respuesta;
|
||||||
});
|
});
|
||||||
get("/alumnoIniciado", (request, response) ->{
|
|
||||||
|
post("/alumnoIniciado", (request, response) ->{
|
||||||
response.type("application/json");
|
response.type("application/json");
|
||||||
String payload = request.body();
|
String payload = request.body();
|
||||||
Alumno alumno = gson.fromJson(payload, Alumno.class);
|
Alumno alumno = gson.fromJson(payload, Alumno.class);
|
||||||
return gson.toJson(DAO.alumnoIniciado(alumno.getMatricula(),alumno.getContrasena()));
|
return gson.toJson(DAO.alumnoIniciado(alumno.getMatricula(),alumno.getContrasena()));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
post("/usuarioValido", (request, response) ->{
|
||||||
|
String payload = request.body();
|
||||||
|
Alumno alumno = gson.fromJson(payload, Alumno.class);
|
||||||
|
boolean verificado = DAO.validarAlumno(alumno);
|
||||||
|
JsonObject respuesta = new JsonObject();
|
||||||
|
respuesta.addProperty("existe", verificado);
|
||||||
|
return respuesta;
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -3,9 +3,10 @@ package mx.uv.Controller;
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
import mx.uv.Model.Alumno;
|
import mx.uv.Model.Alumno;
|
||||||
|
import mx.uv.Model.Mensaje;
|
||||||
|
|
||||||
public class DAO {
|
public class DAO {
|
||||||
private static Conexion cn = Conexion.getInstance();
|
private static Conexion cn = Conexion.getInstance();
|
||||||
|
@ -23,7 +24,7 @@ public class DAO {
|
||||||
stm = conn.createStatement();
|
stm = conn.createStatement();
|
||||||
rs = stm.executeQuery(sql);
|
rs = stm.executeQuery(sql);
|
||||||
while (rs.next()) {
|
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));
|
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));
|
||||||
resultado.add(u);
|
resultado.add(u);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -40,8 +41,8 @@ public class DAO {
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
conn = cn.conectar();
|
conn = cn.conectar();
|
||||||
try {
|
try {
|
||||||
String sql ="select * from usuarios "
|
String sql ="select * from alumno "
|
||||||
+ "where matricula= '"+alumno.getMatricula()+"' and contrasena='"+alumno.getContrasena()+"'";
|
+ "where matricula= '"+alumno.getMatricula()+"' and password='"+alumno.getContrasena()+"'";
|
||||||
stm = (Statement) conn.createStatement();
|
stm = (Statement) conn.createStatement();
|
||||||
rs = stm.executeQuery(sql);
|
rs = stm.executeQuery(sql);
|
||||||
if(rs.next()){
|
if(rs.next()){
|
||||||
|
@ -56,31 +57,52 @@ public class DAO {
|
||||||
return verificacion;
|
return verificacion;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean agregarAlumno(Alumno alumno) {
|
public static Mensaje agregarAlumno(Alumno alumno) {
|
||||||
|
Mensaje mensaje = new Mensaje();
|
||||||
PreparedStatement stm = null;
|
PreparedStatement stm = null;
|
||||||
Connection conn = null;
|
Connection conn = null;
|
||||||
boolean msj= false;
|
boolean msj= false;
|
||||||
|
String matricula = "SIU24";
|
||||||
|
String password = crearContrasena();
|
||||||
|
matricula += 1000+ obtenerUltimoID();
|
||||||
|
alumno.setContrasena(password);
|
||||||
|
alumno.setMatricula(matricula);
|
||||||
conn = cn.conectar();
|
conn = cn.conectar();
|
||||||
try {
|
try {
|
||||||
String sql = "INSERT INTO `alumno`(`nombre`,`apellido`,`nacionalidad`,`matricula`,`contrasena`)VALUES(?,?,?,?,?);";
|
String sql = "INSERT INTO `alumno`(`nombre`,`apellido`,`nacionalidad`,`matricula`,`password`, `correo`)VALUES(?,?,?,?,?,?);";
|
||||||
stm = (PreparedStatement) conn.prepareStatement(sql);
|
stm = (PreparedStatement) conn.prepareStatement(sql);
|
||||||
stm.setString(1, alumno.getNombre());
|
stm.setString(1, alumno.getNombre());
|
||||||
stm.setString(2, alumno.getApellido());
|
stm.setString(2, alumno.getApellido());
|
||||||
stm.setString(3, alumno.getNacionalidad());
|
stm.setString(3, alumno.getNacionalidad());
|
||||||
stm.setString(4, alumno.getMatricula());
|
stm.setString(4, alumno.getMatricula());
|
||||||
stm.setString(5, alumno.getContrasena());
|
stm.setString(5, alumno.getContrasena());
|
||||||
if (stm.executeUpdate() > 0)
|
stm.setString(6, alumno.getCorreo());
|
||||||
msj = true;
|
if (stm.executeUpdate() > 0){
|
||||||
|
mensaje.setVerificacion(true);
|
||||||
|
mensaje.setAlumno(alumno);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
msj = false;
|
mensaje.setVerificacion(false);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
} finally {
|
} finally {
|
||||||
cerrarConexiones(stm,conn);
|
cerrarConexiones(stm,conn);
|
||||||
}
|
}
|
||||||
return msj;
|
return mensaje;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String crearContrasena() {
|
||||||
|
Random random = new Random();
|
||||||
|
String contrasena = "";
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
return contrasena.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void cerrarConexiones(PreparedStatement stm,Connection conn) {
|
private static void cerrarConexiones(PreparedStatement stm,Connection conn) {
|
||||||
|
@ -109,7 +131,7 @@ public class DAO {
|
||||||
boolean verificacion =false;
|
boolean verificacion =false;
|
||||||
conn = cn.conectar();
|
conn = cn.conectar();
|
||||||
try {
|
try {
|
||||||
String sql ="UPDATE `alumno` SET `nombre` = '"+alumno.getNombre()+"',`apellido` = '"+alumno.getApellido()+"',`fecha_nacimiento` = '"+alumno.getFechaNacimiento()+"',`nacionalidad` = '"+alumno.getNacionalidad()+"', `tipoSangre` = '"+alumno.getTipoDeSangre()+"', `contrasena`= '"+alumno.getContrasena()+"' WHERE `id` = '"+alumno.getId()+"';";
|
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()+"';";
|
||||||
stm = conn.prepareStatement(sql);
|
stm = conn.prepareStatement(sql);
|
||||||
stm.executeUpdate();
|
stm.executeUpdate();
|
||||||
verificacion = true;
|
verificacion = true;
|
||||||
|
@ -130,13 +152,13 @@ public class DAO {
|
||||||
conn = cn.conectar();
|
conn = cn.conectar();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String sql = "SELECT * FROM alumno WHERE matricula = ? AND contrasena = ?";
|
String sql = "SELECT * FROM alumno WHERE matricula = ? AND password = ?";
|
||||||
PreparedStatement stmt = conn.prepareStatement(sql);
|
PreparedStatement stmt = conn.prepareStatement(sql);
|
||||||
stmt.setString(1, matricula);
|
stmt.setString(1, matricula);
|
||||||
stmt.setString(2, contrasena);
|
stmt.setString(2, contrasena);
|
||||||
rs = stmt.executeQuery();
|
rs = stmt.executeQuery();
|
||||||
while (rs.next()) {
|
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));
|
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));
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
|
@ -145,4 +167,34 @@ public class DAO {
|
||||||
}
|
}
|
||||||
return alumno;
|
return alumno;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int obtenerUltimoID() {
|
||||||
|
Connection conn = null;
|
||||||
|
Statement stm = null;
|
||||||
|
ResultSet rs = null;
|
||||||
|
int ultimoID = -1;
|
||||||
|
|
||||||
|
try {
|
||||||
|
conn = cn.conectar();
|
||||||
|
String sql = "SELECT MAX(id) AS ultimo_id FROM alumno";
|
||||||
|
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();
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
System.err.println(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ultimoID;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,9 +9,10 @@ public class Alumno {
|
||||||
private String tipoDeSangre;
|
private String tipoDeSangre;
|
||||||
private String matricula;
|
private String matricula;
|
||||||
private String contrasena;
|
private String contrasena;
|
||||||
|
private String correo;
|
||||||
|
|
||||||
public Alumno(int id, String nombre, String apellido, String fechaNacimiento, String nacionalidad,
|
public Alumno(int id, String nombre, String apellido, String fechaNacimiento, String nacionalidad,
|
||||||
String tipoDeSangre, String matricula, String contrasena) {
|
String tipoDeSangre, String matricula, String contrasena, String correo) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.nombre = nombre;
|
this.nombre = nombre;
|
||||||
this.apellido = apellido;
|
this.apellido = apellido;
|
||||||
|
@ -20,17 +21,20 @@ public class Alumno {
|
||||||
this.tipoDeSangre = tipoDeSangre;
|
this.tipoDeSangre = tipoDeSangre;
|
||||||
this.matricula = matricula;
|
this.matricula = matricula;
|
||||||
this.contrasena = contrasena;
|
this.contrasena = contrasena;
|
||||||
|
this.correo = correo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Alumno() {
|
public Alumno() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Alumno(String nombre, String apellido, String nacionalidad, String matricula, String contrasena) {
|
public Alumno(String nombre, String apellido, String nacionalidad, String matricula, String contrasena,String correo) {
|
||||||
this.nombre = nombre;
|
this.nombre = nombre;
|
||||||
this.apellido = apellido;
|
this.apellido = apellido;
|
||||||
this.nacionalidad = nacionalidad;
|
this.nacionalidad = nacionalidad;
|
||||||
this.matricula = matricula;
|
this.matricula = matricula;
|
||||||
this.contrasena = contrasena;
|
this.contrasena = contrasena;
|
||||||
|
this.correo = correo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Alumno(String matricula, String contrasena) {
|
public Alumno(String matricula, String contrasena) {
|
||||||
|
@ -38,8 +42,6 @@ public class Alumno {
|
||||||
this.contrasena = contrasena;
|
this.contrasena = contrasena;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void setId(int id) {
|
public void setId(int id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
@ -91,4 +93,14 @@ public class Alumno {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getCorreo() {
|
||||||
|
return correo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setCorreo(String correo) {
|
||||||
|
this.correo = correo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package mx.uv.Model;
|
||||||
|
|
||||||
|
public class Mensaje {
|
||||||
|
private boolean verificacion;
|
||||||
|
private Alumno alumno;
|
||||||
|
|
||||||
|
public Mensaje(){
|
||||||
|
};
|
||||||
|
public Mensaje(boolean verificacion, Alumno alumno) {
|
||||||
|
this.verificacion = verificacion;
|
||||||
|
this.alumno = alumno;
|
||||||
|
}
|
||||||
|
public boolean isVerificacion() {
|
||||||
|
return verificacion;
|
||||||
|
}
|
||||||
|
public Alumno getAlumno() {
|
||||||
|
return alumno;
|
||||||
|
}
|
||||||
|
public void setVerificacion(boolean verificacion) {
|
||||||
|
this.verificacion = verificacion;
|
||||||
|
}
|
||||||
|
public void setAlumno(Alumno alumno) {
|
||||||
|
this.alumno = alumno;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -11,7 +11,9 @@
|
||||||
"axios": "^1.6.8",
|
"axios": "^1.6.8",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
"react-dropzone": "^14.2.3"
|
"react-dropzone": "^14.2.3",
|
||||||
|
"react-router": "^6.23.1",
|
||||||
|
"react-router-dom": "^6.23.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/react": "^18.2.66",
|
"@types/react": "^18.2.66",
|
||||||
|
@ -929,6 +931,14 @@
|
||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@remix-run/router": {
|
||||||
|
"version": "1.16.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.16.1.tgz",
|
||||||
|
"integrity": "sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@rollup/rollup-android-arm-eabi": {
|
"node_modules/@rollup/rollup-android-arm-eabi": {
|
||||||
"version": "4.14.3",
|
"version": "4.14.3",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz",
|
||||||
|
@ -3668,6 +3678,36 @@
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/react-router": {
|
||||||
|
"version": "6.23.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.23.1.tgz",
|
||||||
|
"integrity": "sha512-fzcOaRF69uvqbbM7OhvQyBTFDVrrGlsFdS3AL+1KfIBtGETibHzi3FkoTRyiDJnWNc2VxrfvR+657ROHjaNjqQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@remix-run/router": "1.16.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">=16.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/react-router-dom": {
|
||||||
|
"version": "6.23.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.23.1.tgz",
|
||||||
|
"integrity": "sha512-utP+K+aSTtEdbWpC+4gxhdlPFwuEfDKq8ZrPFU65bbRJY+l706qjR7yaidBpo3MSeA/fzwbXWbKBI6ftOnP3OQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@remix-run/router": "1.16.1",
|
||||||
|
"react-router": "6.23.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">=16.8",
|
||||||
|
"react-dom": ">=16.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/reflect.getprototypeof": {
|
"node_modules/reflect.getprototypeof": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
|
||||||
|
|
|
@ -13,7 +13,9 @@
|
||||||
"axios": "^1.6.8",
|
"axios": "^1.6.8",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
"react-dropzone": "^14.2.3"
|
"react-dropzone": "^14.2.3",
|
||||||
|
"react-router": "^6.23.1",
|
||||||
|
"react-router-dom": "^6.23.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/react": "^18.2.66",
|
"@types/react": "^18.2.66",
|
||||||
|
|
|
@ -1,7 +1,61 @@
|
||||||
import React from 'react';
|
import React, {useState} from 'react';
|
||||||
|
import axios from 'axios'
|
||||||
import './Registro.css'; // Estilo para el formulario
|
import './Registro.css'; // Estilo para el formulario
|
||||||
|
|
||||||
function Registro(){
|
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 (
|
return (
|
||||||
<div className="formulario">
|
<div className="formulario">
|
||||||
|
@ -10,27 +64,24 @@ function Registro(){
|
||||||
<form className='form'>
|
<form className='form'>
|
||||||
<div className="campo">
|
<div className="campo">
|
||||||
<label htmlFor="nombre">Nombre:</label>
|
<label htmlFor="nombre">Nombre:</label>
|
||||||
<input type="text" id="nombre" name='nombre' />
|
|
||||||
|
<input type="text" id="nombre" onChange={cambiosAlumno} name='nombre' value={alumno.nombre} />
|
||||||
</div>
|
</div>
|
||||||
<div className="campo">
|
<div className="campo">
|
||||||
<label htmlFor="apellidoPaterno">Apellido Paterno:</label>
|
<label htmlFor="apellidoPaterno">Apellidos:</label>
|
||||||
<input type="text" id="apellidoPaterno" name='apellidoPaterno' />
|
<input type="text" id="apellidoPaterno" onChange={cambiosAlumno} name='apellido' value={alumno.apellido} />
|
||||||
</div>
|
|
||||||
<div className="campo">
|
|
||||||
<label htmlFor="apellidoMaterno">Apellido Materno:</label>
|
|
||||||
<input type="text" id="apellidoMaterno" name="apellidoMaterno" />
|
|
||||||
</div>
|
</div>
|
||||||
<div className="campo">
|
<div className="campo">
|
||||||
<label htmlFor="nacionalidad">Nacionalidad:</label>
|
<label htmlFor="nacionalidad">Nacionalidad:</label>
|
||||||
<input type="text" id="nacionalidad" name="nacionalidad" />
|
<input type="text" id="nacionalidad" onChange={cambiosAlumno} name="nacionalidad" value={alumno.nacionalidad} />
|
||||||
</div>
|
</div>
|
||||||
<div className="campo">
|
<div className="campo">
|
||||||
<label htmlFor="correo">Correo:</label>
|
<label htmlFor="correo">Correo:</label>
|
||||||
<input type="correo" id="correo" name="correo" />
|
<input type="email" id="correo" onChange={cambiosAlumno} name="correo" value={alumno.correo} />
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div>
|
<div>
|
||||||
<button type="submit" className='boton'>Registrarse</button>
|
<button type="submit" className='boton' disabled={Cargando} onClick={procesarFormulario}>Registrarse</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -111,3 +111,8 @@ div a{
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.gridContainer{
|
||||||
|
width: 50%; /* Puedes ajustar esto según tus necesidades */
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,88 @@
|
||||||
import './login.css'
|
import React, {useState} from 'react';
|
||||||
|
import './login.css';
|
||||||
|
import { Link } from 'react-router-dom';
|
||||||
|
import axios from 'axios';
|
||||||
|
|
||||||
function Login() {
|
function Login() {
|
||||||
|
const [Cargando, setCargando] = useState(false);
|
||||||
|
const [datosUsuario, setDatosUsuario] = useState({
|
||||||
|
matricula: "",
|
||||||
|
contrasena: "",
|
||||||
|
});
|
||||||
|
const [usuario, setUsuario] = useState({
|
||||||
|
id: 0,
|
||||||
|
nombre: "",
|
||||||
|
contrasena: "",
|
||||||
|
correo: "",
|
||||||
|
});
|
||||||
|
|
||||||
|
const limpiar = () => {
|
||||||
|
setDatosUsuario((prev) => ({
|
||||||
|
matricula: "",
|
||||||
|
contrasena: "",
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
//peticion al Backend para ver si el usuario existe en la BD
|
||||||
|
const hacerPeticion = async () => {
|
||||||
|
try {
|
||||||
|
const res = await axios.post(
|
||||||
|
"http://localhost:4567/usuarioValido",
|
||||||
|
datosUsuario
|
||||||
|
);
|
||||||
|
return res.data;
|
||||||
|
} catch (error) {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//peticion al Backend para regresar el usuario Iniciado
|
||||||
|
const obtenerUsuario = async () => {
|
||||||
|
try {
|
||||||
|
const res = await axios.post(
|
||||||
|
"http://localhost:4567/alumnoIniciado",
|
||||||
|
datosUsuario
|
||||||
|
);
|
||||||
|
return res.data;
|
||||||
|
} catch (error) {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//prosesamiento de Uusario.
|
||||||
|
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();
|
||||||
|
window.location.href = '/home';
|
||||||
|
} 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 (
|
return (
|
||||||
<>
|
<>
|
||||||
<body>
|
<body>
|
||||||
|
@ -12,11 +94,12 @@ function Login() {
|
||||||
<div className='loginColum'>
|
<div className='loginColum'>
|
||||||
<h1>Bienvenido</h1>
|
<h1>Bienvenido</h1>
|
||||||
<form className='Formulario'>
|
<form className='Formulario'>
|
||||||
<label id='usuario'>Usuario:</label>
|
<label id='usuario'>Matricula:</label>
|
||||||
<input type='text' id='usuario'/>
|
<input type='text' id='usuario' onChange={cambiosUsuario} value={datosUsuario.matricula} name='matricula'/>
|
||||||
<label>Contraseña:</label>
|
<label>Contraseña:</label>
|
||||||
<input type="password" id='password'/>
|
<input type="password" id='password' onChange={cambiosUsuario} value={datosUsuario.contrasena} name='contrasena'/>
|
||||||
<button id='button' >Iniciar sesion</button>
|
<a><Link to='/registro'>¿Aún no te has registrado?</Link></a>
|
||||||
|
<button id='button' typeof='submit' disabled={Cargando} onClick={procesarFormulario} >Iniciar sesion</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,16 +1,18 @@
|
||||||
import React from 'react'
|
import React from 'react';
|
||||||
import ReactDOM from 'react-dom/client'
|
import { createRoot } from 'react-dom/client'; // Importar desde "react-dom/client"
|
||||||
|
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
|
||||||
|
import Login from './login.jsx'
|
||||||
|
import Registro from './Registro.jsx';
|
||||||
import OfertaEducativa from './OfertaEducativa.jsx'
|
import OfertaEducativa from './OfertaEducativa.jsx'
|
||||||
|
|
||||||
|
createRoot(document.getElementById('root')).render(
|
||||||
import './Registro.css'
|
|
||||||
import './login.css'
|
|
||||||
|
|
||||||
|
|
||||||
ReactDOM.createRoot(document.getElementById('root')).render(
|
|
||||||
<React.StrictMode>
|
<React.StrictMode>
|
||||||
<OfertaEducativa/>
|
<Router>
|
||||||
</React.StrictMode>,
|
<Routes>
|
||||||
)
|
<Route path='/' element={<Login />} />
|
||||||
|
<Route path='/registro' element={<Registro />} />
|
||||||
|
<Route path='/home' element={<OfertaEducativa />}/>
|
||||||
|
</Routes>
|
||||||
|
</Router>
|
||||||
|
</React.StrictMode>
|
||||||
|
);
|
||||||
|
|
Loading…
Reference in New Issue