# X-NGO Production Readiness

This checklist prepares the Laravel CMS for a real NGO deployment after the template conversion and admin modules are configured.

## Core Environment

- Set `APP_ENV=production`, `APP_DEBUG=false`, and a trusted `APP_URL`.
- Use MySQL or PostgreSQL for production data.
- Run `php artisan storage:link` so uploaded admin media is publicly available.
- Configure a real mail provider in `.env`; email campaigns, contact notifications, and password resets depend on mail.
- Run `php artisan config:cache`, `php artisan route:cache`, and `php artisan view:cache` during deployment.

## Queue And Scheduler

- Run a queue worker for email campaigns:

```bash
php artisan queue:work --tries=3 --backoff=30
```

- Configure the Laravel scheduler every minute:

```bash
php artisan schedule:run
```

- Use a process manager such as Supervisor, systemd, or a managed queue worker on the hosting platform.

## Admin Operations

- Create real admin users and rotate the seeded demo password immediately.
- Review `Site Settings`, `CMS Pages`, `Page Sections`, navigation, and public social links before launch.
- Confirm contact form submissions appear in `Admin > Communications > Contact Messages`.
- Confirm dashboard widgets show accurate impact, operations, and communications data.

## Communications

- Verify sender authentication with SPF, DKIM, and DMARC before sending campaigns.
- Segment subscribers with lists and tags before large sends.
- Send a test campaign from the admin before queueing live campaigns.
- Keep unsubscribe links enabled and test `/newsletter/unsubscribe/{token}`.

## Nigeria NGO Compliance Notes

- Store CAC Incorporated Trustees, SCUML/AML-CFT, tax, and data protection records in `Compliance Documents`.
- Keep beneficiary consent fields accurate and restrict access to sensitive records.
- Record donations with references and status changes for audit trails.
- Keep procurement requests, assets, and project milestones updated for donor reporting.

## Launch Verification

- Run migrations and seed only when appropriate:

```bash
php artisan migrate
php artisan db:seed --class=NgoDemoSeeder
```

- Build assets:

```bash
npm.cmd run build
```

- Smoke check public pages: `/`, `/home-modern`, `/about`, `/causes`, `/events`, `/gallery`, `/volunteers`, `/blog`, `/newsletter`, `/contact`.
- Smoke check admin: `/admin/login`, dashboard widgets, resources, image upload previews, campaign queue/test action.
