Shumiland/README.md
Vadym Samoilenko 9b41fa447a
Some checks are pending
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
feat: complete backend B1-B7 — Payload CMS, ezy payments, leads, deploy
- B1: Next.js 15 + Payload CMS 3.0 + Postgres 16, ESLint, Prettier, Husky, Vitest
- B2: 9 collections, 6 globals, 12 Page Builder blocks, access control, slugify/revalidate hooks
- B3: ezy.com.ua payments, Binotel HMAC webhook, leads API, Telegram bot, Resend email, rate limiting
- B4: Tariffs collection with ezy API sync (cron + manual), dynamic pricing source-of-truth
- B5: 13 test files covering unit libs and all API routes
- B6: Dockerfile multi-stage, docker-compose.prod.yml, nginx.conf SSL, GitHub Actions CI/CD, health endpoint
- B7: docs/admin-guide-ua.md (marketer guide), docs/deploy.md (VPS instructions), README quickstart

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 19:14:54 +01:00

59 lines
2 KiB
Markdown

# Shumiland
Website for Shumiland entertainment park — Next.js 15 + Payload CMS 3.0 + PostgreSQL 16.
## Quickstart (dev)
```bash
# 1. Install dependencies
pnpm install
# 2. Copy env and fill in values
cp .env.example .env
# 3. Start database
docker compose up postgres -d
# 4. Run dev server
pnpm dev
```
Open [http://localhost:3000/admin](http://localhost:3000/admin) to access the CMS admin.
On first run, Payload will prompt you to create an admin user.
## Commands
| Command | Description |
| ---------------- | --------------------------------- |
| `pnpm dev` | Start dev server with hot reload |
| `pnpm build` | Production build |
| `pnpm start` | Start production server |
| `pnpm lint` | ESLint check |
| `pnpm typecheck` | TypeScript check |
| `pnpm test` | Run tests |
| `pnpm format` | Prettier format |
| `pnpm seed` | Seed initial admin user + globals |
## Project structure
```
src/
├── app/api/ # API routes (leads, tickets, binotel, health, revalidate)
├── collections/ # Payload CMS collections (Pages, Blog, Tariffs, Leads, Orders, ...)
├── globals/ # Payload globals (Header, Footer, HomePage, SiteSettings, ...)
├── blocks/ # Page Builder blocks (Hero, Gallery, LeadForm, PricingBlock, ...)
├── lib/ # Integrations (ezy, binotel, telegram, resend, rateLimit, ...)
└── access/ # Access control helpers
tests/
├── unit/ # Unit tests (lib functions)
└── api/ # API route tests
docs/
├── admin-guide-ua.md # CMS guide for marketers (Ukrainian)
└── deploy.md # VPS deployment instructions
```
## Docs
- [Admin guide (UA)](docs/admin-guide-ua.md) — for marketers, no technical knowledge required
- [Deploy guide](docs/deploy.md) — VPS setup, secrets, CI/CD, backup/restore