Shortly

.NET Core Web API

Entity Framework

Identity

SQL Server

React

Tailwind

Este proyecto nació con un objetivo educativo claro: migrar mi mentalidad de aplicaciones monolíticas (MVC) a una Arquitectura Desacoplada.

Quería entender los desafíos reales de conectar una Web API en .NET Core con un Frontend moderno en React, gestionando el estado, la autenticación y el enrutamiento desde el cliente.

Solución Técnica

Shortly permite acortar enlaces generando identificadores únicos no secuenciales (basados en GUIDs modificados para brevedad), evitando que los usuarios puedan predecir o ‘adivinar’ otros enlaces del sistema.

Decisión de Diseño: Redirección Controlada por el Cliente En lugar de que la API realice una redirección HTTP directa (302), opté por un enfoque donde el Frontend actúa como intermediario. Cuando el usuario ingresa a un enlace corto:

  1. React consulta a la API.
  2. Si el enlace es público, recibe la URL destino y redirige.
  3. Si es privado, la API retorna un desafío de seguridad (401/Password Required) y el Frontend renderiza el input de contraseña sin haber expuesto nunca la URL final.

Funcionalidad

  • Privacidad: Capa de seguridad para proteger el acceso a ciertos enlaces mediante contraseña.
  • Métricas de Alto Rendimiento: Implementé un contador atómico en el endpoint de consumo. Al mantener la lógica de métricas simple (incremento directo en base de datos), se asegura que la latencia de la redirección sea mínima.
  • Dashboard SPA: Panel de administración reactivo donde el usuario gestiona sus enlaces sin recargas de página.

Métricas