The LaraVue Starter Kit is an advanced project template that combines Laravel 12 on the backend and Vue 3 with Quasar Framework on the frontend, providing a solid foundation for scalable and modern web applications. It includes pre-configured authentication, user and permission management, an initial dashboard, and a responsive side menu. The kit supports automated testing and offers tools for monitoring and debugging.
- Key Features
- Technology Stack
- Installation and Configuration
- Database Configuration
- Project Architecture
- Database Schema & ER Diagram
- Commit Conventions
- Code Standards
- Laravel 12 β Robust backend with RESTful API support.
- β‘ Vue 3 + Quasar β Reactive UI for dynamic interfaces.
- π Authentication β Complete login system.
- π€ User Management β Roles and permissions using Spatie Permission.
- π Logs and Debugging β Laravel Debugbar + Spatie Activity Log.
- β Automated Testing β PestPHP.
- π Larastan β Advanced static analysis.
- ποΈ Automatic Documentation β Scramble for API documentation.
- Backend: Laravel 12, PHP 8.4
- Frontend: Vue 3.5, Quasar Framework, Pinia (State Management)
- Permissions: Spatie Permission
- Testing: PestPHP
- Static Analysis: Larastan (PHPStan for Laravel)
- Documentation: Scramble
- Debug & Monitoring: Laravel Debugbar, Laravel Horizon, Laravel Telescope, Spatie Activity Log
- Environment: Docker
git clone [email protected]:yanbrasiliano/starter-kit-laravue.gitcd starter-kit-laravuedocker compose up -d --build --force-recreate --remove-orphansNote: PostgreSQL is the default database.
- Copy
.env.exampleto.envand update the database connection variables. - Create a PostgreSQL database using your preferred client or CLI.
docker exec -it starterkit-app bash
composer install
npm install
php artisan migrate --seedIf you face permission issues:
chmod +x permissions.sh
./permissions.shdocker exec -it starterkit-app npm run devAccess: http://localhost:8001
We use Laravel's native Action Pattern to encapsulate each functionality in a dedicated Action, promoting separation of concerns and maintainability. We also adopt Event-Driven Development (EDD) to decouple processes, enabling asynchronous or synchronous event handling for features like notifications, audit logging, and integrations.
π Architecture Diagram: Application Architecture
source .env && pg_dump --schema-only --file=schema.sql "postgres://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_DATABASE}"npx @liam-hq/cli erd build --input $(pwd)/schema.sql --format=postgres --output-dir $(pwd)/publicDiagram will be available at /der?key=access_key (set APP_DER_KEY in .env).
We follow Conventional Commits for clarity and semantic versioning.
Format:
<type>: <Jira task ID> - <description>
Types:
featβ New featurefixβ Bug fixdocsβ Documentation changesrefactorβ Code restructuring without changing behaviortestβ Adding/fixing testsperfβ Performance improvementsbuildβ Build or tooling changesciβ CI/CD changesopsβ Infrastructure or operations changeschoreβ Misc changes (e.g., deps update)revertβ Reverting commits
- declare(strict_types=1); in all PHP files.
- Naming: methods β€ 5 words, avoid abbreviations, use imperative verbs.
- Variables in
camelCaseβ avoid abbreviations. - Routes follow
{resource}.{action}(e.g.,roles.index). - Methods: descriptive, max 5 words.
- REST API versioned as
/api/v1and breaking changes versioned. - Minimum coverage: lines β₯ 80%
- Run static analysis:
docker exec -it starterkit-app composer run:phpstan- Run PHP Insights:
docker exec -it starterkit-app composer run:phpinsights- Generate API documentation:
docker exec -it starterkit-app php artisan scramble:export- Run tests:
docker exec -it starterkit-app composer testor with coverage:
docker exec -it starterkit-app composer test:coverageTo run manually with a specific environment:
docker exec -it starterkit-app php artisan optimize:clear && env APP_ENV=testing php artisan test --env=testing --parallel