Skip to content

Commit c4f88e4

Browse files
committed
Editando el README
1 parent d72836c commit c4f88e4

File tree

2 files changed

+159
-1
lines changed

2 files changed

+159
-1
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
README.md
21
target/
32
.mvn/wrapper/maven-wrapper.jar
43
!**/src/main/**/target/

README.md

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
# 🍳 MasterChef API
2+
3+
API REST para la gestión de recetas del programa **Máster Chef Celebrity**, desarrollada con **Spring Boot** y **MongoDB Atlas**.
4+
Este proyecto forma parte de la fase inicial de desarrollo del portal web del programa, donde los televidentes podrán consultar, publicar y gestionar recetas.
5+
6+
---
7+
8+
# 📋 Descripción del Proyecto
9+
10+
La API permite registrar, consultar, actualizar y eliminar recetas de cocina creadas por:
11+
- Participantes del programa.
12+
- Chefs del jurado.
13+
- Televidentes del público general.
14+
15+
Cada receta incluye:
16+
- Título
17+
- Lista de ingredientes
18+
- Pasos de preparación
19+
- Autor (con su tipo: participante, chef o televidente)
20+
- Temporada (solo si pertenece a un participante del programa)
21+
22+
Además, el sistema expone endpoints para:
23+
- Buscar recetas por ingrediente.
24+
- Filtrar recetas según su tipo de autor.
25+
- Consultar recetas por temporada o por número consecutivo.
26+
27+
---
28+
29+
# 🧱 Tecnologías utilizadas
30+
31+
- **Java 21**
32+
- **Spring Boot 3.5.6**
33+
- **MongoDB Atlas (NoSQL en la nube)**
34+
- **Maven**
35+
- **Swagger (Springdoc OpenAPI)** para documentación
36+
- **JUnit 5** para pruebas unitarias
37+
- **GitHub Actions** para CI/CD
38+
- **Azure App Service** para despliegue
39+
40+
---
41+
42+
# ⚙️ Instrucciones de instalación y ejecución local
43+
44+
## 🔹 1. Crear proyecto en SpringBoot
45+
46+
![img.png](img.png)
47+
48+
Y ordenamos las carpetas de tal manera que quede como una arquitectura de capas donde vamos a segmentar las responsabilidades.
49+
50+
![img_1.png](img_1.png)
51+
52+
Luego empezamos a crear la lógica en cada carpeta para poder realizar las Apis donde:
53+
54+
**Repository:** manejará la conexión con MongoDB.
55+
56+
**Service:** contendrá la lógica de negocio (crear, actualizar, buscar, eliminar).
57+
58+
**Controller:** expondrá los endpoints REST y usará Swagger para documentarlos.
59+
60+
**Model:** las entidades de la base de datos.
61+
62+
## 🔹 2. Creamos la base de datos en MongoDB Atlas
63+
64+
Creamos la base de datos en Atlas ya que es accesible desde cualquier lado incluído azure, gratis, fácil de usar, se conecta con URI y es la mejor opción para el despliegue en azure + swagger.
65+
66+
![img_2.png](img_2.png)
67+
68+
Y ya por último ponemos la URL en el application.properties para terminar de configurarlo.
69+
70+
![img_3.png](img_3.png)
71+
72+
## 🔹 3. API con pruebas unitarias
73+
74+
Una vez ya tenemos las 12 funcionalidades, realizamos las 3 pruebas que nos piden y ejecutamos el comando mvn test.
75+
76+
![img_4.png](img_4.png)
77+
78+
## 🔹 3. Probamos los request y response por cada Endpoint
79+
80+
### POST /api/recetas/televidente
81+
82+
![img_8.png](img_8.png)
83+
84+
![img_9.png](img_9.png)
85+
86+
### POST /api/recetas/participante
87+
88+
![img_10.png](img_10.png)
89+
90+
![img_11.png](img_11.png)
91+
92+
### POST /api/recetas/chef
93+
94+
![img_12.png](img_12.png)
95+
96+
![img_13.png](img_13.png)
97+
98+
### GET /api/recetas
99+
100+
Lista de todas las recetas creadas anteriormente:
101+
102+
![img_14.png](img_14.png)
103+
104+
### GET /api/recetas/{id}
105+
106+
![img_15.png](img_15.png)
107+
108+
![img_16.png](img_16.png)
109+
110+
### GET /api/recetas/televidente
111+
112+
Solo recetas con tipoAutor: TELEVIDENTE
113+
114+
![img_17.png](img_17.png)
115+
116+
### GET /api/recetas/participante
117+
118+
Solo recetas con tipoAutor: PARTICIPANTE
119+
120+
![img_18.png](img_18.png)
121+
122+
### GET /api/recetas/chef
123+
124+
Solo recetas con tipoAutor: CHEF
125+
126+
![img_19.png](img_19.png)
127+
128+
### GET /api/recetas/temporada/{numero}
129+
130+
![img_20.png](img_20.png)
131+
132+
![img_21.png](img_21.png)
133+
134+
### GET /api/recetas/buscar/{nombre}
135+
136+
![img_22.png](img_22.png)
137+
138+
![img_23.png](img_23.png)
139+
140+
### DELETE /api/recetas/{id}
141+
142+
![img_24.png](img_24.png)
143+
144+
![img_25.png](img_25.png)
145+
146+
### PUT /api/recetas/{id}
147+
148+
![img_26.png](img_26.png)
149+
150+
![img_27.png](img_27.png)
151+
152+
Y con eso terminamos de probar las 12 funcionalidades de nuestra API en Swagger.
153+
154+
155+
Y comprobamos si se guardó en la base de datos en MongoDB
156+
157+
![img_28.png](img_28.png)
158+
159+

0 commit comments

Comments
 (0)