docs(README): añadido esquema de documentación

parent 080302b2
Showing with 93 additions and 5 deletions
...@@ -6,8 +6,30 @@ ...@@ -6,8 +6,30 @@
## Descripción del proyecto ## Descripción del proyecto
## Cómo ejecutarlo ---
## Configuración y ejecución
### Paso 1 - Clonar el proyecto
```bash
git clone https://gitlab.ujaen.es/amaf0001/AppRecetas.git
```
### Paso 2 - Seleccionar IDE
Se ha desarrollado con IntelliJ
### Paso 3 - Seleccionar configuración de ejecución
Si es IntelliJ Ultimate, seleccionar la opción de Spring Boot en la configuración de la ejecución mediante el IDE.
Si es otra versión, no sé si hay que añadir dependencias al pom o crear el proyecto desde https://start.spring.io/ e importar la estructura.
### Paso 4 - Ejecutar
Se lanza en el puerto http://localhost:8080.
---
## Dependencias ## Dependencias
* Spring Boot Core * Spring Boot Core
...@@ -26,11 +48,76 @@ ...@@ -26,11 +48,76 @@
- jackson-databind -> para convertir objetos Java a JSON y viceversa. - jackson-databind -> para convertir objetos Java a JSON y viceversa.
- org.projectlombok:lombok -> para reducir código repetitivo en las clases modelo. - org.projectlombok:lombok -> para reducir código repetitivo en las clases modelo.
## Endpoints API ---
GET /api/recetas → Lista todas las recetas ## Roles
POST /api/recetas → Agrega una receta
GET /api/recetas/{id} → Obtiene una receta específica - USER: tienen acceso a la funcionalidad "básica" de un usuario.
- ADMIN: pueden acceder a toda la funcionalidad de la app.
---
## Conexión BBDD
---
## Conexión con el micro servicio
Escucha en el puerto 5000 al micro servicio...
---
## Estructura
Uso de arquitectura hexagonal en tres capas:
1. Domain -> Capa central dónde se encuentran todos los datos de la entidad.
2. Application -> Capa de negocio dónde se realiza toda la lógica de la app y la conexión con el micro servicio.
3. Infrastructure -> Capa exterior de conexión con el frontend y con la BBDD para peticiones.
---
## Endpoints
### USER
- **Autenticación**:
- POST `/auth/register` -> Crea un usuario nuevo con los datos proporcionados siempre que cumplan los requisitos.
- POST `/auth/login` -> Permite el acceso a un usuario registrado comprobando sus credenciales.
- **Lectura**:
- GET `/user/me` -> Devuelve la información del usuario que la está solicitando.
- GET `/user` -> Devuelve un listado paginado con todos los usuarios registrados (solo ADMIN).
- **Borrado**:
- DELETE `/user/{id}` -> Elimina de la base de datos al usuario seleccionado por su id (solo ADMIN).
- **Actualización**:
- PUT `/user` -> Actualiza los datos del usuario logueado.
- PATCH `/user/deactivate` -> Desactiva (pone fecha de borrado) al usuario logueado.
- PATCH `/user/{id}/deactivate` -> Desactiva a un usuario según su id (solo ADMIN).
- PARCH `/user//{id}/activate` -> Reactiva a un usuario por su id (solo ADMIN).
### RECIPE
- **Creación**:
- POST `/recipe` -> Crea una receta nueva para el usuario logueado.
- **Lectura**:
- GET `/recipe/{id}` -> Devuelve la receta seleccionada mediante su id.
- GET `/recipe/mine` -> Devuelve un listado paginado de todas las recetas del usuario logueado.
- **Borrado**:
- DELETE `/recipe/{id}` -> Elimina la receta de un usuario por su id (siempre que esta pertenezca al usuario solicitante).
- **Actualización**:
- PUT `/recipe/{id}` -> Actualiza los datos de una receta seleccionada por el usuario (si esta le pertenece).
- **Búsqueda**:
- POST `/recipe/search` -> Recibe de la API de Gemini 4 recetas resumidas a través del micro servicio.
- POST `/recipe/search/more` -> Solicita 4 recetas más distintas a las anteriores.
- POST `/recipe/detail/{index}` -> Muestra la receta seleccionada por el usuario al completo.
---
## Seguridad
Se ha implementado un sistema basado en JWT y ... para la autenticación y autorización mediante token.
---
## Ejemplos de uso ## Ejemplos de uso
---
## Conclusión ## Conclusión
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment