Skip to content

Commit 53f6590

Browse files
committed
chore: update .gitignore to include challenge solutions and remove tsconfig.json
1 parent da752eb commit 53f6590

File tree

3 files changed

+128
-21
lines changed

3 files changed

+128
-21
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,6 @@ msbuild.wrn
6262
01-contenedores/lemoncode-challenge/dotnet-stack/backend/obj/Debug/netcoreapp3.1/backend.AssemblyInfo.cs
6363
01-contenedores/lemoncode-challenge/dotnet-stack/backend/obj/Debug/netcoreapp3.1/backend.GeneratedMSBuildEditorConfig.editorconfig
6464
01-contenedores/lemoncode-challenge/dotnet-stack/backend/obj/Debug/netcoreapp3.1/backend.AssemblyInfo.cs
65-
01-contenedores/lemoncode-challenge/node-stack/backend/CHALLENGE.md
65+
66+
# Challenge solutions for instructors only
67+
01-contenedores/lemoncode-challenge/**/CHALLENGE.md

01-contenedores/lemoncode-challenge/README.md

Lines changed: 125 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,133 @@
1-
# 🐳 Laboratorio Contenedores - Misiones del final del módulo 🕵🏻‍♀️🫆
1+
# 🐳 Laboratorio Contenedores - Retos del final del módulo 🕵🏻‍♀️🫆
22

33
![Laboratorio Docker](images/Laboratorio%20Docker.png)
44

