267 lines
8.6 KiB
HTML
267 lines
8.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="es">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Panel Web</title>
|
|
<link rel="stylesheet" href="/css/main.css">
|
|
<link rel="stylesheet" href="/css/styles.css">
|
|
|
|
</head>
|
|
<body>
|
|
<main>
|
|
|
|
<nav class="bg-gray-800 fixed w-full top-0 z-3">
|
|
<div class="mx-auto px-4">
|
|
<div class="flex items-center justify-between h-16">
|
|
<div class="flex items-center">
|
|
<a href="/" class="text-white font-bold text-xl"
|
|
>Fede Landing Site</a
|
|
>
|
|
</div>
|
|
|
|
<div class="hidden md:flex">
|
|
<a
|
|
href="/git"
|
|
target="_blank"
|
|
class="text-gray-300 hover:text-white px-3 py-2"
|
|
>Git</a
|
|
>
|
|
<a
|
|
class="text-gray-300 hover:text-white px-3 py-2 muted"
|
|
href="https://fedesrv.ddns.net/git/fede/CV/media/branch/master/AltaCV_Template.pdf"
|
|
target="_blank"
|
|
>CV</a
|
|
>
|
|
<a
|
|
href="https://github.com/fedpo2"
|
|
target="_blank"
|
|
class="text-gray-300 hover:text-white px-3 py-2"
|
|
>GitHub</a
|
|
>
|
|
<a
|
|
href="mailto:federico.nicolas.polidoro@gmail.com"
|
|
target="_blank"
|
|
class="text-gray-300 hover:text-white px-3 py-2"
|
|
>Email</a
|
|
>
|
|
<a
|
|
href="https://www.linkedin.com/in/federico-polidoro-40137a25b/"
|
|
target="_blank"
|
|
class="text-gray-300 hover:text-white px-3 py-2"
|
|
>LinkedIn</a
|
|
>
|
|
</div>
|
|
|
|
<div class="md:hidden cursor-context-menu">
|
|
<button
|
|
onclick="toggleOffCanvas()"
|
|
class="border px-2 py-1 rounded text-white"
|
|
>
|
|
<svg
|
|
class="h-6 w-6"
|
|
fill="none"
|
|
viewBox="0 0 24 24"
|
|
stroke="currentColor"
|
|
>
|
|
<path
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
stroke-width="2"
|
|
d="M0 6h25M0 12h25M0 18h25"
|
|
/>
|
|
</svg>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div
|
|
id="offCanvas"
|
|
class="fixed top-16 right-0 w-64 h-screen bg-gray-800 transform translate-x-full transition-transform duration-200 ease-in-out"
|
|
>
|
|
<div class="flex flex-col p-4">
|
|
<a
|
|
href="/git"
|
|
target="_blank"
|
|
class="text-gray-300 hover:text-white px-3 py-2"
|
|
>Git</a
|
|
>
|
|
<a
|
|
class="text-gray-300 hover:text-white px-3 py-2 muted"
|
|
title="Under Construction 🚧👷♂️🏗️"
|
|
target="_blank"
|
|
>CV</a
|
|
>
|
|
<a
|
|
href="https://github.com/fedpo2"
|
|
target="_blank"
|
|
class="text-gray-300 hover:text-white px-3 py-2"
|
|
>GitHub</a
|
|
>
|
|
<a
|
|
href="mailto:federico.nicolas.polidoro@gmail.com"
|
|
target="_blank"
|
|
class="text-gray-300 hover:text-white px-3 py-2"
|
|
>Email</a
|
|
>
|
|
<a
|
|
href="https://www.linkedin.com/in/federico-polidoro-40137a25b/"
|
|
target="_blank"
|
|
class="text-gray-300 hover:text-white px-3 py-2"
|
|
>LinkedIn</a
|
|
>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
<script>
|
|
function toggleOffCanvas() {
|
|
const offCanvas = document.getElementById("offCanvas");
|
|
offCanvas.classList.toggle("translate-x-full");
|
|
}
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<style>
|
|
@font-face {
|
|
font-family: 'MiFuente';
|
|
src: url('/calamity.ttf') format('truetype');
|
|
}
|
|
header{
|
|
font-family: 'MiFuente', sans-serif;
|
|
}
|
|
</style>
|
|
<div class="mt-16 bg-sky-300">
|
|
<header class="text-center text-6xl pt-5">Panel Web</header>
|
|
|
|
<div class="flex justify-center">
|
|
<div class="flex w-100 ">
|
|
<hr class="w-[50%] mt-6">
|
|
<p class="text-4xl">
|
|
|
|
o
|
|
|
|
</p>
|
|
<hr class="w-[50%] mt-6">
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="flex flex-col justify-center w-fit mx-auto mt-2">
|
|
<div class="rounded-t-full bg-sky-600">.</div>
|
|
<div class="flex justify-center gap-2 p-8 bg-sky-600">
|
|
|
|
</div>
|
|
<div class="rounded-b-full bg-sky-600 shadow-xl/30 mb-4">.</div>
|
|
|
|
|
|
<script>
|
|
function openmodal(id){
|
|
let dialog = document.getElementById(id);
|
|
dialog.toggleAttribute("hidden");
|
|
}
|
|
</script>
|
|
|
|
</div>
|
|
<div class="flex justify-center">
|
|
<div class="flex w-100 ">
|
|
<hr class="w-[50%] mt-6">
|
|
<p class="text-4xl">
|
|
|
|
o
|
|
|
|
</p>
|
|
<hr class="w-[50%] mt-6">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex justify-center mt-2">
|
|
<article><p>Este panel web es una herramienta de visualización y análisis de datos para una cadena hotelera, desarrollado como trabajo final para el curso de Base de Datos Aplicada. El sistema permite explorar métricas clave de rendimiento a través de una estructura jerárquica de tres niveles.</p>
|
|
<h2 id="arquitectura-técnica">Arquitectura Técnica</h2>
|
|
<h3 id="backend">Backend</h3>
|
|
<ul>
|
|
<li>ASP.NET Core 7</li>
|
|
<li>Entity Framework Core para acceso a datos</li>
|
|
<li>API RESTful para comunicación con el frontend</li>
|
|
<li>Autenticación JWT para seguridad</li>
|
|
</ul>
|
|
<h3 id="frontend">Frontend</h3>
|
|
<ul>
|
|
<li>React (18.x)</li>
|
|
<li>Material UI para componentes de interfaz</li>
|
|
<li>ChartJS para visualización de datos</li>
|
|
<li>React Router para navegación entre secciones</li>
|
|
</ul>
|
|
<h2 id="estructura-de-navegación-drilling">Estructura de Navegación (Drilling)</h2>
|
|
<p>El panel implementa un sistema de navegación jerárquica de tres niveles:</p>
|
|
<h3 id="nivel-1-cadena-hotelera">Nivel 1: Cadena Hotelera</h3>
|
|
<ul>
|
|
<li>Nombre de la cadena hotelera</li>
|
|
</ul>
|
|
<h3 id="nivel-2-locaciónhotel-específico">Nivel 2: Locación/Hotel Específico</h3>
|
|
<ul>
|
|
<li>Datos detallados de cada propiedad</li>
|
|
</ul>
|
|
<h3 id="nivel-3-estadísticas-detalladas">Nivel 3: Estadísticas Detalladas</h3>
|
|
<ul>
|
|
<li>Análisis profundo de datos operativos</li>
|
|
<li>Reportes especializados</li>
|
|
</ul>
|
|
<h2 id="características-principales">Características Principales</h2>
|
|
<ul>
|
|
<li><strong>Dashboards Interactivos</strong>: Gráficos dinámicos con ChartJS para visualización intuitiva de datos.</li>
|
|
<li><strong>Filtros Avanzados</strong>: Capacidad de filtrar datos por fecha, categoría de habitación, y segmento de cliente.</li>
|
|
<li><strong>Alertas Personalizables</strong>: Notificaciones cuando métricas clave superan umbrales definidos.</li>
|
|
<li><strong>Responsive Design</strong>: Adaptable a dispositivos móviles y tablets para monitoreo en movimiento.</li>
|
|
</ul>
|
|
<h2 id="modelo-de-datos">Modelo de Datos</h2>
|
|
<p>El sistema se basa en un esquema relacional que incluye las siguientes entidades principales:</p>
|
|
<ul>
|
|
<li>Cadenas Hoteleras</li>
|
|
<li>Hoteles/Propiedades</li>
|
|
<li>Habitaciones</li>
|
|
<li>Reservas</li>
|
|
<li>Clientes</li>
|
|
<li>Servicios</li>
|
|
<li>Facturación</li>
|
|
</ul>
|
|
<h2 id="capturas-de-pantalla-wip">Capturas de Pantalla (WIP)</h2>
|
|
<p><em>[Aquí se incluirían capturas de pantalla del panel mostrando los tres niveles de navegación y diferentes visualizaciones]</em></p>
|
|
<h2 id="implementación">Implementación</h2>
|
|
<p>El proyecto ha sido desarrollado siguiendo una metodología ágil, con énfasis en:</p>
|
|
<ul>
|
|
<li>Normalización de la base de datos</li>
|
|
<li>Optimización de consultas para grandes volúmenes de datos</li>
|
|
<li>Implementación de procedimientos almacenados para operaciones complejas</li>
|
|
<li>Medidas de seguridad para protección de datos sensibles</li>
|
|
</ul>
|
|
<h2 id="conclusiones">Conclusiones</h2>
|
|
<p>Este panel web demuestra la aplicación práctica de conceptos avanzados de bases de datos relacionales en un entorno empresarial del sector hotelero, proporcionando una herramienta valiosa para la toma de decisiones basada en datos.</p>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
<div class="bg-sky-300 rounded-b-full shadow-md">
|
|
<p>.</p>
|
|
</div>
|
|
|
|
|
|
</main>
|
|
<br>
|
|
<footer class="text-center text-sm text-gray-500 mt-12 py-6 border-t">
|
|
© 2025 Federico Polidoro
|
|
</footer>
|
|
</body>
|
|
</html>
|