configurado para pushear public

This commit is contained in:
2025-05-23 11:07:27 -03:00
parent 27b1134cf4
commit 883d065090
30 changed files with 1992 additions and 82 deletions

View File

@@ -0,0 +1,168 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Sistema Alquileres DevLog n1</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-1">
<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="/Blog"
target="_blank"
class="text-gray-300 hover:text-white px-3 py-2"
>Blog</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 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="/Blog"
target="_blank"
class="text-gray-300 hover:text-white px-3 py-2"
>Blog</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>
<div class="pt-16 shadow-md">
<img alt="" src="/cover2.png"
style="object-fit: cover;"
class="w-screen h-80 object-cover"
/>
<div class="flex pt-4 gap-2 md-4 text-center flex-col bg-slate-800 text-white">
<h1 class="font-bold text-6xl antialiased underline font-sans">Sistema Alquileres DevLog n1</h1>
<p class="text-xl font-thin italic">Fecha: 10 Nov 2024</p>
</div>
</div>
<article class=" sm:px-2 md:px-16 lg:px-32">
<div><h1 id="que-es-esto">¿Que es esto?</h1>
<p>Estas son pequeñas updates que voy a estar haciendo sobre el proyecto final mio de &ldquo;Ingenieria de Software&rdquo; (asi se llama la materia). El cual consiste de un sistema de gestion de alquileres. Pensado para tener varios tipos de usuario como un propietario que carge las propiedades que desea publicar siempre y cuando este verificado que le pertenecen a él y un inquilino el cual podra efectuar busquedas de propiedades para alquilas, ver el estado de los alquileres, y pagar los alquileres que sean correpondientes.</p>
<p>Ahí arriba describi solo 2 o 3 de los casi 26 casos de uso que tengo descriptos. Además voy a reutilizar los conocimiento que adquirí haciendo el panel de control para la materia de base de datos.</p>
<blockquote>
<p>Se vienen cositas</p></blockquote>
<p>Bueno ahora voy a hacer un mini-informe sobre el modulo de seguridad</p>
<h1 id="permisos-para-los-clientes">Permisos para los clientes</h1>
<p>Cito de la entrega del segundo parcial.</p>
<blockquote>
<p>En cuanto a como va el desarrollo, te diria que bien encaminado, actualmente estoy usando svelte/bootstrap para el front y aspnet core 8 ( ? ) para el backend. ya tengo definido que acciones puede hacer un cliente en el sistema mediante un sistema usuario-grupo-permiso Similar a como los permisos son definidos en linux (donde por ejemplo un usuario para poder acceder al uso del audio del servidor necesita estar en un grupo &ldquo;audio&rdquo; o para escribir a un almacenamiento en cinta necesita pertenecer al grupo &ldquo;tape&rdquo;) En mi proyecto por ahora tengo 3 grupos que consisten en los 3 actores que tengo definidos (inquilino, propietario, administracion). Entonces cuando checkeo por si un cliente tiene acceso a un permiso lo puedo averiguar de forma sencilla:</p></blockquote>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> permisos = con.Clientes
</span></span><span style="display:flex;"><span>.Where(c =&gt; c.Dni == cli.Dni)
</span></span><span style="display:flex;"><span>.SelectMany(c =&gt; c.Idgrupos)
</span></span><span style="display:flex;"><span>.SelectMany(g =&gt; g.Idpermisos)
</span></span><span style="display:flex;"><span>.Distinct();
</span></span></code></pre></div><p>Esto dandome una lista de todos los permisos que posee el cliente.</p>
<p>Tambien tengo hechos los abm de inquilino/propietario pero hay menos que comentar sobre eso.</p>
<h1 id="almacenamiento-de-contratos-de-alquiler">Almacenamiento de Contratos de Alquiler</h1>
<p>Un requisito que considero muy importante es almacenamiento de los contratos de alquiler. En una primera instancia pense que almacenarlos en un campo blob de mysql podia ser factible pero entre lo que escuché sobre que hace los backups de la base de datos gigantes y el hecho de que estaria haciendo una query a la base de datos para obtener, ponele, 3MB me parece un montón</p>
<p>Almacenarlos con un fileserver simple como <a href="https://github.com/svenstaro/miniserve">Miniserve</a> que es una excelente herramienta si bien para casos donde tenes un solo servidor pareceria masomenos pasable al final termina no siendo tan buena idea si llegas a necesitar algo minimanente distribuido o que maneje permisos.</p>
<p>Así fue como luego de preguntarle a un amigo y a chatgpt. me decidí por darle una oportunidad a <a href="https://min.io/">Minio</a> que es una alternativa &ldquo;S3 pero hosteado en casa&rdquo;. tengo mucho que aprender aún sobre s3 porque tengo solo una idea general de como funciona. Así que voy a dejar una update de esto en unos dias o semanas (no hay chances que sea consistente publicando acá) sobre como va esto. bye.</p>
</div>
</article>
</main>
<br>
<footer class="text-center text-sm text-gray-500 mt-12 py-6 border-t">
© 2025 Federico Polidoro
</footer>
</body>
</html>