Índice
- Introducción
- Requisitos
- Estructura del proyecto
- Instalación — Backend
- Instalación — Frontend
- Ejecución con Docker (opcional)
- Autenticación
- Pruebas y linting
- Contribución
Introducción
- Propósito: Plantilla para construir ERPs personalizados usando Vue en el frontend y Symfony en el backend. Proporciona una base modular con autenticación JWT, estructura para entidades, rutas API y un frontend SPA con Vite.
Requisitos
- PHP 8.1+; Composer; Node.js 18+; npm o yarn; Docker (opcional); una base de datos compatible (MySQL/PostgreSQL).
Estructura del proyecto
backend/: aplicación Symfony (API, entidades, migraciones, configuración).frontend/: aplicación Vue + Vite (SPA, módulos, rutas).docker/,compose.yaml: contenedores y orquestación (opcional).
Instalación — Backend
- Clona el repositorio y entra en la carpeta
backend. - Instala dependencias:
cd backend
composer install- Configura variables de entorno copiando
.enva.env.localy ajustandoDATABASE_URL, JWT y otros valores. - Crea la base de datos y ejecuta migraciones:
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate- (Opcional) Carga datos de ejemplo:
php bin/console doctrine:fixtures:loadInstalación — Frontend
- Entra en
frontende instala dependencias:
cd frontend
npm install
# o: yarn- Desarrollo:
npm run dev- Build producción:
npm run buildEjecución con Docker (opcional)
- Revisa
docker/,compose.yamlycompose.override.yamlpara levantar servicios (PHP-FPM, base de datos, Nginx, y opciones para construir el frontend si están configuradas). Usadocker-compose up --buildo los comandos delMakefilesegún convenga.
Autenticación
- El backend incluye soporte para JWT mediante LexikJWTAuthenticationBundle. Para generar las claves (privada y pública) puedes usar la utilidad del bundle:
cd backend
php bin/console lexik:jwt:generate-keypair- Si usas passphrase para la clave privada, añade
JWT_PASSPHRASEen.envy ajustaconfig/packages/lexik_jwt_authentication.yamlsegún la documentación del bundle.
Pruebas y linting
- Backend (si aplica):
cd backend
php bin/phpunit- Frontend (según configuración):
cd frontend
npm run test
npm run lintContribución
- Si quieres contribuir, abre un issue o un merge request y sigue las guías de codificación del proyecto.