55
>[!IMPORTANT]
6-
> Antes de lanzarte a contenerizar todo, ¡relájate y prueba la aplicación tal como está! 😌 Lo único que necesitas es tener MongoDB funcionando. Empieza creando MongoDB en Docker y usala extensión [MongoDB for VS Code](https://marketplace.visualstudio.com/items?itemName=mongodb.mongodb-vscode) para añadir datos que tu API pueda devolver. A parti de aquí ya estás list@ para comprobar lo que has aprendido.
6+
> Antes de lanzarte a contenerizar todo, ¡relájate y prueba la aplicación tal como está! 😌 Lo único que necesitas es tener MongoDB funcionando. Empieza con el **Reto 1** creando MongoDB en Docker. A partir de aquí ya estás list@ para comprobar lo que has aprendido.
77
8-
## 🎯 Misión 1: Dockeriza como un Pro
8+
## 🎯 Los 4 Retos
9+
10+
Vas a dockerizar una aplicación completa dentro de [lemoncode-challenge](./), que está compuesta de 3 partes increíbles:
11+
12+
- 🌐 **Frontend**: Una interfaz con Node.js
13+
- ⚙️ **Backend**: Elige tu aventura - .NET (`dotnet-stack`) o Node.js (`node-stack`) que se conecta con MongoDB
14+
- 🗄️ **Base de datos**: MongoDB para almacenar toda la información
15+
16+
> 💡 **¡Libertad de elección!** Como habrás notado, tienes dos carpetas: `dotnet-stack` y `node-stack`. El frontend es idéntico en ambos casos, solo cambia el backend. ¡Elige el que más te motive!
17+
18+
---
19+
20+
### 🔥 Reto 1: MongoDB en Contenedor
21+
22+
**Objetivo**: Ejecutar MongoDB dentro de un contenedor y conectar el backend (ejecutándose localmente) para que pueda recuperar, crear, modificar y eliminar Topics.
23+
24+
#### 📋 Requisitos:
25+
1. ✅ Crear una red Docker para la comunicación
26+
2. ✅ Ejecutar MongoDB en un contenedor con persistencia de datos
27+
3. ✅ Crear la base de datos `TopicstoreDb` con la colección `Topics`
28+
4. ✅ Ejecutar el backend localmente conectándose a MongoDB
29+
5. ✅ Verificar que el CRUD funciona correctamente
30+
31+
#### 💡 Tips:
32+
- Usa MongoDB Compass o la extensión [MongoDB for VS Code](https://marketplace.visualstudio.com/items?itemName=mongodb.mongodb-vscode) para añadir datos
33+
- Para ejecutar el backend localmente:
34+
- .NET stack: `dotnet run`
35+
- Node.js stack: `npm install && npm start`
36+
- Estructura de documento esperada:
37+
```json
38+
{
39+
"_id": { "$oid" : "5fa2ca6abe7a379ec4234883" },
40+
"topicName" : "Contenedores"
41+
}
42+
```
43+
44+
---
45+
46+
### 🐳 Reto 2: Dockerizar el Backend
47+
48+
**Objetivo**: Crear un Dockerfile para el backend y ejecutarlo en contenedor, conectado a MongoDB via red Docker.
49+
50+
#### 📋 Requisitos:
51+
1. ✅ Crear un Dockerfile para el backend (tanto para .NET como para Node.js)
52+
2. ✅ Construir la imagen del backend
53+
3. ✅ Ejecutar el backend en un contenedor en la red Docker
54+
4. ✅ Verificar que se conecta correctamente a MongoDB
55+
5. ✅ Exponerse el puerto 5000 para que sea accesible
56+
57+
#### 💡 Tips:
58+
- Define variables de entorno adecuadas para la conexión a MongoDB
59+
- Asegúrate de que la imagen sea lo más eficiente posible
60+
- Usa puertos correctos (5000 para la API)
61+
62+
---
63+
64+
### 🎨 Reto 3: Dockerizar el Frontend
65+
66+
**Objetivo**: Crear un Dockerfile para el frontend y ejecutarlo en contenedor, conectado al backend via red Docker.
67+
68+
#### 📋 Requisitos:
69+
1. ✅ Crear un Dockerfile para el frontend
70+
2. ✅ Construir la imagen del frontend
71+
3. ✅ Ejecutar el frontend en un contenedor en la red Docker
72+
4. ✅ Configurar las variables de entorno para conectarse al backend en `http://topics-api:5000/api/topics`
73+
5. ✅ Acceder a la interfaz desde el navegador en el puerto 8080
74+
75+
#### 💡 Tips:
76+
- El frontend debe ser accesible desde http://localhost:8080
77+
- Configura las variables de entorno para apuntar al backend correcto
78+
- Considera usar un servidor web lightweight (como nginx) para servir los archivos
79+
80+
---
81+
82+
### 🎪 Reto 4: Docker Compose - Todo Junto
83+
84+
**Objetivo**: Usar Docker Compose para orquestar todos los servicios (MongoDB, Backend, Frontend) como un director de orquesta.
85+
86+
#### 📋 Requisitos:
87+
1. ✅ Crear un `docker-compose.yml` que incluya los tres servicios
88+
2. ✅ Configurar la red compartida `lemoncode-network`
89+
3. ✅ Definir volúmenes para persistencia de MongoDB
90+
4. ✅ Establecer todas las variables de entorno necesarias
91+
5. ✅ Exponer los puertos correctos (8080 para frontend, 5000 para API, 27017 para MongoDB)
92+
6. ✅ Definir dependencias entre servicios
93+
7. ✅ Levantar toda la aplicación con un único comando
94+
8. ✅ Acceder a la aplicación desde el navegador en http://localhost:8080
95+
96+
#### 💡 Tips:
97+
- Usa `depends_on` para ordenar el inicio de los servicios
98+
- Mapea volúmenes para persistencia de datos
99+
- Define claramente las variables de entorno para cada servicio
100+
- Documenta los comandos útiles (up, down, logs, etc.)
101+
102+
---
103+
104+
## 📚 Estructura de Archivos
105+
106+
```
107+
lemoncode-challenge/
108+
├── README.md (este archivo)
109+
├── node-stack/
110+
│ ├── backend/
111+
│ │ └── ...
112+
│ └── frontend/
113+
│ └── ...
114+
└── dotnet-stack/
115+
├── backend/
116+
│ └── ...
117+
└── frontend/
118+
└── ...
119+
```
120+
121+
---
122+
123+
## 🎯 Resumen de Pasos Recomendados
124+
125+
1️⃣ **Primero**: Completa el **Reto 1** - MongoDB corriendo localmente
126+
2️⃣ **Segundo**: Completa el **Reto 2** - Backend en Docker
127+
3️⃣ **Tercero**: Completa el **Reto 3** - Frontend en Docker
128+
4️⃣ **Cuarto**: Completa el **Reto 4** - Todo orquestado con Docker Compose
129+
130+
¡Demuestra que eres un maestro de la orquestación de contenedores! 🎭✨
9131

10132
¡Es hora de poner en práctica todo lo aprendido! 💪 Vas a dockerizar una aplicación completa dentro de [lemoncode-challenge](./), que está compuesta de 3 partes increíbles:
11133

01-contenedores/lemoncode-challenge/node-stack/backend/tsconfig.json

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)