Dreamland — Ghana short-video PWA. Play, Watch, Earn.
# Dreamland
Ghana-focused short-video PWA — **Play, Watch, Earn**. Creators upload reels, go live, and monetize; viewers unlock premium content with credits.
## Stack
| Component | Tech | Local port |
|-----------|------|------------|
| PWA | Static HTML/JS/CSS | `:3000` |
| API | PHP 8.2 + Yii2 | `:8080` |
| Admin | Yii2 backend | `:8081` |
| Database | MySQL (local) / **Supabase Postgres** (prod) | `:3309` |
| Live | Node + mediasoup | `:4443` |
| Moderation | Node + Gemini | `:4444` |
## Quick start (local)
```powershell
cd dreamland
.\start-walkthrough.ps1
```
| Service | URL |
|---------|-----|
| PWA |
localhost |
| API |
localhost |
| Admin |
localhost |
### Demo logins
| Role | Email | Password |
|------|-------|----------|
| Viewer | `viewer@dreamland.app` | `demo123` |
| Creator | `creator@dreamland.app` | `demo123` |
| Admin | username `admin` | `demo123` |
Seed demo data:
```powershell
cd backend/sayhi_v1.6_code
php scripts/seed-demo-data.php
```
## Smoke test
```powershell
.\scripts\smoke-test.ps1
```
Checks PWA, API health, database connectivity, and demo viewer login.
## Deploy to GitHub
```bash
cd dreamland
git init
git add .
git commit -m "Initial Dreamland release"
git branch -M main
git remote add origin
github.com
git push -u origin main
```
**Do not commit:** `.env`, `params-local.php`, `main-local.php`, uploads, or `vendor/` / `node_modules/`.
Copy `env.example` → `.env` for local overrides.
## Deploy PWA to Vercel
1. Import the GitHub repo in vercel.com
2. **Root directory:** `dreamland` (or repo root if monorepo only contains dreamland)
3. Vercel reads `vercel.json` — builds `web/` via `node scripts/generate-vercel-env.js`
4. Set environment variables:
| Variable | Example |
|----------|---------|
| `DREAMLAND_API_URL` | `
api.yourdomain.com` |
| `DREAMLAND_UPLOADS_URL` | `
api.yourdomain.com` |
5. Deploy — th …