Base de Datos
Base de Datos
AUTORES:
belleza de manos y pies de los clientes, con productos y servicios innovadores de excelente
internacionales. CERESCOS SAS es una empresa que cuenta con más de 300 empleados
Convivencia a las dependencias de gestión del recurso humano y salud ocupacional de las
empresas e instituciones públicas y privadas. Estos comités funcionan con dos personas
delegado, estas personas son elegidas por el voto de los colaboradores de la compañía
quienes son los encargados de elegir a los representantes, es decir, se presenta convocatoria
informa que se encuentran abiertas las inscripciones para participar en la elección de los
compañía.
Una vez cumplido el plazo de inscripción se validan las personas interesas para ser
representantes de cada comité, se diseñan e imprimen tarjetones que son entregados a cada
colaborar de la empresa para que vote según sus preferencias por los representantes de cada
comité para depositar su voto en una urna, la empresa también cuenta con sucursales en
varias partes del país y estos colaboradores también participan en el proceso, para ello el
director de cada regional es el encargado de distribuir los tarjetones y hacer llegar la urna
realizan en ellas, se han creado distintos grupos de trabajo, los cuales se clasifican de
distintas maneras, pero siempre persiguen un mismo fin: tratar de tomar la mejor decisión
enormemente, cuando las reuniones de comités son conducidas debidamente y sirven para
Los comités como los equipos al ser “grupos” pasan por distintas etapas en su
formación y ya cuando se encuentran bien definidos tienen distintas funciones. Los grupos
de trabajo en general tienen sus ventajas y desventajas, pero creemos que el éxito de estos
depende mucho de la empresa y de qué tan buena sea su organización, que aterricen en
reglamentado para evitar el fraude electoral. La organización cuenta con un con sistema de
escrutinio manual el cual se realiza básicamente en tres etapas sucesivas: conteo voto por
voto de cada urna en Las sucursales, escrutinio provisorio de los votos, escrutinio
definitivo.
Al realizar el conteo de votos de todas las sucursales de la empresa, este es un tema
tedioso para las personas encargadas del proceso, por lo tanto, es importante la
la compañía, una opción para estos eventos es el sistema de voto electrónico, que tiene
como objetivo facilitar al elector el ejercicio del voto, eliminando las barreras iniciales que
puedan tener algunos votantes ante las nuevas tecnologías. Se trata de votación en línea con
Para el proyecto se usará el sistema de votación en línea ya que cumple con las
cualquier parte del país con una maquina conectada a internet reduciendo la logística que
conlleva un proceso electoral y ahorrando recursos que esta conlleva para la empresa. Este
sistema de votación cubrir los requisitos funcionales en el proceso de votación, así como
los servicios de seguridad necesarios para protegerse de los posibles ataques provenientes
de la red.
2. Objetivos
[Link]
[Link]íficos
auditable y seguro.
3. Marco Teórico
agrupan en:
directamente desde un aparato electrónico que puede disponer de pantalla táctil, botones
físicos, etc. La información sobre la votación se almacena en el disco duro del aparato. Al
central, que se encarga de realizar el escrutinio. Existen sistemas de votos RED con y sin
• Reconocimiento Óptico de Marcas (OMR, por sus siglas en inglés), IDEA, 2011,
funcionan a partir de lectores ópticos que reconocen la opción marcada por el votante en
Estas máquinas producen un papel para ser leído por la máquina o un comprobante
electrónico que contiene la opción escogida por el elector. Este comprobante se introduce
• Sistemas de votación en línea, IDEA,2011. Los votos son transmitidos por internet a un
servidor central para su conteo. Pueden ser emitidos ya sea desde computadoras públicas,
desde kioscos ubicados en las mesas de votación, o desde cualquiera computadora con
Para el proyecto se usará el sistema de votación en línea ya que cumple con las
cualquier parte del país con una maquina conectada a internet reduciendo la logística que
conlleva un proceso electoral y ahorrando recursos que esta conlleva para la empresa. Este
sistema de votación cubrir los requisitos funcionales en el proceso de votación, así como
los servicios de seguridad necesarios para protegerse de los posibles ataques provenientes
de la red.
siguientes criterios:
detectados.
La metodología usada para el desarrollo del sistema desde el punto de vista general del
que el cliente necesita para la elaboración del sistema. Se debe empezar por conocer
necesaria para albergar la base de datos del sistema. Una vez terminada la
construcción de todos los componentes del sistema se realizan las pruebas, durante
los usuarios y los administradores del sistema puedan usar el software de forma
correcta.
esta forma pueden empezar a utilizarlo. Esta fase incluye también la formación
en producción validando que cumple los requisitos de negocio solicitados antes del
Estas etapas permiten establecer una serie de pasos mediante las cuales se procede al
funcional) que componen el entregable, sirve para asegurar que el proyecto incluye todo el
trabajo
requerido para completarlo exitosamente. El WBS del proyecto está orientado a las fases y
Definición de Objetivos
Identificación de tareas
Supuestos:
Requisitos no funcionales
Requisitos no funcionales
Diseño físico
Diccionario de datos
Supuestos:
Riesgos:
3.1. Creación de la BD
3.2. Diseño de cursores,
disparadores, procedimientos
almacenados.
3.3. Seguridad de la BD
3.4. Programa de BI
Objetivo del Paquete de Trabajo: Crear la base de datos con sus respectivos objetos de bases de datos
necesarios para que el sistema cumpla con los requerimientos establecidos.
Implementación de cursores
Implementación de disparadores
Pruebas ACID
Riesgos:
Dependencias:
Fechas programadas: Esta documentación se va construyendo a medida que termina cada fase del
ciclo de vida del software, por lo tanto, los tiempos ya están incluidos en los
paquetes anteriores.
Supuestos:
Riesgos:
Dependencias:
5. Cronograma de actividades
1. Inicio del
Proyecto
1.1. Búsqueda y Análisis de Documentación 9/01/2019 11/01/2019
2. Planificación del Proyecto
2.1. Descripción Planteamiento del Problema 11/01/2019 13/01/2019
2.2. Descripción de la Justificación 13/01/2019 13/01/2019
2.3. Definición de Objetivos 14/01/2019 14/01/2019
2.4. Identificación de tareas 15/01/2019 15/01/2019
2.5. Estructura de descomposición del trabajo (WBS) 16/01/2019 18/01/2019
2.6. Elaboración Documento 18/01/2019 19/01/2019
3. Análisis y Diseño
3.1. Análisis
3.1.1. Panorama 19/01/2019 20/01/2019
3.1.2. Requisitos funcionales 20/01/2019 20/01/2019
3.1.3. Requisitos no funcionales 21/01/2019 22/01/2019
3.2. Diseño Modelos del sistema
3.2.1. Diseño conceptual de la base de datos 22/01/2019 23/01/2019
3.2.2. Normalización de la base de datos 23/01/2019 25/01/2019
3.2.3. Diseño lógico de la base de datos 25/01/2019 26/01/2019
3.2.4. Diseño fisico 26/01/2019 28/01/2019
3.2.5. Diccionario de datos 28/01/2019 29/01/2019
4.3. Instalación y configuración SGBD 29/01/2019 31/01/2019
4.4. Elaboración Documento 31/01/2019 4/02/2019
4. Desarrollo e implementación
4.1. Cuestiones de control de integridad referencial 5/02/2019 6/02/2019
4.2. Diseño y e implementación de script de creación de base de datos y tablas 7/02/2019 9/02/2019
4.3. Elaboración Documento de implementación 9/02/2019 9/02/2019
4.4. Consultas SQL y reportes según requerimientos del sistema 10/02/2019 10/02/2019
4.5. Implementación de cursores 10/02/2019 10/02/2019
4.6. Implementación de procedimientos almacenados 11/02/2019 11/02/2019
4.7. Implementación de disparadores 11/02/2019 11/02/2019
4.8. Cuestiones de seguridad de la base de datos 12/02/2019 12/02/2019
4.9. Documentación del proceso de refinamiento y pruebas de performance de la base de datos 13/02/2019 15/02/2019
4.10. Diseño e Implementación del programa de Inteligencia de Negocios 15/02/2019 17/02/2019
4.10.1. Implementación y llenado de la bodega de datos 17/02/2019 18/02/2019
4.10.2. Presentación y análisis de la información a través de cubos OLAP 18/02/2019 19/02/2019
4.10.3. Documentación código fuente de la aplicación 19/02/2019 20/02/2019
4.11. Diseño de manual de administración y usuario final de la aplicación y la base de datos 21/02/2019 22/02/2019
4.12. Diseño manual de Descripción de los requerimientos mínimos en hardware y software 22/02/2019 22/02/2019
4.13. Documentación de la calidad de la experiencia 23/02/2019 24/02/2019
5. Pruebas
5.1. Pruebas con álgebra relacional 24/02/2019 24/02/2019
5.2. Pruebas con cálculo relacional 24/02/2019 25/02/2019
5.3. Pruebas ACID 25/02/2019 25/02/2019
6. Sistema propuesto
de datos para la gestión de la información del proceso de voto electrónico “i-vote” se deben
identificar de manera implícita los elementos que conforman la base de datos: tablas,
voto en la compañía:
Administrador
Usuarios
Categorías de comité
Votación
proceso de diseño de casos de usos, para poder apreciar lo que se necesita, como se necesita
completamente manual, no hay soporte de los votantes, ni controles que permitan asegurar
Requisito 1 Registro.
Requisito 2 Elección.
mismo tiempo los cuales se caracterizan por tener una fecha de inicio y de
la votación.
Requisito 3 Tarjetones.
Requisito 4 Votaciones.
o El sistema deberá mostrar las listas electorales, una vez que el usuario sea
validado.
candidatos presentados.
luego.
Requisito 5 Contabilización.
o El sistema debe permitir consultar los datos del histórico de las elecciones.
[Link] no funcionales
Requisito 1 Controles.
o No se debe tener registro del candidato por el cual voto cada persona
Anexo 3. Formato de Requerimientos
NOMBRE DEL PROYECTO: Sistema de votación Electrónica i-vote SIGLAS DEL PROYECTO
Requisitos Funcionales
Director Recursos humanos Alta Requisito 1 Registro. oEl sistema deberá permitir registrar usuarios,
cada usuario se caracteriza por tener un nombre
Personal de la compañía de usuario, un número de identificación, el
género, fecha de nacimiento y una contraseña
para acceder al sistema, que será entregada a
cada usuario en un documento secreto vía
correo certificado.
Director Recursos humanos Alta Requisito 2 Elección. oEl sistema debe permitir la ejecución de varios
procesos electorales al mismo tiempo los cuales
se caracterizan por tener una fecha de inicio y
de fin para realizar la elección, así como, la hora
de inicio y de terminación de la votación.
Director Recursos humanos Alta Requisito 3 oEl sistema deberá permitir generar la lista de
Tarjetones. los candidatos (que se caracterizan por tener un
Personal de la compañía número de identificación, nombre completo,
imagen, género, fecha de nacimiento y número
de la lista de candidatos).
Director Recursos humanos Alta Requisito 4 oEl sistema deberá mostrar las listas electorales,
Votaciones. una vez que el usuario sea validado.
Personal de la compañía
oEl sistema deberá permitirle al votante que
realice su elección entre los candidatos
presentados.
Director Recursos humanos Alta Requisito 5 oEl sistema deberá contabilizar los votos
almacenados y los votos cancelados.
Personal de la compañía Contabilización.
oEl sistema debe permitir conocer el ganador de
cada elección.
Director Recursos humanos Requisito 1 oUna persona solo puede emitir un voto en
Controles. cada proceso electoral.
Personal de la compañía
oUna vez confirmado el voto no podrá ser
modificado ni anulado.
reglas que permitirán evitar la redundancia de los datos, problemas de actualización de los
datos en las tablas y protegerán la integridad de los datos. Estas reglas son conocidas como
formas normales. El cumplimiento de las tres primeras formas normales es suficiente para
cubrir las necesidades de la mayoría de las bases de datos. El creador de estas 3 primeras
Primer nivel de normalización: Para estar en primera forma normal las tablas deben
Segundo nivel de normalización: La segunda forma normal indica que para el caso
Tercer nivel de normalización: La tercera forma normal indica que todos los valores
La base de datos se encuentra en su tercera forma normal ya que cumple con las
reglas indicadas.
La integridad referencial indica que una base de datos no puede tener valores de
claves externas sin pareja. Una clave externa es una columna en una tabla de base de datos
que tiene valores que están en la columna de clave primaria, un identificador único que
identifica una fila en una tabla, en otra tabla. Por ejemplo, en la entidad Persona existe una
columna llamada “Id Sucursal”, esta es una clave externa ya que es la clave primaria de la
Entidad “Sucursal”, por lo tanto, el Personal solo puede estar ligado a una sucursal que
Para hacer cumplir esta integridad referencial se usa el sistema gestor de base de
datos. En el momento de crear las tablas por medio de código SQL se crean también estas
relación.
Restricción: en caso de borrado, consiste en no permitir borrar una tupla si tiene una
(2001)).
tupla t que tiene una clave primaria referenciada, y borrar también todas las tuplas
de una tupla t que tiene una clave primaria referenciada, y modificar del mismo
Anulación: caso de borrado consiste en permitir el borrado de una tupla t que tiene
una clave referenciada y, además, modificar todas las tuplas que referencian t, de
modo que los atributos de la clave foránea correspondiente tomen valores nulos. De
modificación de atributos de la clave primaria de una tupla t que tiene una clave
referenciada y, además, modificar todas las tuplas que referencian t, de modo que
los atributos de la clave foránea correspondiente tomen valores nulos, (Date, C.J.
(2001)).
los cuales son ordenes que el sistema ejecuta de manera automática al detectar
El álgebra relacional permite construir nuevas relaciones a partir de otras, por ejemplo, se
tienen las relaciones iniciales o los datos almacenados entonces las nuevas relaciones se
o σ IdSucursal=100 (PERSONAL)
empleados.
(σFechaInicio=’01/01/2018’(PROCESOELECTORAL))
cerrado.
o PE_CE
←σEstadoProcesoElectoral=‘cerrado’(PROCESOELECTORAL)
VOTANTES
100
IdSucursal = 100 }
o { t / ∃ s ∈ Personal(t[nombres] = s[nombres]
(<IdPersonal,IdProcesoElectoral,IdInscripcionProcesoElectoral,Numero
Lista,EstadoInscripcion> Candidatos
^ ∃ EstadoProcesoElectoral
(<IdInscripcionProcesoElectoral,NombreProcesoElectoral,EstadoProcesoElect
Este formato permite la visualización de los tipos de datos, longitud y demás datos técnicos
Diccionario de Datos
TABLA ATRIBUTO TIPODEDATO NULO LONG. LLAVE DESCRIPCIÓN TABLA O ENTIDAD FORANEA
IdPersona INTEGER No Si Sucursal/IdSucursal
Cedula INTEGER No
Nombres VARCHAR No 50
Apellidos VARCHAR No 50
Fecha_Nacimiento DATE No Entidad que
Direccion VARCHAR No 100 contiene
información del
Personal Telefono INTEGER No
personal que
IdSucursal INTEGER No labora en la
Cargo VARCHAR No 50 organización
Genero VARCHAR No 1
Correo_Electronico VARCHAR No 50
Imagen VARCHAR No 200
EstadoPersona VARCHAR No 10
Entidad que
IdProcesoElectoral INTEGER No Si contiene
NombreProcesoElectoral VARCHAR No 100 información de
ProcesoElectoral
FechaInicio DATETIME No los procesos
FechaCierre DATETIME No electorales de la
EstadoProcesoElectoral VARCHAR No 10 compañía
Entidad que Departamento\IdDepartamento
IdMunicipio INTEGER No Si contiene
NombreMunicipio VARCHAR No 100 información de
Municipio los municipios
del país en donde
tiene sucursales
IdDepartamento INTEGER No la empresa
Entidad que
IdDepartamento INTEGER No Si contiene
información de
los
Departamento
departamentos
en donde tiene
sucursales la
NombreDepartamento VARCHAR No 100 empresa
El diseño físico se divide en varias fases, cada una de ellas compuesta por una serie
de pasos:
Figura 11 Cursores
Para ejecutar el procedimiento del clic en ejecutar e ingrese los datos de la persona
Figura 27 Ejecución
Procedimiento:
Un disparador es un objeto con nombre dentro de una base de datos el cual se asocia
con una tabla y se activa cuando ocurre en ésta un evento en particular. (Guebs. 2105). El
Triggers se puede ejecutar cuando se ejecuta una de las siguientes sentencias MySQL en la
tabla: INSERT, UPDATE y DELETE. Se puede invocar antes o después del evento.
Al dar clic en agregar disparador aparecerá una nueva ventana que solicita los
parámetros y consultas SQL a ejecutar por el disparador
Figura 32 Parámetros y consultas SQL a ejecutar por el disparador
19. Cuestiones de seguridad de la base de datos
Aparte de la seguridad que tiene el motor de la base de datos por defecto se tuvo en
cuenta los siguientes aspectos técnicos para la seguridad:
[Link]ón de privilegios
[Link] valida los privilegios que posee la base de datos
Select * from db
[Link] de configuración
[Link] configura el parámetro Safe-show-database el cual solo permite
la modificación de las tablas de las cuales tenga establecido algún tipo de
privilegio
[Link] de usuario
[Link] asigna válida y asigna una contraseña al usuario root (usuario
por defecto de la base de datos)
[Link] remoto
[Link] controla que las conexiones a la base de datos se realice
remotamente con el parametro MYSQLD_OPTIONS=”–skip-networking”
en el archivo [Link]
20. Documentación del proceso de refinamiento y pruebas de performance de la base
de datos.
21. Diseño e Implementación del programa de Inteligencia de Negocios,
implementación y llenado de la bodega de datos, presentación y análisis de la
información a través de cubos OLAP.
Para realizar de reportes tipo cubos OLAP se puede crear una conexión desde Excel
para empezar analizar la información, para ella es necesario descargar e instalar el conector
[Link], el cual se puede descargar del sitio web
[Link]
El siguiente paso es crear una conexión a la base de datos para ello hay que dar
doble clic en el botón de mysql for Excel y luego en el panel que aparece en la parte
derecha dar clic en “New connection”, se ingresan los datos del sistema
Se da clic en text connection, para validar que todo funcionando correctamente
Y se puede visualizar que se tiene la conexión ya creada
Desde esta herramienta también es posible ver y ejecutar los procedimientos almacenados.
Por ejemplo si deseamos consultar la información de una persona
Clic sobre el nombre del procedimiento almacenado
Clic en “Import MySQL Data”
Ingresar el número de cedula de la persona que se desea consultar
Se oprime el botón “call”, se obtendrá la información deseada:
El registro se almaceno.
Se pueden generar las listas de votación para los procesos electorales con el procedimiento
“proc_consulta_Candidato”
Dar clic en import y se tendrá la data en Excel
Como se puede ver también es posible empezar a trabajar tablas dinámicas a partir
de la información importada.
También es posible hacer análisis de por ejemplo cada persona en cuantos procesos
electorales ha participado.
22. Código fuente de la aplicación, debidamente documentado.
<?php
//header("location: [Link]");
}else {
$acceso="denegado";
}
break;
}}
?>
<div class="container-fluid">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h1 class="text-center">Sistema de Votación i-vote</h1>
</div>
</div>
<hr>
</div>
<div class="container">
<div class="center-block col-md-4 col-xs-8">
<form action="[Link]" role="form" method="post">
<div class="form-group">
<label for="Usuario">Usuario</label>
<input type="text" name="usuario" class="form-control" id="usuario"
placeholder="Usuario">
</div>
<div class="form-group">
<label for="ejemplo_password_1">Contraseña</label>
<input type="password" name="clave" class="form-control"
id="ejemplo_password_1"
placeholder="Contraseña">
</div>
<input type ="submit" class="btn btn-primary" name="boton"
Value="Ingresar">
<input type ="submit" class="btn btn-danger" name="boton"
Value="Cancelar">
</form>
</div>
</div>
<div align="center">
<?php
if ($acceso=="denegado") {
echo "<h1>Acceso denegado.. Usuario o clave erronea...</h1>";
}
if ($vacio=="si") {
echo "<h1>Debe ingresar Usuario y clave</h1>";
}
?>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/[Link]"></script>
<!-- Include all compiled plugins (below), or include individual files as
needed -->
<script src="js/[Link]"></script>
</body>
</html>
Menú administrador
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Sistema de Votación</title>
<!-- Bootstrap -->
<link href="css/[Link]" rel="stylesheet">
<link href="css/[Link]" rel="stylesheet">
<!-- HTML5 shim and [Link] for IE8 support of HTML5 elements and
media queries -->
<!-- WARNING: [Link] doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script
src="[Link]
<script
src="[Link]
<![endif]-->
</head>
<body>
session_start();
if (isset($_POST["persona"])) {
$persona=$_POST["persona"];
}
if (isset($_POST["boton"])) {
$boton=$_POST["boton"];
switch ($boton) {
case "Ingresar":
if (empty($persona) ) {
$vacio="si";
break;
}
$sql="SELECT * FROM personal WHERE cedula = '$persona' ";
$resultado=mysqli_query ($cx,$sql);
$datos=mysqli_fetch_array($resultado);
$alu=$datos["cedula"];
$nombre=$datos["nombres"];
$Apellidos=$datos["Apellidos"];
if ($persona==$per) {
$_SESSION["nombres"]=$datos["nombres"];
$_SESSION["Apellidos"]=$datos["Apellidos"];
$_SESSION["cedula"]=$datos["cedula"];
$_SESSION["permiso"]="Acceso Permitido";
?>
<script>
[Link]="[Link]";
</script>
<?php
//header("location: [Link]");
}else {
$acceso="denegado";
}
break;
}
}
?>
<div class="container-fluid">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h1 class="text-center">Sistema de Votación</h1>
</div>
</div>
<hr>
</div>
<div class="container">
<div class="center-block col-md-6 col-xs-8">
<h2>Bienvenido Al Modulo de Administración</h2>
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/[Link]"></script>
<!-- Include all compiled plugins (below), or include individual files as
needed -->
<script src="js/[Link]"></script>
</body>
</html>
Registrar usuarios
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Sistema de Votación</title>
<!-- Bootstrap -->
<link href="css/[Link]" rel="stylesheet">
<link href="css/[Link]" rel="stylesheet">
<!-- HTML5 shim and [Link] for IE8 support of HTML5 elements and media
queries -->
<!-- WARNING: [Link] doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script
src="[Link]
<script src="[Link]
<![endif]-->
</head>
<body>
<nav class="navbar navbar-default">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
data-target="#defaultNavbar1"><span class="sr-only">Toggle
navigation</span><span class="icon-bar"></span><span class="icon-
bar"></span><span class="icon-bar"></span></button>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="defaultNavbar1">
<div class="menu1 col-md-7 col-md-offset-3">
</div>
</div>
</div>
</nav>
<?php
require_once("bd/[Link]");
error_reporting(E_ALL ^ E_NOTICE);
$vacio = isset($_POST['variable']) ? $_POST['variable'] : null ;
$acceso = isset($_POST['variable']) ? $_POST['variable'] : null ;
session_start();
$IdPersona=$_SESSION["IdPersona"];
$sql1="SELECT Cedula, Nombres,Apellidos FROM personal WHERE IdPersona =
'$IdPersona'";
$resultado2=mysqli_query ($cx,$sql1);
$datos2=mysqli_fetch_array($resultado2);
$per2=$datos2["Cedula"];
$nombres=$datos2["Nombres"];
$apellidos=$datos2["Apellidos"];
if (empty($acceso)) {
}
if (isset($_POST["nombre"])){
$nombre=$_POST["nombre"];
}else{
$nombre="";
}
if (isset($_POST["cedula"])){
$cedula=$_POST["cedula"];
}else{
$cedula="";
}
if (isset($_POST["boton"])) {
$boton=$_POST["boton"];
switch ($boton) {
case "guardar":
if (empty($cedula)){
?>
<script>
alert('Por favor ingrese la contraseña');
</script>
<?php
break;
}
if (empty($nombre)){
?>
<script>
alert('Confirme la contraseña');
</script>
<?php
break;
}
if (($nombre)<>($cedula)){
?>
<script>
alert('Las contraseñas no coinciden, intentelo de nuevo');
</script>
<?php
break;
}
}
?>
<div class="container-fluid">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h1 class="text-center">Modulo de registro de Votantes</h1>
</div>
</div>
<hr>
</div>
<div class="container">
<div class="center-block col-md-4 col-xs-8">
<td><?php echo "<font size='5' color='blue'>Bienvenido:</font>"."<font size='5'
color='red'>".$_SESSION["nombre"]."</font>";
echo "<font size='4' color='black'><p>$nombres $apellidos</p></font>";
echo "<font size='4' color='black'><p>Cedula No.: $per2</p></font>";
?></td>
<form name ="acceso" action="cargar_personal.php" role="form" method="post">
<div class="form-group">
<div class="form-group">
<label for="Usuario">Ingrese la contraseña </label>
<input type="password" name="cedula" class="form-control" id="cedula"
placeholder="">
</div>
<div class="form-group">
<label for="ejemplo_password_1">Confirme su contraseña</label>
<input type="password" name="nombre" class="form-control" id="nombre"
placeholder="">
</div>
<?php
?>
<br> <input type ="submit" class="btn btn-primary" name="boton"
Value="guardar">
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/[Link]"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/[Link]"></script>
</body>
</html>
<!-- HTML5 shim and [Link] for IE8 support of HTML5 elements and media
queries -->
<!-- WARNING: [Link] doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="[Link]
<script src="[Link]
<![endif]-->
</head>
<body>
<nav class="navbar navbar-default">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
data-target="#defaultNavbar1"><span class="sr-only">Toggle navigation</span><span
class="icon-bar"></span><span class="icon-bar"></span><span class="icon-
bar"></span></button>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="defaultNavbar1">
<div class="menu1 col-md-7 col-md-offset-3">
</div>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container-fluid -->
</nav>
<?php
require_once("bd/[Link]");
error_reporting(E_ALL ^ E_NOTICE);
$vacio = isset($_POST['variable']) ? $_POST['variable'] : null ;
$acceso = isset($_POST['variable']) ? $_POST['variable'] : null ;
session_start();
$IdPersona=$_SESSION["IdPersona"];
$sql1="SELECT Cedula, Nombres,Apellidos FROM personal WHERE IdPersona =
'$IdPersona'";
$resultado2=mysqli_query ($cx,$sql1);
$datos2=mysqli_fetch_array($resultado2);
$per2=$datos2["Cedula"];
$nombres=$datos2["Nombres"];
$apellidos=$datos2["Apellidos"];
case "salir":
}
}
?>
<div class="container">
<div class="center-block col-md-4 col-xs-8">
<td><?php
echo "<font size='4' color='black'><p>$nombres $apellidos</p></font>";
echo "<font size='3' color='black'><p>Cedula No.: $per2</p></font>";
echo "<font size='3' color='black'><p>Su id de usuario para el ingreso al sistema de
votación es: $per3</p></font>";
?></td>
<form name ="acceso" action="[Link]" role="form" method="post">
<div class="form-group">
<?php
?>
<br> <input type ="submit" class="btn btn-primary" name="boton" Value="salir">
<!--<input type ="submit" class="btn btn-danger" name="boton" Value="Salir">-->
</form>
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/[Link]"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/[Link]"></script>
</body>
</html>
Registrar procesos electorales
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Sistema de Votación</title>
<!-- Bootstrap -->
<link href="css/[Link]" rel="stylesheet">
<link href="css/[Link]" rel="stylesheet">
<!-- HTML5 shim and [Link] for IE8 support of HTML5 elements and media
queries -->
<!-- WARNING: [Link] doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script
src="[Link]
<script src="[Link]
<![endif]-->
</head>
<body>
<nav class="navbar navbar-default">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
data-target="#defaultNavbar1"><span class="sr-only">Toggle
navigation</span><span class="icon-bar"></span><span class="icon-
bar"></span><span class="icon-bar"></span></button>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="defaultNavbar1">
<div class="menu1 col-md-7 col-md-offset-3">
<ul class="nav navbar-nav">
<li class="active">
<li><a href="cargar_personal.php">Registro Persona</a></li>
<li><a href="cargar_procesoselec.php">Cargar Elecciones</a></li>
<li><a href="cargar_candidato.php">Registro candidato</a></li>
<li><a href="[Link]">Resultados</a></li>
<li><a href="[Link]">Votación</a></li>
</ul>
</div>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container-fluid -->
</nav>
<?php
require_once("bd/[Link]");
error_reporting(E_ALL ^ E_NOTICE);
$vacio = isset($_POST['variable']) ? $_POST['variable'] : null ;
$acceso = isset($_POST['variable']) ? $_POST['variable'] : null ;
session_start();
$IdPersona=$_SESSION["IdPersona"];
$sql1="SELECT Cedula, Nombres,Apellidos FROM personal WHERE IdPersona =
'$IdPersona'";
$resultado2=mysqli_query ($cx,$sql1);
$datos2=mysqli_fetch_array($resultado2);
$per2=$datos2["Cedula"];
$nombres=$datos2["Nombres"];
$apellidos=$datos2["Apellidos"];
if (empty($acceso)) {
}
if (isset($_POST["nombre"])){
$nombre=$_POST["nombre"];
}else{
$nombre="";
}
if (isset($_POST["cedula"])){
$cedula=$_POST["cedula"];
}else{
$cedula="";
}
if (isset($_POST["nombre2"])){
$nombre2=$_POST["nombre2"];
}else{
$nombre2="";
}
if (isset($_POST["estado"])){
$estado=$_POST["estado"];
}else{
$estado="";
}
if (isset($_POST["boton"])) {
$boton=$_POST["boton"];
switch ($boton) {
case "guardar":
if (empty($cedula)){
?>
<script>
alert('Por favor ingrese el nombre del proceso electoral');
</script>
<?php
break;}
if (empty($nombre)){
?>
<script>
alert('Ingrese la fecha de inicio');
</script>
<?php
break;
}
if (empty($nombre2)){
?>
<script>
alert('Ingrese la fecha de cierre');
</script>
<?php
break;
}
if (empty($estado)){
?>
<script>
alert('Ingrese el estado');
</script>
<?php
break;
}
$sql="INSERT INTO procesoelectoral ( NombreProcesoElectoral, FechaInicio,
FechaCierre, EstadoProcesoElectoral) VALUES
('$cedula','$nombre','$nombre2','$estado') ";
$resultado=mysqli_query($cx,$sql);
if ($resultado){
$acceso="aprobado";
?>
<?php
}
break;
}
}
?>
<div class="container-fluid">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h1 class="text-center">Modulo de registro de Procesos Electorales</h1>
</div>
</div>
<hr>
</div>
<div class="container">
<div class="center-block col-md-4 col-xs-8">
<div class="form-group">
<label for="Usuario">Ingrese el nombre del proceso electoral </label>
<input type="text" name="cedula" class="form-control" id="cedula"
placeholder="">
</div>
<div class="form-group">
<label for="ejemplo_password_1">Fecha Inicio</label>
<input type="date" name="nombre" class="form-control" id="nombre"
placeholder="">
</div>
<div class="form-group">
<label for="ejemplo_password_2">Fecha Cierre</label>
<input type="date" name="nombre2" class="form-control" id="nombre2"
placeholder="">
</div>
<div class="form-group">
<label for="ejemplo_password_2">Estado</label>
<input type="text" name="estado" class="form-control" id="estado"
placeholder="">
</div>
<?php
?>
<br> <input type ="submit" class="btn btn-primary" name="boton"
Value="guardar">
<input type ="submit" class="btn btn-danger" name="boton" Value="Cancelar">
</form>
<?php
if ($acceso=="aprobado") {
echo "<h3>Registro Guardado con exito....</h3>";
}
?>
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/[Link]"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/[Link]"></script>
</body>
</html>
Registrar candidatos
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Sistema de Votación</title>
<link href="css/[Link]" rel="stylesheet">
<link href="css/[Link]" rel="stylesheet">
<!-- HTML5 shim and [Link] for IE8 support of HTML5 elements and media
queries -->
<!-- WARNING: [Link] doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script
src="[Link]
<script src="[Link]
<![endif]-->
</head>
<body>
<nav class="navbar navbar-default">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
data-target="#defaultNavbar1"><span class="sr-only">Toggle
navigation</span><span class="icon-bar"></span><span class="icon-
bar"></span><span class="icon-bar"></span></button>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="defaultNavbar1">
<div class="menu1 col-md-7 col-md-offset-3">
<ul class="nav navbar-nav">
<li class="active">
<li><a href="cargar_personal.php">Registro Persona</a></li>
<li><a href="cargar_procesoselec.php">Cargar Elecciones</a></li>
<li><a href="cargar_candidato.php">Registro candidato</a></li>
<li><a href="[Link]">Resultados</a></li>
<li><a href="[Link]">Votación</a></li>
</ul>
</div>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container-fluid -->
</nav>
<?php
require_once("bd/[Link]");
error_reporting(E_ALL ^ E_NOTICE);
$vacio = isset($_POST['variable']) ? $_POST['variable'] : null ;
$acceso = isset($_POST['variable']) ? $_POST['variable'] : null ;
session_start();
$cedula=$_SESSION["cedula"];
if (empty($acceso)) {
}
if (isset($_POST["proceso"])){
$proceso=$_POST["proceso"];
}else{
$proceso="";
}
if (isset($_POST["cedula"])){
$cedula=$_POST["cedula"];
}else{
$cedula="";
}
if (isset($_POST["NombreProcesoElectoral"])){
$nombre=$_POST["NombreProcesoElectoral"];
}else{
$nombre="";
}
if (isset($_POST["lista"])){
$lista=$_POST["lista"];
}else{
$lista="";
}
if (isset($_POST["estado"])){
$estado=$_POST["estado"];
}else{
$estado="";
}
if (isset($_POST["boton"])) {
$boton=$_POST["boton"];
switch ($boton) {
case "Guardar":
if (empty($proceso)){
?>
<script>
alert('Confirme el proceso');
</script>
<?php
break;
}
if (empty($cedula)){
?>
<script>
alert('Ingrese el id del candidato');
</script>
<?php
break;
}
if (empty($lista)){
?>
<script>
alert('Ingrese el número de lista del candidato');
</script>
<?php
break;
}
if (empty($estado)){
?>
<script>
alert('Ingrese el estado del candidato');
</script>
<?php
break;
}
$sql="INSERT INTO candidatos (IdPersona, IdProcesoElectoral, NumeroLista,
EstadoInscripcion)
VALUES ('$cedula','$proceso','$lista','$estado')";
$resultado=mysqli_query($cx,$sql);
if ($resultado){
$acceso="aprobado";
?>
<?php
}
if ($resultado){
$acceso="aprobado";
?>
<?php
}
}
}
?>
<div class="container-fluid">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h1 class="text-center">Modulo de Registro de candidato</h1>
</div>
</div>
<hr>
</div>
<div class="container">
<div class="center-block col-md-4 col-xs-8">
<td><?php echo "<font size='5' color='blue'>Bienvenido:</font>"."<font size='5'
color='red'>".$_SESSION["nombre"]."</font>";
?></td>
<form name ="acceso" action="cargar_candidato.php" role="form"
method="post">
<div class="form-group">
<fieldset>
<strong>Procesos Electorales</strong>
<?php
$sql="select * from procesoelectoral where EstadoProcesoElectoral='Abierto'";
$resultado=mysqli_query($cx,$sql);
$num_reg=mysqli_num_rows($resultado);
?>
<select name="proceso" onchange="submit();">
<option value="" >Seleccione el proceso </option>
<?php
for ($i=0;$i<$num_reg;$i++){
//cuando se usa ciclo for es obligatorio que la variable de la matriz estè
//dentro del ciclo, es decir la variable del mysqli_fetch_array($resultado);
$reg=mysqli_fetch_array($resultado);
$codigo=$reg["IdProcesoElectoral"];
$nombre=$reg["NombreProcesoElectoral"];
?>
<option value="<?php echo $codigo; ?>"<?php if ($proceso==$codigo){echo
"selected='selected'";}?>><?php echo $nombre; ?></option><!--para chrome-->
<?php
}
?>
</select>
</fieldset>
</td>
<br>
<br>
<div class="form-group">
<label for="Usuario">IdCandidato </label>
<input type="text" name="cedula" class="form-control" id="cedula"
placeholder="IdCandidato">
</div>
<div class="form-group">
<label for="ejemplo_password_1">Número de la lista</label>
<input type="text" name="lista" class="form-control" id="lista"
placeholder="lista">
</div>
<div class="form-group">
<label for="ejemplo_password_1">Estado</label>
<input type="text" name="estado" class="form-control" id="estado"
placeholder="Estado">
</div>
<input type ="submit" class="btn btn-primary" name="boton" Value="Guardar">
<input type ="submit" class="btn btn-danger" name="boton" Value="Cancelar">
</form>
<?php
if ($acceso=="aprobado") {
echo "<h1>Registro Guardado con exito....</h1>";
}
?>
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/[Link]"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/[Link]"></script>
</body>
</html>
Ingresar al sistema de votación
o Valida personal
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<
<!-- Bootstrap -->
<link href="css/[Link]" rel="stylesheet">
<link href="css/[Link]" rel="stylesheet">
<!-- HTML5 shim and [Link] for IE8 support of HTML5 elements and
media queries -->
<!-- WARNING: [Link] doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script
src="[Link]
<script
src="[Link]
<![endif]-->
</head>
<body>
<?php
require_once("bd/[Link]");
error_reporting(E_ALL ^ E_NOTICE);
session_start();
if (isset($_POST["persona"])) {
$persona=$_POST["persona"];
}
if (isset($_POST["boton"])) {
$boton=$_POST["boton"];
switch ($boton) {
case "Ingresar":
if (empty($persona) ) {
$vacio="si";
break;
}
$sql="SELECT * FROM personal WHERE Cedula = '$persona'";
$resultado=mysqli_query ($cx,$sql);
$datos=mysqli_fetch_array($resultado);
$per=$datos["Cedula"];
$nombre=$datos["Nombres"];
$apellidos=$datos["Apellidos"];
$IdPersona=$datos["IdPersona"];
if ($persona==$per) {
$_SESSION["nombres"]=$datos["nombres"];
$_SESSION["apellidos"]=$datos["apellidos"];
$_SESSION["Cedula"]=$datos["Cedula"];
$_SESSION["IdPersona"]=$datos["IdPersona"];
$_SESSION["permiso"]="Acceso Permitido";
$sql2="SELECT * FROM personalregistrado WHERE idpersona=
'$IdPersona'";
$resultado2=mysqli_query ($cx,$sql2);
$datos2=mysqli_fetch_array($resultado2);
$per2=$datos2["IdPersona"];
if ($IdPersona==$per2) {
$_SESSION["IdPersona"]=$datos2["IdPersona"];
?>
<script>
[Link]="[Link]";
</script>
<?php
}else {
?>
<script>
[Link]="cargar_personal.php";
</script>
<?php
}
//header("location: [Link]");
}else {
$acceso="denegado";
}
break;
}
}
?>
<div class="container-fluid">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h1 class="text-center">Sistema de Votación i-vote</h1>
</div>
</div>
<hr>
<div class="container">
<div class="center-block col-md-4 col-xs-8">
<form action="[Link]" role="form" method="post">
<div class="form-group">
<label for="personal">Ingreso al personal de Cerescos</label>
<input type="text" name="persona" class="form-control" id="persona"
placeholder="Cedula">
</div>
<div align="center">
<?php
if ($acceso=="denegado") {
echo "<h1>El numero de cedula no esta registrado como colaborador de
Cerescos...</h1>";
}
?>
</div>
</div>
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/[Link]"></script>
o Ingresar al sistema
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Sistema de Votación</title>
<!-- Bootstrap -->
<link href="css/[Link]" rel="stylesheet">
<link href="css/[Link]" rel="stylesheet">
<!-- HTML5 shim and [Link] for IE8 support of HTML5 elements and media
queries -->
<!-- WARNING: [Link] doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script
src="[Link]
<script src="[Link]
<![endif]-->
</head>
<body>
<?php
require_once("bd/[Link]");
$vacio = isset($_POST['variable']) ? $_POST['variable'] : null ;
$acceso = isset($_POST['variable']) ? $_POST['variable'] : null ;
session_start();
if (empty($acceso)) {
}
if (isset($_POST["usuario"])) {
$usuario=$_POST["usuario"];
}
if (isset($_POST["clave"])) {
$clave=$_POST["clave"];
}
if (isset($_POST["boton"])) {
$boton=$_POST["boton"];
switch ($boton) {
case "Ingresar":
if (empty($usuario) && empty($clave)) {
$vacio="si";
break;
}
$sql=" SELECT * FROM personalregistrado WHERE idusuario = '$usuario'
AND Contrasena = '$clave' ";
$resultado=mysqli_query ($cx,$sql);
$datos=mysqli_fetch_array($resultado);
$per=$datos["IdUsuario"];
$cla=$datos["Contrasena"];
if ($usuario==$per AND $clave==$cla) {
$_SESSION["nombre"]=$datos["nombre"];
$_SESSION["nivel"]=$datos["nivel"];
$_SESSION["permiso"]="Acceso Permitido";
?>
<script>
alert('bienvenido al sistema');
[Link]="[Link]";
</script>
<?php
//header("location: [Link]");
}else {
$acceso="denegado";
}
break;
}
}
?>
<div class="container-fluid">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h1 class="text-center">Sistema de Votación i-vote</h1>
</div>
</div>
<hr>
</div>
<div class="container">
<div class="center-block col-md-4 col-xs-8">
<form action="[Link]" role="form" method="post">
<div class="form-group">
<label for="Usuario">Usuario</label>
<input type="text" name="usuario" class="form-control" id="usuario"
placeholder="Usuario">
</div>
<div class="form-group">
<label for="ejemplo_password_1">Contraseña</label>
<input type="password" name="clave" class="form-control"
id="ejemplo_password_1"
placeholder="Contraseña">
</div>
<input type ="submit" class="btn btn-primary" name="boton" Value="Ingresar">
<input type ="submit" class="btn btn-danger" name="boton" Value="Cancelar">
</form>
</div>
</div>
<div align="center">
<?php
if ($acceso=="denegado") {
echo "<h1>Acceso denegado.. Usuario o clave erronea...</h1>";
}
if ($vacio=="si") {
echo "<h1>Debe ingresar Usuario y clave</h1>";
}
?>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/[Link]"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/[Link]"></script>
</body>
</html>
Votar
o Elegir el proceso electoral
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Sistema de Votación</title>
<!-- Bootstrap -->
<link href="css/[Link]" rel="stylesheet">
<link href="css/[Link]" rel="stylesheet">
<!-- HTML5 shim and [Link] for IE8 support of HTML5 elements and
media queries -->
<!-- WARNING: [Link] doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script
src="[Link]
<script
src="[Link]
<![endif]-->
</head>
<body>
<?php
require_once("bd/[Link]");
error_reporting(E_ALL ^ E_NOTICE);
$vacio = isset($_POST['variable']) ? $_POST['variable'] : null ;
$acceso = isset($_POST['variable']) ? $_POST['variable'] : null ;
session_start();
$cedula=$_SESSION["cedula"];
$IdPersona=$_SESSION["IdPersona"];
$sql1="SELECT Cedula, Nombres,Apellidos FROM personal WHERE
IdPersona = '$IdPersona'";
$resultado2=mysqli_query ($cx,$sql1);
$datos2=mysqli_fetch_array($resultado2);
$per2=$datos2["Cedula"];
$nombres2=$datos2["Nombres"];
$apellidos2=$datos2["Apellidos"];
if (empty($acceso)) {
}
if (isset($_POST["proceso"])){
$proceso=$_POST["proceso"];
}else{
$proceso="";
}
if (isset($_POST["NombreProcesoElectoral"])){
$nombre=$_POST["NombreProcesoElectoral"];
}else{
$nombre="";
}
if (isset($_POST["cedula_candidato"])){
$cedula_candidato=$_POST["cedula_candidato"];
}else{
$cedula_candidato="";
}
if (isset($_POST["cod_candidato"])) {
$cod_candidato=$_POST["cod_candidato"];
}
if (isset($_POST["cedula"])) {
$alu=$_POST["cedula"];
}
if (isset($_POST["boton"])) {
$boton=$_POST["boton"];
switch ($boton) {
case "votar":
if (empty($proceso)){
?>
<script>
alert('Confirme el proceso');
</script>
<?php
break;
}
$sql4="select IdProcesoElectoral,NombreProcesoElectoral from
procesoelectoral where IdProcesoElectoral='$proceso'";
$resultado4=mysqli_query($cx,$sql4);
$datos4=mysqli_fetch_array($resultado4);
$IdProcesoElectoral=$datos4["IdProcesoElectoral"];
$per5=$datos4["NombreProcesoElectoral"];
$_SESSION["IdProcesoElectoral"]=$datos4["IdProcesoElectoral"];
?>
<script>
[Link]="[Link]";
</script>
<?php
break;
if ($resultado){
$acceso="aprobado";
?>
<?php
}
}
}
?>
<div class="container-fluid">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h1 class="text-center">Sistema de Votación</h1>
</div>
</div>
<hr>
</div>
<div class="container">
<div class="center-block col-md-4 col-xs-8">
<td><?php echo "<font size='5' color='blue'>Bienvenido:</font>"."<font
size='5' color='red'>".$_SESSION["nombre"]."</font>";
echo "<font size='4' color='black'><p>$nombres2 $apellidos2</p></font>";
echo "<font size='4' color='black'><p>Cedula No.: $per2</p></font>";
?></td>
<form name ="acceso" action="[Link]" role="form"
method="post">
<div class="form-group">
<fieldset>
<legend><em><strong>Procesos Electorales</strong></em></legend>
<?php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Sistema de Votación</title>
<!-- HTML5 shim and [Link] for IE8 support of HTML5 elements and media
queries -->
<!-- WARNING: [Link] doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script
src="[Link]
<script src="[Link]
<![endif]-->
</head>
<body>
<?php
require_once("bd/[Link]");
error_reporting(E_ALL ^ E_NOTICE);
$vacio = isset($_POST['variable']) ? $_POST['variable'] : null ;
$acceso = isset($_POST['variable']) ? $_POST['variable'] : null ;
session_start();
$cedula=$_SESSION["cedula"];
$IdProcesoElectoral=$_SESSION["IdProcesoElectoral"];
$IdPersona=$_SESSION["IdPersona"];
$sql1="SELECT Cedula, Nombres,Apellidos,IdSucursal FROM personal
WHERE IdPersona = '$IdPersona'";
$resultado2=mysqli_query ($cx,$sql1);
$datos2=mysqli_fetch_array($resultado2);
$per2=$datos2["Cedula"];
$nombres2=$datos2["Nombres"];
$apellidos2=$datos2["Apellidos"];
$IdSucursal=$datos2["IdSucursal"];
$sql3="SELECT NombreProcesoElectoral FROM procesoelectoral WHERE
IdProcesoElectoral = '$IdProcesoElectoral'";
$resultado3=mysqli_query ($cx,$sql3);
$datos3=mysqli_fetch_array($resultado3);
$per3=$datos3["NombreProcesoElectoral"];
if (empty($acceso)) {
}
if (isset($_POST["proceso"])){
$proceso=$_POST["proceso"];
}else{
$proceso="";
}
if (isset($_POST["NombreProcesoElectoral"])){
$nombre=$_POST["NombreProcesoElectoral"];
}else{
$nombre="";
}
if (isset($_POST["cedula_candidato"])){
$cedula_candidato=$_POST["cedula_candidato"];
}else{
$cedula_candidato="";
}
if (isset($_POST["cod_candidato"])) {
$cod_candidato=$_POST["cod_candidato"];
}
if (isset($_POST["boton"])) {
$boton=$_POST["boton"];
switch ($boton) {
case "votar":
if (empty($proceso)){
?><script>
alert('Ingrese número de lista');
</script>
<?php
break;
}
$sql5="INSERT INTO voto(IdProcesoElectoral, IdSucursal, VotoNumeroLista,
FechaVoto) VALUES ('$IdProcesoElectoral','$IdSucursal','$proceso',NOW())";
$sql6="INSERT INTO votantes (IdProcesoElectoral, IdPersona, FechaVoto)
VALUES ('$IdProcesoElectoral','$IdPersona',NOW())";
$resultado=mysqli_query($cx,$sql5);
if ($resultado or $resultado4){
$acceso="aprobado";
?>
<?php
}
$resultado4=mysqli_query($cx,$sql6);
}
}
?>
<div class="container-fluid">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h1 class="text-center">Sistema de Votación</h1>
</div>
</div>
<hr>
</div>
<div class="container">
<div class="center-block col-md-4 col-xs-8">
<td><?php echo "<font size='5' color='blue'>Bienvenido:</font>"."<font size='5'
color='red'>".$_SESSION["nombre"]."</font>";
echo "<font size='4' color='black'><p>$nombres2 $apellidos2</p></font>";
echo "<font size='4' color='black'><p>Cedula No.: $per2</p></font>";
echo "<font size='4' color='black'><p>Proceso: $per3</p></font>";
?></td>
<form name ="acceso" action="[Link]" role="form" method="post">
<div class="form-group">
<fieldset>
<legend><em><strong>Escoja el el número de la lista</strong></em></legend>
<?php
$sql="select IdProcesoElectoral,Numerolista from candidatos where
IdProcesoElectoral=$IdProcesoElectoral and EstadoInscripcion='Activo'";
$resultado=mysqli_query($cx,$sql);
$num_reg=mysqli_num_rows($resultado);//se usa cuando usas select ver manual
del profesor
?>
<select name="proceso" onchange="submit();">
<option value="" >Seleccione el número de la lista</option>
<?php
for ($i=0;$i<$num_reg;$i++){
//cuando se usa ciclo for es obligatorio que la variable de la matriz estè
//dentro del ciclo, es decir la variable del mysqli_fetch_array($resultado);
$reg=mysqli_fetch_array($resultado);
$codigo=$reg["Numerolista"];
$nombre=$reg["Numerolista"];
?>
<option value="<?php echo $codigo; ?>"<?php if ($proceso==$codigo){echo
"selected='selected'";}?>><?php echo $nombre; ?></option><!--para chrome-->
<?php
}
?>
</select>
</fieldset>
</td>
<br>
<br>
<input type ="submit" class="btn btn-primary" name="boton" Value="votar">
<input type ="submit" class="btn btn-danger" name="boton" Value="Cancelar">
</form>
<?php
if ($acceso=="aprobado") {
echo "<h1>Registro Guardado con exito....</h1>";
}
?>
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/[Link]"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/[Link]"></script>
</body>
</html>
Resultados
<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-
Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1"><title>Sistema de Votación</title>
<!-- Bootstrap -->
<link href="css/[Link]" rel="stylesheet"><link href="css/[Link]"
rel="stylesheet">
<!-- HTML5 shim and [Link] for IE8 support of HTML5 elements and media
queries -->
<!-- WARNING: [Link] doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script
src="[Link]
<script src="[Link]
<![endif]-->
</head><body> <nav class="navbar navbar-default"> <div class="container-
fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
data-target="#defaultNavbar1"><span class="sr-only">Toggle
navigation</span><span class="icon-bar"></span><span class="icon-
bar"></span><span class="icon-bar"></span></button> </div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="defaultNavbar1"> <div
class="menu1 col-md-7 col-md-offset-3">
<ul class="nav navbar-nav"> <li class="active">
<li><a href="cargar_personal.php">Registrar Personas</a></li>
<li><a href="cargar_procesoselec.php">Registrar Elecciones</a></li>
<li><a href="cargar_candidato.php">Registrar candidato</a></li>
<li><a href="[Link]">Resultados</a></li>
<li><a href="[Link]">Votación</a></li> </ul> </div> </div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container-fluid -->
</nav><?php
require_once("bd/[Link]");
error_reporting(E_ALL ^ E_NOTICE);
$vacio = isset($_POST['variable']) ? $_POST['variable'] : null ;
$acceso = isset($_POST['variable']) ? $_POST['variable'] : null ;
session_start();
$cedula=$_SESSION["cedula"];
$nombre=$_SESSION["nombre"];
if (empty($acceso)) {}
if (isset($_POST["proceso"])){
$proceso=$_POST["proceso"];
}else{$proceso="";}
if (isset($_POST["nombre"])){
$nombre=$_POST["nombre"];
}else{
$nombre="";
}
if (isset($_POST["cedula_candidato"])){
$cedula_candidato=$_POST["cedula_candidato"];
}else{
$cedula_candidato="";
}
if (isset($_POST["cod_candidato"])) {
$cod_candidato=$_POST["cod_candidato"];
}
?>
<div class="container-fluid"> <div class="row"> <div class="col-md-6 col-md-
offset-3">
<h1 class="text-center">Sistema de Votación</h1> </div> </div>
<hr></div><div class="container">
<div class="center-block col-md-4 col-xs-8">
<td><?php echo "<font size='5' color='blue'>Bienvenido:</font>"."<font size='5'
color='red'>".$_SESSION["nombre"]."</font>"; ?></td>
<form name ="acceso" action="[Link]" role="form" method="post">
<div class="form-group"> <fieldset>
<legend><em><strong>Filtro de Proceso Electoral</strong></em></legend><?php
$sql="select IdProcesoElectoral,NombreProcesoElectoral from procesoelectoral";
$resultado=mysqli_query($cx,$sql);
$num_reg=mysqli_num_rows($resultado);//se usa cuando usas select ver manual
del profesor
?>
<select name="proceso" onchange="submit();">
<option value="" >Seleccione la sucursal </option>
<?php
for ($i=0;$i<$num_reg;$i++){
//cuando se usa ciclo for es obligatorio que la variable de la matriz estè
//dentro del ciclo, es decir la variable del mysqli_fetch_array($resultado);
$reg=mysqli_fetch_array($resultado);
$codigo=$reg["IdProcesoElectoral"];
$nombre=$reg["NombreProcesoElectoral"];
?>
<option value="<?php echo $codigo; ?>"<?php if ($proceso==$codigo){echo
"selected='selected'";}?>><?php echo $nombre; ?></option><!--para chrome-->
<?php}?></select></fieldset><br>
<table class="table table-hover table-striped text-center"border="1" cellspacing=1
cellpadding=2 style="font-size: 8pt"><thead><tr>
<td><font face="verdana"><b>Cedula del candidato</b></font></td>
<td><font face="verdana"><b>Nombre</b></font></td>
<td><font face="verdana"><b>Sucursal</b></font></td>
<td><font face="verdana"><b>Votos</b></font></td>
</tr> </thead><div class="tabla"><?php
$sql = "SELECT [Link], [Link], [Link],
count(VotoNumeroLista)as Votos
from voto v inner join procesoelectoral p on
[Link]=[Link]
inner join candidatos c on [Link]=[Link] and
[Link] =[Link]
inner join personal per on [Link]=[Link]
where [Link] ='$municipio'
Group by [Link], [Link], [Link]";
$resultado=mysqli_query($cx,$sql);
$numero = 0;
while($row = mysqli_fetch_array($resultado))
{ echo "<tr><td width=\"80%\"><font face=\"verdana\">" .
$row["Cedula"] . "</font></td>";
echo "<td width=\"10%\"><font face=\"verdana\">" .
$row["Nombres"] . "</font></td>";
echo "<td width=\"80%\"><font face=\"verdana\">" .
$row["IdSucursal"] . "</font></td>";
echo "<td width=\"80%\"><font face=\"verdana\">" .
$row["Votos"]. "</font></td></tr>";
$numero++; }
mysqli_free_result($resultado);
mysqli_close($cx);
?></table>
</form></div></div></div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/[Link]"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/[Link]"></script>
</body>
</html>
23. Manual de administración y usuario final de la aplicación y la base de datos.
Objetivo
El presente documento tiene como finalidad servir de guía para la instalación del
aplicativo de votación electrónica.
Como primer paso se debe instalar XAMPP, posterior copiar la carpeta ivote a
la ruta C:\xampp\htdocs\
Se debe abrir una pestaña de explorador de internet Explorer o Chrome
Ingresar a la ruta [Link]
Se da clic en importar
Se da clic en el botón seleccionar archivo y buscar la ruta
C:\xampp\htdocs\ivote\bd
Posterior se debe cargar la data a las tablas, para esto se da clic en importar y seleccionar el
archivo [Link] que está en la ruta
C:\xampp\htdocs\ivote\bd
Dar clic en continuar y el sistema confirmara el cargue exitoso
23.2. Manual Usuario aplicación web votación electrónica
Objetivo
Se debe colocar los datos que solicita la plataforma, se debe asignar la clave y se da clic en
guardad.
Dar clic en salir
Requerimientos de hardware
oServidor web
Los requisitos mínimos recomendados son 256 MB de RAM para un
sitio web de un único ordenador y 85 MB de almacenaje.
El tamaño de instalación puede reducirse en unos 50Mb para una
instalación de desarrollo, y en unos 26Mb para una instalación
normal de usuario final.
Requerimientos de software
oInstalación de xampp que contenga apache y mysql
MySQL 5.0.41
PHP 5.2.2 para el servidor de aplicaciones
PHP 4.4.7
phpMyAdmin 2.10.1
oNavegador web puede ser google Chrome
25. Documentación de la calidad de la experiencia
Como grupo de trabajo podemos argumentar que las bases de datos son muy
importantes porque nos permiten almacenar y recuperar información en grandes volúmenes
y así, las personas encargadas de la organización puedan tomar decisiones más claras, por
lo que son esenciales para que cualquier organización u empresa pueda funcionar de
manera correcta pues los datos y la información organizada son un recurso básico para
todas las organizaciones.
polling system for the internet. Hawaii International Conference on System Science,
Date, C.J. (2001). Introducción a los sistemas de bases de datos (7ª ed.). Silberschatz, A;
Korth, H.F; Sudarshan, S. (1998). Fundamentos de bases de datos (3.a ed.). Madrid:
McGraw-Hill.
es/sql/ado/guide/data/what-is-a-cursor?view=sql-server-2017
[Link]
[Link]
Idea. (20116). International Institute for Democracy and Electoral Assistance (IDEA)
2bd31b2f047a.
National Science Foundation. (2001). “Report on the National Workshop on Internet Voting:
Scielo. (02 de 2014). La importancia de los datos . Obtenido de La importancia de los datos
: [Link]
16112004000100003