Compare commits

11 Commits

18 changed files with 320 additions and 39 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
<!DOCTYPE html><html lang=en><head><link href=css/app.4e535138.css rel=preload as=style><link href=css/chunk-vendors.cbc2a074.css rel=preload as=style><link href=js/app.ee6afc8b.js rel=preload as=script><link href=js/chunk-vendors.5b53642e.js rel=preload as=script><link href=css/chunk-vendors.cbc2a074.css rel=stylesheet><link href=css/app.4e535138.css rel=stylesheet></head><head><meta name=viewport content="width=device-width,initial-scale=1"><meta charset=utf-8><link rel=stylesheet href=https://unpkg.com/purecss@1.0.0/build/pure-min.css integrity=sha384-nn4HPE8lTHyVtfCBi5yW9d20FjT8BJwUXyWZT9InLYax14RDjBj46LmSztkmNP9w crossorigin=anonymous><link rel=stylesheet href=https://unpkg.com/purecss@1.0.0/build/grids-responsive-min.css><link rel=stylesheet href=https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css><link rel=stylesheet type=text/css href=style.css media=screen><link rel=stylesheet href=https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css integrity=sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB crossorigin=anonymous><title>HACKATHON REGISTRO</title><link rel="shortcut icon" href=img/icono.png><body><noscript><strong>We're sorry but hack_unam doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=js/chunk-vendors.5b53642e.js></script><script src=js/app.ee6afc8b.js></script></body></head></html>
<!DOCTYPE html><html lang=en><head><link href=css/app.3cd89414.css rel=preload as=style><link href=css/chunk-vendors.e8d11e2d.css rel=preload as=style><link href=js/app.2bf72a8f.js rel=preload as=script><link href=js/chunk-vendors.921f3df1.js rel=preload as=script><link href=css/chunk-vendors.e8d11e2d.css rel=stylesheet><link href=css/app.3cd89414.css rel=stylesheet></head><head><meta name=viewport content="width=device-width,initial-scale=1"><meta charset=utf-8><link rel=stylesheet href=https://unpkg.com/purecss@1.0.0/build/pure-min.css integrity=sha384-nn4HPE8lTHyVtfCBi5yW9d20FjT8BJwUXyWZT9InLYax14RDjBj46LmSztkmNP9w crossorigin=anonymous><link rel=stylesheet href=https://unpkg.com/purecss@1.0.0/build/grids-responsive-min.css><link rel=stylesheet href=https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css><link rel=stylesheet type=text/css href=style.css media=screen><link rel=stylesheet href=https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css integrity=sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB crossorigin=anonymous><title>HACKATHON REGISTRO</title><link rel="shortcut icon" href=img/icono.png><body><noscript><strong>We're sorry but hack_unam doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=js/chunk-vendors.921f3df1.js></script><script src=js/app.2bf72a8f.js></script></body></head></html>
File diff suppressed because one or more lines are too long
+1
View File
File diff suppressed because one or more lines are too long
-1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -2455,9 +2455,9 @@
"dev": true
},
"bootstrap": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.0.tgz",
"integrity": "sha512-Z93QoXvodoVslA+PWNdk23Hze4RBYIkpb5h8I2HY2Tu2h7A0LpAgLcyrhrSUyo2/Oxm2l1fRZPs1e5hnxnliXA=="
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.2.tgz",
"integrity": "sha512-vlGn0bcySYl/iV+BGA544JkkZP5LB3jsmkeKLFQakCOwCM3AOk7VkldBz4jrzSe+Z0Ezn99NVXa1o45cQY4R6A=="
},
"bootstrap-vue": {
"version": "2.15.0",
+1 -1
View File
@@ -9,7 +9,7 @@
},
"dependencies": {
"axios": "^0.19.2",
"bootstrap": "^4.5.0",
"bootstrap": "^4.5.2",
"bootstrap-vue": "^2.15.0",
"core-js": "^3.6.5",
"sweetalert": "^2.1.2",
+2 -1
View File
@@ -11,10 +11,11 @@ import Vue from "vue";
import { BootstrapVue, IconsPlugin } from "bootstrap-vue";
Vue.use(BootstrapVue);
Vue.use(IconsPlugin);
export default {
name: "App",
name: "App"
};
</script>
+8 -8
View File
@@ -53,7 +53,7 @@ import Header from "./../view/headerAdmin.vue";
export default {
components: {
//HelloWorld
Header,
Header
},
data() {
return {
@@ -61,7 +61,7 @@ export default {
password: "",
error: false,
mal: null,
resp: null,
resp: null
};
},
methods: {
@@ -75,33 +75,33 @@ export default {
entrar() {
const data = {
usuario: this.usuario,
password: this.password,
password: this.password
};
axios
.post(`${config.api}/login`, data)
.then(async (respose) => {
.then(async respose => {
this.resp = respose.data;
if (respose.data.err == false) {
await swal(`Bienvenido ${this.usuario}`, "", "success");
window.localStorage.setItem("id_usuario", respose.data.id_usuario);
this.$router.push("/");
this.$router.push("/Registros");
} else {
this.error = true;
await swal(" Usuario o Contraseña incorrecta.", "", "error");
}
})
.catch((err) => {
.catch(err => {
swal(" Usuario o Contraseña incorrecta.", "", "error");
this.resp = err;
this.error = true;
});
},
}
},
beforeCreate() {
localStorage.clear();
},
}
};
</script>
+272
View File
@@ -0,0 +1,272 @@
<template>
<section class="admin-login">
<!--Importar componente de header para login -->
<Header />
<div>
<h1>Hackaton UNAM-AWS</h1>
</div>
<nav class="navbar navbar-expand-md navbar-light ">
<div class="container">
<div class="row">
<div class="col">
<nav class="navbar navbar-dark">
<button
class=" navbar-toggler van btn-sm colorB"
type="button"
id="toggle-menu"
data-toggle="collapse"
data-target="#navbarNav"
aria-controls="navbarNav"
aria-expanded="false"
aria-label="Toggle navigation"
v-on:click="toggle()"
>
<span class=" navbar-toggler-icon m-1"></span>
Opciones
</button>
</nav>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ml-auto">
<li class="nav-item dropdown">
<div class="nav-item nav-link " @click="numPanel = 1">
<a>Equipos</a>
</div>
</li>
<li class="nav-item dropdown">
<div class="nav-item nav-link " @click="numPanel = 2">
<a>Participantes</a>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</nav>
<div class="container" v-if="numPanel == 1">
<div class="row">
<table class="table">
<thead class="thead-dark">
<tr class="titulo">
<th scope="col">#</th>
<th scope="col">Nombre del Equipo</th>
<th scope="col">Numero de Integrantes</th>
<th scope="col">Nombre del Lider</th>
<th scope="col">Correo</th>
<th scope="col">Carrera</th>
<th scope="col">Campus</th>
<th scope="col">Fecha de Registro</th>
</tr>
</thead>
<tbody>
<tr v-for="item in registros" :key="item.idEquipo">
<th scope="row">{{ item.idEquipo }}</th>
<td>{{ item.nombreEquipo }}</td>
<td>{{ item.numeroIntegrantes }}</td>
<td>{{ item.nombre }}</td>
<td>{{ item.correo }}</td>
<td>{{ item.carrera }}</td>
<td>{{ item.campus }}</td>
<td>{{ item.fecha }}</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="container" v-if="numPanel == 2">
<div class="row">
<table class="table">
<thead class="thead-dark">
<tr class="titulo">
<th scope="col">#</th>
<th scope="col">Nombre</th>
<th scope="col">Apellido Paterno</th>
<th scope="col">Apellido Materno</th>
<th scope="col">Correo</th>
<th scope="col">Nombre del Aquipo</th>
<th scope="col">Campus</th>
<th scope="col">Carrera</th>
</tr>
</thead>
<tbody>
<tr v-for="item in persona" :key="item.idPersona">
<th scope="row">{{ item.idPersona }}</th>
<td>{{ item.nombre }}</td>
<td>{{ item.apellidoP }}</td>
<td>{{ item.apellidoM }}</td>
<td>{{ item.correo }}</td>
<td>{{ item.nombreEquipo }}</td>
<td>{{ item.campus }}</td>
<td>{{ item.carrera }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</template>
<script>
import axios from "axios";
import config from "../config/config.js";
import Header from "./../view/headerAdmin.vue";
export default {
components: {
//HelloWorld
Header
},
data() {
return {
registros: [],
numPanel: 1,
persona: []
};
},
methods: {
toggle: function() {
let element = document.getElementById("navbarNav");
element.classList.toggle("block");
element.classList.add("mystyle");
}
},
async created() {
let equipos = await axios.get(`${config.api}/getRegistro`);
equipos = equipos.data.data;
for (let i = 0; i < equipos.length; i++) {
if (equipos[i].fechaRegistro !== null) {
let time = new Date(equipos[i].fechaRegistro);
equipos[i].fechaRegistro = new Date(equipos[i].fechaRegistro)
.toISOString()
.slice(0, 19)
.split("T");
time = time.toLocaleTimeString();
equipos[i].fechaRegistro = `${equipos[i].fechaRegistro[0]} / ${time}`;
}
this.registros.push({
idEquipo: i + 1,
nombreEquipo: equipos[i].nombreEquipo,
numeroIntegrantes: equipos[i].numeroIntegrantes,
nombre: equipos[i].nombre,
correo: equipos[i].correo,
carrera: equipos[i].carrera,
campus: equipos[i].campus,
fecha: equipos[i].fechaRegistro
});
}
let personaQuery = await axios.get(`${config.api}/getPersona`);
personaQuery = personaQuery.data.data;
for (let i = 0; i < personaQuery.length; i++) {
this.persona.push({
idPersona: i + 1,
nombre: personaQuery[i].nombre,
apellidoP: personaQuery[i].apellidoP,
apellidoM: personaQuery[i].apellidoM,
correo: personaQuery[i].correo,
nombreEquipo: personaQuery[i].nombreEquipo,
campus: personaQuery[i].campus,
carrera: personaQuery[i].carrera
});
}
},
beforeCreate() {
if (!window.localStorage.getItem("id_usuario")) this.$router.push("/");
else this.id = window.localStorage.getItem("id_usuario");
}
};
</script>
<style scoped>
h1 {
margin-top: 2.5rem;
margin-bottom: 3.5rem;
font-size: 1.5rem;
}
.titulo {
font-size: 0.8rem;
}
td {
font-size: 0.8rem;
}
@media screen and (min-width: 1024px) {
h1 {
margin-top: 3rem;
margin-bottom: 4rem;
font-size: 2.5rem;
}
}
.nav-item {
-webkit-transition-duration: 0.4s; /* Safari */
transition-duration: 0.4s;
text-align: center;
}
.nav-item:hover {
background-color: #343a40;
color: white;
}
.navbar-brand {
color: white;
}
body {
overflow-x: hidden;
}
.mystyle {
text-align: left;
}
.block {
display: block;
}
a {
max-height: 100%;
}
.menu {
background-color: #bb8800;
}
.menu nav ul {
display: flex;
justify-content: space-between;
margin: 0 1rem;
}
.menu nav ul div {
display: flex;
justify-content: space-between;
}
.menu nav ul li {
list-style: none;
}
.menu nav ul li a {
display: block;
}
.van {
display: flex;
align-items: center;
justify-content: center;
color: black;
}
@media (min-width: 768px) {
.van {
display: none;
}
}
.colorB {
background-color: black;
color: white;
}
</style>
+2 -2
View File
@@ -16,8 +16,8 @@ export default {
//HelloWorld
Header,
Form,
Footer,
},
Footer
}
};
</script>
+7 -1
View File
@@ -1,5 +1,11 @@
const config = {
//api: "http://localhost:3001"
//Local
//api: "http://localhost:3000"
//Pruebas
//api: "https://venus.acatlan.unam.mx/hackaton"
//Produccion
api: "https://venus.acatlan.unam.mx/indiana_hackaton"
};
module.exports = config;
+2
View File
@@ -1,6 +1,8 @@
import Form from "./components/usuario.vue";
import Login from "./components/login.vue";
import Panel from "./components/panelAdmin.vue";
export const routes = [
{ path: "/", component: Form, name: "form" },
{ path: "/panelAdmin", component: Login, name: "Login" },
{ path: "/Registros", component: Panel, name: "Panel" }
];