Skip to content

Supreme Electoral Tribunal - Election database simulation

Notifications You must be signed in to change notification settings

gkevinrz/tse-nodejs-mysql

Repository files navigation

Documentación

Descripción general

El Tribunal Supremo Electoral (TSE) tiene la responsabilidad crucial de recopilar los resultados de las elecciones de diversas mesas distribuidas en todo el territorio nacional. En este contexto, se requiere la implementación de un sistema de bases de datos capaz de realizar consultas que permitan verificar la coherencia entre los reportes manuales y los generados por el sistema de bases de datos.


Modelado

  • Modelo conceptual

Modelo-Conceptual


  • Modelo lógico

Modelo-Conceptual


  • Diagrama Entidad-Relación

Modelo-Conceptual

Diseño:

Dada la información proporcianda en archivos de tipo .csv se necesitaba crear un modelo que reduciera al mínimo posible la redundancia, de otra manera se producen anomalías en la base de datos. Se consideró el modelo de arriba como solución a este problema.

A partir de este análisis se determinaron las siguientes entidades:

Entidades:

  • Departamento
  • Mesa
  • Voto
  • VotoDetalle
  • Ciudadano
  • Partido
  • Candidato
  • Cargo

Relaciones:

  • Mesa debe estar asociado a un departamento y un departamento puede tener muchas Mesas

  • Mesa puede tener muchos uno o muchos votos y un voto debe estar en una mesa.

  • Un ciudadano puede emitir uno o muchos votos y un voto debe ser emitido por un ciudadano.

  • Partido puede tener uno o muchos candidatos y un candidato debe estar asociado a un partido

  • Candidato debe estar asignado a un solo cargp y un cargo puede estar asociado a muchos candidatos

API

La API fue construida en Express.js dada su popularidad para Node.js. Además, se utilizaron las siguientes dependencias:

  • mysql2 para la conexión con el servidor Mysql.

  • fast-csv para el parseo de archivos .csv

Endpoints:

  • /crearmodelo:

    Crea tablas del modelo

  • /cargartabtemp:

    Carga masiva de datos a tabla temporal

  • /eliminarmodelo:

    Elimina las tablas del modelo de datos de la base de datos.

  • /consulta1:

    MUestra el nombre de los candidatos a presidentes y vicepresidentes por partido

  • /consulta2:

    Muestra el número de candidatos a diputados por partido.

  • /consulta3:

    Muestra el nombre de los candidatos a alcalde por partido

  • /consulta4:

    Muestra la cantidad de candidatos por partido (presidentes, vicepresidentes, diputados, alcaldes).

  • /consulta5:

    Cantidad de votos por departamentos.

  • /consulta6:

    Cantidad de votos nulos.

  • /consulta7:

    Muestra el top 10 de edad de ciudadanos que realizaron su voto.

  • /consulta8:

    Muestra el top 10 de candidatos más votados para presidente y vicepresidente

  • /consulta9:

    Muestra el top 5 de mesas más frecuentadas

  • /consulta10:

    Muestra el top 5 de las horas más concurridas en que los ciudadanos fueron a votar

  • /consulta11:

    Muestra la cantidad de votos por género (Masculino, Femenino).

About

Supreme Electoral Tribunal - Election database simulation

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published