Prerequisites
Ensure you have the following installed before starting:| Requirement | Version | Notes |
|---|---|---|
| PHP | 8.2+ | Required by composer.json |
| Composer | 2.x | Dependency manager |
| Node.js | 18 LTS+ | For Vite and Tailwind |
| npm | 9+ | Bundled with Node.js |
| SQLite | 3.x | Default DB — no server needed |
Setup
Run the setup script
The This runs the following in sequence:
composer.json includes a setup script that handles everything in one command:composer install— installs PHP dependencies- Copies
.env.exampleto.envif it doesn’t exist php artisan key:generate— generates the application encryption keyphp artisan migrate --force— runs all database migrationsnpm install— installs JavaScript dependenciesnpm run build— compiles assets with Vite
After setup,
APP_KEY in your .env will be filled automatically. Do not share this key.Configure your environment
Open For MySQL instead of SQLite:
.env and adjust the following values for local development:.env
.env
Start the development servers
Use the This starts four processes in parallel:
dev script to run all services concurrently:- server —
php artisan serveonhttp://localhost:8000 - queue —
php artisan queue:listen --tries=1 - logs —
php artisan pail --timeout=0 - vite —
npm run dev(hot module reload)
Submit your first quote
- Open
http://localhost:8000/cotizadorin your browser - Browse the service categories on the left panel
- Click any block to add it to your quote — prices and hours update instantly
- Fill in the Client Information form (name and email are required)
- Click Submit Quote
COT-67F1A2B3C4D5E. The quote is saved to the quotes table with status sent and a PDF is written to storage/app/public/quotes/.Verify the API
Confirm the API is responding:What’s next
Quote Builder
Understand how the client-facing SPA works in detail.
Quote Blocks
Configure the service blocks that clients can select.
PDF Export
Customise the branded quote PDF template.
API Reference
Explore all available REST endpoints.