Ventacar es una aplicación web para la compra y reserva de coches.
Ofrece una plataforma sencilla y accesible donde los usuarios pueden registrarse, explorar el catálogo, reservar o comprar un coche, y recibir facturas personalizadas por correo electrónico.
- Registro y autenticación de usuarios (login/logout).
- Listado de vehículos con filtros de búsqueda.
- Visualización de los detalles del coche (modelo, precio, características).
- Reserva o compra del vehículo.
- Generación de facturas en PDF personalizadas.
- Envío automático de facturas por correo tras compra o reserva.
- Lenguaje & Frameworks: Java (JDK 23), Spring Boot, Jakarta EE 9
- Frontend: HTML, CSS, JavaScript
- Backend: Java + Spring Boot
- Base de datos: PostgreSQL
- Servicios web: RESTful API
- Servidor: Tomcat 10.1
- Seguridad: Spring Security
- Otros: iText (PDF), Mailtrap SMTP (correo)
Este proyecto usa JWT (JSON Web Tokens) para autenticar usuarios y proteger endpoints.
Flujo principal:
- El usuario se registra con username y password.
- El usuario hace login y obtiene un token JWT firmado.
- Para acceder a endpoints protegidos, debe enviar el token en el header:
Authorization: Bearer <token>. - Spring Security valida el token y aplica permisos según roles.