Proyecto de comercio electrónico moderno construido con Laravel y React.
- Docker & Docker Compose (recomendado)
- Opcional (instalación local): PHP 8.2+, Composer, Node.js 22+
git clone https://github.com/earhackerdem/cronosMaticStore
cd cronosMaticStore
make setupmake setup es el comando de entrada para cualquier entorno nuevo. Es idempotente — puedes ejecutarlo varias veces sin romper nada. Hace exactamente esto:
- Copia
.env.docker.example→.env(si no existe) - Levanta los servicios Docker (
docker compose up -d) - Instala dependencias PHP y Node
- Genera
APP_KEYsi falta - Corre migraciones
- Ejecuta seeders si la base de datos está vacía
- Crea el symlink de storage
Cuando termina, la app queda disponible en http://localhost:3000.
| Comando | Cuándo usarlo |
|---|---|
make setup |
Primera vez, o para reparar un entorno sin perder datos |
make fresh |
Reset completo — destruye volúmenes, reconstruye imágenes desde cero |
make quick-start |
El entorno ya está configurado, solo necesitas levantar y migrar |
make up # Levantar todos los servicios
make down # Detener servicios
make restart # Reiniciar servicios
make rebuild # Reconstruir imágenes Docker
make status # Ver estado de contenedores
make info # Ver URLs y credenciales
make logs # Ver logs de todos los servicios
make logs-dev # Ver logs del contenedor dev| Servicio | URL |
|---|---|
| Aplicación | http://localhost:3000 |
| Vite HMR | http://localhost:5173 |
| phpMyAdmin | http://localhost:8080 |
| API REST | http://localhost:3000/api/v1/ |
phpMyAdmin: usuario cronosmatic, contraseña cronosmatic_password.
make shell # Bash en el contenedor dev
make shell-db # Cliente MariaDB
make shell-redis # Redis CLI
make tinker # Laravel Tinkermake migrate # Ejecutar migraciones pendientes
make migrate-fresh # Reset completo con seed (destructivo)
make seed # Ejecutar seeders
make db-reset # Resetear base de datos
make db-backup # Crear backup en database/backups/
make db-restore FILE=database/backups/backup.sql # Restaurar backupmake artisan CMD="route:list" # Cualquier comando artisan
make cache-clear # Limpiar cachés de Laravel
make optimize # Optimizar para producción
make composer-install # Instalar dependencias PHP
make npm-install # Instalar dependencias Node
make install # Instalar todas las dependenciasmake build # Compilar assets de producción
make dev-assets # Iniciar Vite dev server (alias: make watch)make lint # ESLint --fix
make pint # Laravel Pint (PHP formatter)
make types # tsc --noEmit
make format # Prettier
make quality # lint + types + pintLa suite completa tiene 441 tests: 284 backend, 109 frontend, 48 E2E.
make test-all # Backend + Frontend + E2E (comando de referencia)
make test-backend # PHPUnit (284 tests)
make test-frontend # Vitest (109 tests)
make test-e2e # Cypress headless (48 tests)
make test-e2e-open # Cypress con UI interactiva
make test-filter FILTER="ProductTest" # Filtrar tests backend por nombre
make test-coverage # PHPUnit con cobertura
make test-parallel # PHPUnit en paraleloDocker vs local para E2E:
make test-e2eapunta a:3000(dev container).npm run test:e2eapunta a:8000(servicio app). En Docker usa siempremake test-e2e.
tests/ # PHPUnit
Unit/
Feature/Api/V1/
resources/js/__tests__/ # Vitest
components/
pages/
cypress/e2e/ # Cypress
products.cy.ts
cart-functionality.cy.ts
address-management.cy.ts
checkout/checkout-flow.cy.ts
make helpSi prefieres no usar Docker:
git clone https://github.com/earhackerdem/cronosMaticStore
cd cronosMaticStore
composer install
npm install
cp .env.example .env
php artisan key:generateEdita .env para usar SQLite:
DB_CONNECTION=sqlite
touch database/database.sqlite
php artisan migrate --seed
npm run build
php artisan serve # terminal 1
npm run dev # terminal 2GitHub Actions corre en push/PR a develop y main:
tests.yml— Backend (PHPUnit + MariaDB service), Frontend (Vitest), E2E (Cypress)frontend-tests.yml— Solo cuando cambian archivos frontend; incluye type-check y coberturalint.yml— ESLint, Prettier y Laravel Pint