Aplicación móvil para recetas de café de especialidad con desarrollo TDD.
coffee-app/
├── backend/ # API Symfony con API Platform
├── mobile/ # App Expo React Native
├── scripts/ # Scripts de utilidad
├── .gitignore # Configuración Git global
├── Makefile # Comandos de desarrollo
├── PROJECT_INFO.md # Información del proyecto
└── README.md # Este archivo
📁 Ver estructura detallada: docs/PROJECT_STRUCTURE.md
Backend:
- Symfony 7.3
- API Platform 4.1
- Doctrine ORM
- PHPUnit 12.3
- SQLite (desarrollo)
Frontend:
- Expo (React Native)
- TypeScript
- Jest + React Native Testing Library
-
Entidad Recipe - Completamente testeada
- Propiedades: name, description, coffeeAmount, waterAmount, waterTemperature, grindSize, brewTime, roastLevel
- Método calculado: getRatio() para calcular proporción agua/café
- Validaciones con Symfony Validator
-
Repository Pattern - Completamente testeado
- CRUD básico (save, remove, find, findAll)
- Métodos de búsqueda personalizados (por grind size, roast level, tiempo de preparación)
-
API REST - Completamente testeada
- GET /api/recipes (colección)
- POST /api/recipes (crear)
- GET /api/recipes/{id} (obtener uno)
- PATCH /api/recipes/{id} (actualizar)
- DELETE /api/recipes/{id} (eliminar)
-
Fixtures de Datos
- 8 recetas populares precargadas (V60, French Press, Chemex, AeroPress, Espresso, Cold Brew, Moka Pot, Kalita Wave)
-
Tests
- 19 tests pasando
- Cobertura: Entidades, Repositorios, API endpoints
-
Configuración Completada
- ✅ Jest configurado con TypeScript
- ✅ Testing Library instalada
- ✅ Estructura de carpetas creada
-
Componentes y Lógica (TDD)
- ✅ RecipeCard component con helpers testeados
- ✅ RecipeService con métodos básicos
- ✅ Tipos TypeScript definidos
- ✅ App principal con datos mock
-
Tests Pasando
- ✅ 12 tests pasando
- ✅ Cobertura: Services, Components, Hooks, Screens
-
Integración Completa
- Conectar frontend con API backend
- Implementar navegación entre pantallas
- Agregar formularios para CRUD
-
Funcionalidades MVP
- Lista de recetas predefinidas
- Detalle de receta con timer
- Calculadora de ratios
- CRUD de recetas personales
🛠️ Usamos Makefile para mejor organización y potencia. Ver guía completa
make help # Ver todos los comandos disponibles
make install # Instalar todas las dependencias
make dev # Backend + Frontend simultáneomake backend-serve # Solo servidor backend
make mobile-start # Solo app móvil
make mobile-android # Abrir en Android
make mobile-ios # Abrir en iOSmake test # Ejecutar todos los tests
make test-backend # Tests del backend
make test-mobile # Tests del frontend
make test-watch # Tests en modo watchmake db-migrate # Ejecutar migraciones
make db-fixtures # Cargar datos de prueba
make db-reset # Reset completo (migrate + fixtures)make clean # Limpiar caches y archivos temporales
make fresh-install # Limpieza + reinstalación completa
make cache-clear # Solo limpiar cache backend
make status # Ver estado del proyectoEl proyecto sigue estrictamente Test-Driven Development:
- ✅ Escribir test que falle
- ✅ Escribir código mínimo para pasar el test
- ✅ Refactorizar manteniendo tests verdes
Estado actual: 22 tests pasando (10 backend + 12 frontend)