Skip to content

Repository files navigation

Miin — Caso Práctico Web Developer

Proyecto Symfony 7.2 con Docker que implementa un sistema de gestión de stock con sincronización ERP↔eCommerce.

Requisitos

  • Docker y Docker Compose

Instalación rápida

# Clonar y arrancar
docker compose build
docker compose up -d

# Instalar dependencias
docker compose exec php composer install

# Crear tablas y cargar datos de prueba
docker compose exec php bin/console doctrine:migrations:migrate --no-interaction
docker compose exec php bin/console doctrine:fixtures:load --no-interaction

O usa el script helper:

bash temp/helperScriptSetup.sh

Uso

Endpoint de stock

# Stock del producto 1
curl http://localhost/api/stock/1

# Respuesta:
# {"stock_total":100,"stock_reserved":15,"stock_available":85}

Messenger (sincronización asíncrona)

# Consumir mensajes de la cola
docker compose exec php bin/console messenger:consume async --limit=10 -vv

# Ver mensajes fallidos
docker compose exec php bin/console messenger:failed:show

# Reintentar mensajes fallidos
docker compose exec php bin/console messenger:failed:retry

Tests

docker compose exec php bin/phpunit

Estructura del proyecto

├── compose.yaml                 # Docker services (MySQL, PHP-FPM, Nginx)
├── docker/                      # Dockerfiles y config
├── docs/
│   ├── ejercicio1-integracion.md  # Respuestas Ejercicio 1
│   └── adr/                       # Architecture Decision Records
├── sql/
│   ├── schema.sql                 # Schema SQL del ejercicio
│   └── stock_disponible.sql       # Query SQL del ejercicio
├── src/
│   ├── Controller/StockController.php   # GET /api/stock/{productId}
│   ├── Entity/                          # Product, Stock, Order, OrderLine
│   ├── Service/StockService.php         # Lógica de cálculo de stock
│   ├── Message/SyncStockMessage.php     # DTO para sincronización
│   └── MessageHandler/SyncStockHandler.php  # Handler asíncrono
└── tests/                               # PHPUnit tests

Entregables del ejercicio

Ejercicio Ubicación
Respuestas integración ERP↔eCommerce docs/ejercicio1-integracion.md
Query SQL stock disponible sql/stock_disponible.sql
Endpoint PHP (stock por producto) src/Controller/StockController.php
Schema SQL sql/schema.sql

About

Caso práctico Web Developer — Gestión de stock con Symfony 7.2 + Docker

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages