App full-stack — Proyecto personal
Aplicación web full‑stack para compartir y descubrir experiencias de viaje, donde los usuarios pueden registrarse e iniciar sesión mediante autenticación JWT, crear, editar, actualizar y eliminar sus propios destinos y experiencias, así como subir y modificar fotos asociadas. La plataforma incluye un sistema de puntos que recompensa el registro y la participación activa, fomentando así la interacción dentro de la comunidad. Los visitantes no registrados pueden explorar libremente las experiencias compartidas por otros viajeros y filtrar el contenido según destinos o tipos de experiencias, disfrutando de una navegación completa sin necesidad de cuenta.
Para mi TFG del Grado Superior en Desarrollo de Aplicaciones Web, debía crear una aplicación completa desde cero, desarrollando tanto el frontend como el backend y asegurando su comunicación eficiente. Opté por una plataforma de intercambio de experiencias de viaje, diferenciándome por sus filtros, gestión de imágenes y un sistema de puntos gamificado que incentiva la participación de los usuarios.
Desarrollé el backend con .NET 8 (C#) y Entity Framework Core como ORM, construyendo una API RESTful con autenticación basada en JWT y el intercambio de datos mediante DTOs. Para la parte cliente, implementé el frontend con Vue 3, que inicialmente usaba Vuetify, pero posteriormente migré a Tailwind CSS para lograr un diseño más profesional, limpio y personalizable. Todo el entorno está contenedorizado con Docker, permitiendo levantar con un solo comando la API, el frontend y la base de datos.
Documentación de la API REST: Auth (login/register), Destinos, Experiencias, Users (perfil/puntos). Soporte JWT Bearer para endpoints protegidos.
CRUD completo que devuelve el título, la descripción, el precio, el ratio, la fecha de creación, el UserId del propietario y los datos del usuario asociado, excluyendo la contraseña por seguridad. Incluye la relación entre User y Destination
Proyecto dockerizado con Docker Compose para levantar la API, Web y BD con un solo comando. 👉 docker-compose up --build.
Arquitectura en capas para mantener una separación clara de responsabilidades ( presentación, lógica de negocio y acceso a datos). JWT protege los endpoints y QueryParams para filtros.
Implementación de SQL Server con Entity Framework Core como ORM, estructurando el acceso a datos mediante DbContext, repositorios e inyección de dependencias.
Autenticación: Implementación de JWT para control de accesos seguro. Autenticación JWT Bearer con clave secreta desde appsettings.Local.json. Middleware aplicado + Swagger "Authorize".
¿Te interesa saber más sobre este proyecto?