Aplicación web de tipo Single Page Application (SPA) para la gestión de publicaciones, con autenticación de usuarios mediante JWT implementado manualmente en PHP y consumo de API REST asíncrona con Fetch API.
Aplicación fullstack desarrollada sin frameworks, que implementa desde cero el patrón SPA con navegación sin recarga de página. El backend expone una API REST en PHP que gestiona la autenticación con tokens JWT y las operaciones CRUD sobre publicaciones. El frontend consume dicha API mediante peticiones asíncronas con Fetch API, gestionando el estado de sesión a través del token almacenado en el cliente.
| Capa | Tecnologías |
|---|---|
| Frontend | JavaScript (ES6+) · HTML5 · CSS3 · Fetch API |
| Backend | PHP · API REST · JWT manual |
| Autenticación | JSON Web Tokens (implementación propia) |
- Registro de nuevos usuarios
- Login con generación de token JWT desde el servidor PHP
- Logout con invalidación del token en cliente
- Sesión persistente mediante JWT almacenado en el cliente
| Acción | Requiere login |
|---|---|
| Consultar listado paginado | ❌ |
| Ver detalle de una publicación | ❌ |
| Crear nueva publicación | ✅ |
| Editar publicación existente | ✅ |
| Eliminar publicación | ✅ |
- Navegación entre vistas sin recarga de página
- Renderizado dinámico del DOM con JavaScript vanilla
- Gestión del estado de autenticación en el cliente
- PHP 8.x o superior
- Servidor web local (XAMPP, Laragon, MAMP...)
- MySQL
# 1. Clona el repositorio
git clone https://github.com/Raul-Labrador/Trabajo-SPA.git
cd Trabajo-SPA
# 2. Importa la base de datos
# Importa el archivo database.sql desde tu cliente MySQL (phpMyAdmin o CLI)
mysql -u root -p nombre_bd < database.sql
# 3. Configura la conexión a la base de datos
# Edita el archivo de configuración con tus credenciales
cp config.example.php config.php
# → Introduce tu host, usuario, contraseña y nombre de BD
# 4. Lanza el servidor
# Coloca el proyecto en la carpeta htdocs (XAMPP) o www (Laragon)
# y accede desde tu navegador a:
http://localhost/Trabajo-SPAProyecto desarrollado para la asignatura Desarrollo Web en Entorno Servidor (DWES) del Grado Superior de Desarrollo de Aplicaciones Web (DAW).
El objetivo era demostrar el dominio de la arquitectura SPA, la implementación de autenticación stateless con JWT y el consumo de una API REST propia, todo ello sin el uso de frameworks externos.