Skip to content

csatizabal/sistema-visitas-cali

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏙️ Sistema de Control y Visitas a Vallas - Alcaldía de Cali

Este proyecto es un sistema de software desarrollado para la Alcaldía Distrital de Santiago de Cali con el objetivo de gestionar y controlar las solicitudes de inspección a vallas publicitarias dentro del distrito.

🎯 Descripción del Problema

La Alcaldía necesita un sistema centralizado para registrar solicitudes de control de visitas a vallas. Cada solicitud puede requerir una o varias inspecciones (visitas) por parte de un funcionario (visitador).

El sistema debe permitir al visitador registrar la información de cada visita y, crucialmente, limitar el número de visitas por solicitud a un máximo de cinco (5).

🚀 Arquitectura y Tecnologías

El proyecto está construido siguiendo una arquitectura Modelo-Vista-Controlador (MVC), separando la lógica de negocio, los datos y la interfaz de usuario.

Stack Tecnológico

Componente

Tecnología

Propósito

Backend

Controlador y lógica de negocio.

ORM

Modelo y mapeo de objetos a la BD.

Lenguaje

Lenguaje principal del backend.

Base de Datos

Almacenamiento de datos (compatible con MySQL).

Frontend

Estructura de la Vista.

Estilos

Diseño responsive y componentes UI.

Cliente

Comunicación asíncrona (Fetch API) con el backend.

⚠️ Advertencia de Versión: Se utiliza Symfony 2 por requisito explícito del proyecto. Esta es una versión obsoleta (End-of-Life). Se recomienda encarecidamente migrar a una versión moderna (Symfony 6+) para cualquier proyecto en un entorno de producción.

🏗️ Componentes del Proyecto

  1. Modelo de Datos (MER)

El sistema se basa en tres entidades principales que gestiona Doctrine:

Visitador: Almacena los datos del funcionario que realiza la inspección.

Solicitud: Almacena la información de la valla y el motivo de la inspección.

Visita: Almacena los hallazgos de una inspección.

Relaciones Clave:

Solicitud (1) --- (N) Visita (Limitado a 5 por lógica de aplicación)

Visitador (1) --- (N) Visita

(Ver el archivo mer.md para el diagrama detallado).

  1. Lógica de Negocio (Controlador)

El archivo VisitaController.php expone una API RESTful (/api/visitas/crear) que recibe los datos (en formato JSON) desde el formulario de la Vista.

La lógica principal implementada es la restricción de 5 visitas:

Antes de guardar una nueva visita, el controlador consulta cuántas visitas existen asociadas a esa solicitud_id.

Si el conteo es >= 5, devuelve un error 400 Bad Request al formulario.

Si el conteo es < 5, persiste la nueva entidad Visita en la base de datos MariaDB.

  1. Consulta SQL Relevante

Se incluye una consulta (consulta.sql) para generar un reporte acumulado de visitas por visitador en un rango de fechas específico, útil para la reportería de la Alcaldía.

SELECT v.nombre_completo, v.cedula, COUNT(vis.id) AS total_visitas_acumuladas FROM Visita AS vis JOIN Visitador AS v ON vis.visitador_id = v.id WHERE vis.fecha_visita BETWEEN '2025-05-01 00:00:00' AND '2025-06-30 23:59:59' GROUP BY v.id, v.nombre_completo, v.cedula ORDER BY total_visitas_acumuladas DESC;

⚙️ Instalación y Despliegue

Siga estos pasos para poner en marcha el proyecto en un entorno de desarrollo local.

Clonar el repositorio:

git clone [URL-DE-TU-REPOSITORIO] cd [nombre-del-proyecto]

Instalar dependencias de Symfony 2 (usando Composer):

composer install

Configurar la Base de Datos:

Crea una base de datos en MariaDB (ej. cali_vallas_db).

Copia el archivo de configuración de parámetros:

cp app/config/parameters.yml.dist app/config/parameters.yml

Edita app/config/parameters.yml con tus credenciales de base de datos (host, nombre, usuario, contraseña).

Crear las tablas en la BD:

Doctrine leerá las entidades (Modelos) y creará el esquema de base de datos.

php app/console doctrine:schema:update --force

Ejecutar el servidor de desarrollo (Symfony 2):

php app/console server:run

El servidor se ejecutará (generalmente en http://localhost:8000).

El formulario de registro (registrar_visita.html) se puede abrir directamente en el navegador. Este formulario está diseñado para comunicarse con la API de Symfony que acabas de iniciar.

About

Sistema para visitas en vallas alcaldia de cali

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published