Files
preregister/documentation/Setup.md

2.5 KiB

PreRegister — Quick Start (Docker)

Prerequisites

  • PHP >= 8.2 with extensions: mbstring, xml, curl, mysql, gd
  • Composer >= 2.7
  • Node.js >= 20
  • Docker & Docker Compose

Step-by-step setup

1. Create the Laravel project

composer create-project laravel/laravel preregister
cd preregister

2. Copy the project files into the Laravel root

Copy these files into the preregister/ folder:

  • docker-compose.yml
  • Makefile
  • PreRegister-Development-Prompt.md

3. Start the Docker containers

make up
# or: docker compose up -d

This starts three services:

Service URL Purpose
MySQL 8.0 localhost:3306 Database
phpMyAdmin http://localhost:8080 Database browser
Mailpit http://localhost:8025 Local email catcher

4. Configure .env

Open .env and replace the DB and MAIL sections with:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=preregister
DB_USERNAME=preregister
DB_PASSWORD=preregister

MAIL_MAILER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

QUEUE_CONNECTION=database

5. Install Breeze and build frontend

composer require laravel/breeze --dev
php artisan breeze:install blade
npm install

6. Run migrations and seed

php artisan migrate
php artisan db:seed  # after seeders are created

7. Start developing

make dev
# This runs php artisan serve + npm run dev in parallel
# App: http://localhost:8000

8. Start Claude Code

Open a second terminal in the project root:

claude

Then paste:

Read the file PreRegister-Development-Prompt.md in this project root. This is the full specification. Docker containers are already running (MySQL on 3306, phpMyAdmin on 8080, Mailpit on 8025). Breeze is installed. Start from Phase 1, Step 2 (create migrations). Work step by step and confirm before moving to the next phase.

Useful commands

Command What it does
make up Start Docker containers
make down Stop Docker containers
make fresh Drop all tables, re-migrate, re-seed
make queue Start the queue worker (for Mailwizz sync)
make dev Start Laravel + Vite dev servers
make routes Show all registered routes
make clear Clear all Laravel caches

Service URLs

Service URL
Application http://localhost:8000
phpMyAdmin http://localhost:8080
Mailpit (email UI) http://localhost:8025