diff --git a/poblate/.gitignore b/poblate/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..25c8fdbaba62c31aacfa2307975b06fbfd017485
--- /dev/null
+++ b/poblate/.gitignore
@@ -0,0 +1,2 @@
+node_modules
+package-lock.json
\ No newline at end of file
diff --git a/poblate/delete.sh b/poblate/delete.sh
new file mode 100755
index 0000000000000000000000000000000000000000..0f21df56322ed8734079fee9edfd7d0611af21d9
--- /dev/null
+++ b/poblate/delete.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+# Configuración de la conexión a MySQL
+MYSQL_USER="user"          # Usuario de MySQL
+MYSQL_PASSWORD="password"  # Contraseña del usuario
+MYSQL_HOST="localhost"     # Dirección del servidor MySQL
+MYSQL_PORT="3306"          # Puerto de MySQL (3306 por defecto)
+
+# Nombres de las bases de datos a eliminar
+DATABASES=("Users" "Hotels" "Bookings")
+
+# Confirmación antes de eliminar
+echo "Las siguientes bases de datos serán eliminadas: ${DATABASES[*]}"
+read -p "¿Estás seguro de que deseas continuar? (escribe 'yes' para confirmar): " CONFIRMATION
+
+if [ "$CONFIRMATION" != "yes" ]; then
+    echo "Cancelado. Las bases de datos no se eliminarán."
+    exit 1
+fi
+
+# Eliminar cada base de datos
+for DB in "${DATABASES[@]}"; do
+    echo "Eliminando base de datos: $DB"
+    mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -h"$MYSQL_HOST" -P"$MYSQL_PORT" -e "DROP DATABASE IF EXISTS $DB;"
+    if [ $? -eq 0 ]; then
+        echo "Base de datos $DB eliminada correctamente."
+    else
+        echo "Error al eliminar la base de datos $DB."
+    fi
+done
+
+echo "Proceso completado."
diff --git a/poblate/environments/env.js b/poblate/environments/env.js
new file mode 100644
index 0000000000000000000000000000000000000000..12886285084a8dee9b92a40b89d3c2c3855f1b40
--- /dev/null
+++ b/poblate/environments/env.js
@@ -0,0 +1,6 @@
+export const env = {
+	authApi: "http://localhost:8101/",
+	userApi: "http://localhost:8201/users",
+	hotelsApi: "http://localhost:8301/hotels",
+	bookingsApi: "http://localhost:8401/bookings",
+};
diff --git a/poblate/environments/env.prod.js b/poblate/environments/env.prod.js
new file mode 100644
index 0000000000000000000000000000000000000000..12886285084a8dee9b92a40b89d3c2c3855f1b40
--- /dev/null
+++ b/poblate/environments/env.prod.js
@@ -0,0 +1,6 @@
+export const env = {
+	authApi: "http://localhost:8101/",
+	userApi: "http://localhost:8201/users",
+	hotelsApi: "http://localhost:8301/hotels",
+	bookingsApi: "http://localhost:8401/bookings",
+};
diff --git a/poblate/index.js b/poblate/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..8fa2252a7eafbee3b1c0f19e3a49d6957cee6563
--- /dev/null
+++ b/poblate/index.js
@@ -0,0 +1,140 @@
+const mockedUsers = require("./mocks/users.json");
+const mockedHotels = require("./mocks/hotels.json");
+const mockedBookings = require("./mocks/bookings.json");
+const axios = require("axios");
+const { jwtDecode } = require("jwt-decode");
+
+// Modo
+const args = process.argv;
+const isProduction = args.includes("--prod");
+
+const authUrl = "http://localhost:8101/auth";
+const hotelsUrl = "http://localhost:8301/hotels";
+const bookingUrl = "http://localhost:8401/bookings";
+
+const loj = (data) => {
+	console.log(JSON.stringify(data, null, 2));
+};
+
+// Función para calcular fechas pareadas
+function genDates(ref = new Date()) {
+	// before
+	const beforeStart = new Date(ref);
+	beforeStart.setDate(ref.getDate() - 14); // Restar 2 semanas
+
+	const beforeEnd = new Date(beforeStart);
+	beforeEnd.setDate(beforeStart.getDate() + 3);
+
+	// After
+	const afterStart = new Date(ref);
+	afterStart.setDate(ref.getDate() + 14); // Restar 2 semanas
+
+	const afterEnd = new Date(afterStart);
+	afterEnd.setDate(afterStart.getDate() + 2);
+
+	return [
+		{
+			start: beforeStart,
+			end: beforeEnd,
+		},
+		{
+			start: afterStart,
+			end: afterEnd,
+		},
+	];
+}
+
+function getRandomItem(a = []) {
+	return a[Math.floor(Math.random() * a.length)];
+}
+
+const savePost = async (data, first, second = "") => {
+	try {
+		try {
+			return await axios.post(first, data);
+		} catch (error) {
+			console.error("ERROR 1");
+			return await axios.post(second, data);
+		}
+	} catch (error) {
+		console.error("ERROR 2");
+		process.exit(-1);
+	}
+};
+
+async function register(user) {
+	const { data } = await savePost(
+		user,
+		`${authUrl}/register`,
+		`${authUrl}/login`
+	);
+	const decoded = jwtDecode(data.token);
+	user.id = decoded.id;
+	return user;
+}
+
+const addUsers = async () => {
+	const users = [];
+	for await (const user of mockedUsers) {
+		users.push(await register(user));
+	}
+
+	const admins = users.filter((u) => u.rol === "ADMIN");
+	const managers = users.filter((u) => u.rol === "HOTEL_ADMIN");
+	const clients = users.filter((u) => u.rol === "CLIENT");
+
+	return { admins, managers, clients };
+};
+
+const insertHotel = async ({ manager, hotel }) => {
+	const { data } = await axios.post(hotelsUrl, {
+		...hotel,
+		managerId: manager.id,
+	});
+	return data;
+};
+
+async function addHotels(managers) {
+	const hotels = [];
+	for await (const hotel of mockedHotels) {
+		const select = getRandomItem(managers);
+		hotels.push(await insertHotel({ hotel, manager: select }));
+	}
+	return hotels;
+}
+
+const insertBookings = async (booking) => {
+	console.log({ booking });
+	const { data } = await axios.post(bookingUrl, booking);
+	return data;
+};
+
+async function addBookings(clients, hotels) {
+	var i = 0;
+	const t = hotels.length;
+	for await (const hotel of hotels) {
+		const roomId = getRandomItem(hotel.rooms.filter((r) => r.available)).id;
+		const userId = getRandomItem(clients).id;
+		const des = (i - t / 2) * 15;
+		const date = new Date();
+		date.setDate(date.getDate() + des);
+		for await (const dates of genDates(date)) {
+			await insertBookings({
+				managerId: hotel.managerId,
+				userId,
+				hotelId: hotel.id,
+				roomId,
+				...dates,
+			});
+		}
+	}
+}
+
+async function init() {
+	const { managers, clients } = await addUsers();
+	const hotels = await addHotels(managers, 3);
+	await addBookings(clients, hotels);
+}
+
+console.log("MODE:", isProduction ? "PRODUCTION" : "DEVELOPMENT");
+init();
diff --git a/poblate/mocks/bookings.json b/poblate/mocks/bookings.json
index bf93e638b17471bc9585c37e0689f6808da03285..6c4fe5f2479c64f796313c967930b81bc5b52e9f 100644
--- a/poblate/mocks/bookings.json
+++ b/poblate/mocks/bookings.json
@@ -3,6 +3,7 @@
 		"clientId": 1,
 		"hotelId": 1,
 		"roomId": 2,
+		"managerId": 3,
 		"startDate": "2024-10-20",
 		"endDate": "2024-10-25"
 	},
@@ -10,6 +11,7 @@
 		"clientId": 3,
 		"hotelId": 2,
 		"roomId": 3,
+		"managerId": 4,
 		"startDate": "2025-02-22",
 		"endDate": "2025-02-27"
 	}
diff --git a/poblate/mocks/hotels.json b/poblate/mocks/hotels.json
index 4331cfea0d6964414b2b702b1cfafeb90a133821..34b23c1bcedd7fb513cd605ecfa3cf64e4ea0256 100644
--- a/poblate/mocks/hotels.json
+++ b/poblate/mocks/hotels.json
@@ -42,6 +42,16 @@
 				"roomNumber": "202",
 				"type": "SUITE",
 				"available": true
+			},
+			{
+				"roomNumber": "203",
+				"type": "SUITE",
+				"available": true
+			},
+			{
+				"roomNumber": "204",
+				"type": "SUITE",
+				"available": false
 			}
 		]
 	}
diff --git a/poblate/mocks/users.json b/poblate/mocks/users.json
index 72cd088b876a8b8d5a4adc4e588f01bdf61c3995..a23fb88035299cf8d82707929a91c7fc6e1bfc7d 100644
--- a/poblate/mocks/users.json
+++ b/poblate/mocks/users.json
@@ -1,20 +1,20 @@
 [
 	{
-		"name": "John Doe",
-		"email": "john.doe@example.com",
-		"password": "securePassword123",
-		"rol": "CLIENT"
+		"name": "ADMIN",
+		"email": "admin@dev.com",
+		"password": "123",
+		"rol": "ADMIN"
 	},
 	{
-		"name": "Jane Smith",
-		"email": "jane.smith@example.com",
-		"password": "securePassword456",
+		"name": "Hotel",
+		"email": "hotel@dev.com",
+		"password": "123",
 		"rol": "HOTEL_ADMIN"
 	},
 	{
-		"name": "Alice Johnson",
-		"email": "alice.johnson@example.com",
-		"password": "securePassword789",
+		"name": "Client",
+		"email": "client@dev.com",
+		"password": "123",
 		"rol": "CLIENT"
 	}
 ]
diff --git a/poblate/package.json b/poblate/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..21775f0b7229718bae14650299fd92f3754cc6f8
--- /dev/null
+++ b/poblate/package.json
@@ -0,0 +1,18 @@
+{
+	"name": "poblate",
+	"version": "1.0.0",
+	"main": "index.js",
+	"scripts": {
+		"dev": "node index.js",
+		"prod": "node index.js -- --prod",
+		"test": "echo \"Error: no test specified\" && exit 1"
+	},
+	"keywords": [],
+	"author": "",
+	"license": "ISC",
+	"description": "",
+	"dependencies": {
+		"axios": "^1.7.9",
+		"jwt-decode": "^4.0.0"
+	}
+}