Este proyecto es un e-commerce ficticio que muestra productos del juego Animal Crossing: New Horizons. La información sobre los productos se obtiene mediante un scraper, que recoge datos de una API y los almacena en una base de datos MongoDB. La aplicación web está construida utilizando Django para el backend y React para el frontend.
- Backend: Django
- Frontend: React
- Base de Datos: MongoDB
- Mensajería Asíncrona: Apache Kafka
- Contenedores: Docker
- Entorno Virtual:
virtualenv
-
Crea un entorno virtual y activa
cd backend virtualenv env source env/bin/activate
-
Instala las dependencias
pip install -r requirements.txt -
Configura el archivo settings.py
Asegúrate de que la configuración de DATABASES esté apuntando a MongoDB:
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'products',
}
}
-
Realiza las migraciones
python manage.py makemigrations python manage.py migrate
-
Inicia el servidor de desarrollo
python manage.py runserver
-
Navega al directorio frontend
cd frontend -
Instala las dependencias
npm install -
Inicia el servidor de desarrollo
npm start
- Scraper
El script scraper.py obtiene los datos de los productos y los publica en Kafka.
python scraper.py
-
Consumidor de Kafka El script kafka_consumer.py consume los mensajes de Kafka y los almacena en MongoDB.
python kafka_consumer.py
Desde la raíz del proyecto:
-
Para construir y ejecutar todos los contenedores
docker-compose up --d -
Para detener los contenedores
docker-compose stop
Uso
- Backend: Accede a la API en http://127.0.0.1:8000/api/products/
- Frontend: Accede a la aplicación web en http://localhost:3000/