feat: initial project with Phase 1 complete
This commit is contained in:
117
documentation/Setup.md
Normal file
117
documentation/Setup.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
make up
|
||||
# or: docker compose up -d
|
||||
```
|
||||
|
||||
This starts three services:
|
||||
|
||||
| Service | URL | Purpose |
|
||||
|---|---|---|
|
||||
| MySQL 8.0 | `localhost:3306` | Database |
|
||||
| phpMyAdmin | [http://localhost:8080](http://localhost:8080) | Database browser |
|
||||
| Mailpit | [http://localhost:8025](http://localhost:8025) | Local email catcher |
|
||||
|
||||
### 4. Configure .env
|
||||
|
||||
Open `.env` and replace the DB and MAIL sections with:
|
||||
|
||||
```env
|
||||
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
|
||||
|
||||
```bash
|
||||
composer require laravel/breeze --dev
|
||||
php artisan breeze:install blade
|
||||
npm install
|
||||
```
|
||||
|
||||
### 6. Run migrations and seed
|
||||
|
||||
```bash
|
||||
php artisan migrate
|
||||
php artisan db:seed # after seeders are created
|
||||
```
|
||||
|
||||
### 7. Start developing
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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 |
|
||||
Reference in New Issue
Block a user