Skip to content

CarburoApp/CarburoBackendREST

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Carburo API REST - Backend Java a través de Spring Boot (TFG)

📊 Calidad del Código (SonarCloud)

Estado General

Quality Gate Status Lines of Code

Bugs y Vulnerabilidades

Reliability Rating Bugs Vulnerabilities Security Rating

Cobertura y Mantenibilidad

Coverage Maintainability Rating Technical Debt


📘 Introducción

Este repositorio forma parte del Trabajo de Fin de Grado (TFG) de Manuel García Baldo en la Universidad de Oviedo.
Su objetivo es proporcionar un backend robusto en Java usando Spring Boot que disponga una API REST para poder ser usada por la aplicación de Carburo.app, gestionando usuarios, vehículos y repostajes, con sus históricos y estadísticas, para la aplicación principal del proyecto (Carburo App).

La comunicación con la aplicación móvil se realiza a través de la API REST que este backend genera, asegurando disponibilidad y datos actualizados.


⚙️ Estructura general del proyecto

El proyecto incluye:

  • Spring Boot con Spring Data JPA: Persistencia de entidades (usuarios, vehículos, repostajes) en Supabase/PostgreSQL.
  • API REST: Endpoints para la gestión de usuarios, vehículos y repostajes.
  • Servicios de negocio: Clases @Service que encapsulan la lógica de negocio.
  • Repositorios JPA: Interfaces JpaRepository para acceder a la base de datos de forma eficiente.
  • Manejo de excepciones y logging: Uso de @ControllerAdvice y Slf4j para registrar errores y actividad.

🔧 Configuración inicial

Antes de ejecutar el backend, es imprescindible configurar correctamente las variables de entorno relacionadas con la base de datos.

1️⃣ Variables necesarias para la base de datos

Variable Descripción
DB_URL Dirección del host de la base de datos
DB_USER Usuario con permisos de lectura y escritura
DB_PASS Contraseña correspondiente

Estas variables se utilizan en application.properties para configurar Spring Boot.

⚠️ Importante:
Si estas variables no se definen correctamente, el backend no podrá establecer conexión con la base de datos y los endpoints dejarán de funcionar.

2️⃣Variables de seguridad (API + JWT)

Variable Descripción
PUBLIC_API_KEY API Key requerida para acceder a endpoints públicos protegidos
SUPABASE_ISSUER Issuer del JWT de Supabase
SUPABASE_JWKS_URL URL del JWKS para validación de tokens JWT

🚨 Importante sobre seguridad

  • Todos los endpoints bajo /api/v1/public/** están protegidos por API Key

  • La API Key debe enviarse en el header: X-API-KEY: tu_api_key

  • El sistema JWT se usa para endpoints privados (auth futura o interna)

  • Si la API Key es incorrecta → se devuelve:

    • 401 UNAUTHORIZED
    • Invalid API Key

🔄 Funcionamiento general

API REST

El backend expone endpoints REST para:

  • Gestionar usuarios: alta, baja y modificación.
  • Registrar y consultar vehículos asociados a usuarios.
  • Registrar y consultar repostajes, con cálculos de consumo y gasto histórico.
  • Consulta multiple de estaciones de servicio y precios de combustibles

La aplicación móvil interactúa únicamente con esta API para consultar o actualizar datos de la BD.

Registro de actividad

El backend registra logs detallados de cada operación:

  • Altas y modificaciones de usuarios y vehículos.
  • Registro de repostajes y cálculos asociados.
  • Errores detectados y estado de persistencia.

📱 Relación con la aplicación Carburo

Este backend es el motor de gestión interna de la aplicación Android del TFG:

  • Los usuarios pueden gestionar sus vehículos y repostajes.
  • Consultar estadísticas y medias de consumo.
  • La app obtiene los precios y localización de estaciones directamente desde la BD de Supabase.

👨‍💻 Autor

Manuel García Baldo
Universidad de Oviedo
Trabajo de Fin de Grado - Ingeniería Informática (2025-26)


🧾 Licencia

Este proyecto se distribuye bajo licencia MIT.
Puede utilizarse, modificarse o redistribuirse libremente, siempre que se cite la fuente original.

About

API REST dispuesta para la aplicación móvil de Carburo.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages