No description
Pages implemented: - grupovi-vidviduvannia: tilted polaroid banners, amenity grid, wave pricing, correct Figma tile pattern - dni-narodzhennia: hero, package cards, pricing, order form - kvytky: horizontal ticket rows with photos, tabs, combo, benefits accordion - kvytky/dyakuiemo: SVG ticket shape with perforations - dynozavry: DinoWheel 25 dinosaurs with real images + gallery (node 2004:560/568) - HeroSlider: vertical slider with 6 slides Components: - DinoWheel: complete 25-dino dataset from Figma, orange semicircle SVG rotation, gallery below - KvytkyTicketsClient: rewritten to horizontal row layout matching Figma - HeaderClient: remove overflow-hidden clipping dropdown; add chevron indicator - Header: inherit DEFAULT_NAV children when CMS has no children for that item Fixes: - Nav dropdown: CMS was overriding DEFAULT_NAV without children — now inherits - Wave pattern: use correct Figma wave tile (wave-tile-correct.png, 657x868px) for .wave-bg-pricing - Lokatsii nav links: ДиноПарк → /lokatsii/dynozavry, ДивоЛіс → /lokatsii/dyvolis Assets: 35+ new images (dino-*, group-*, birthday-*, ticket-*, gallery) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .github/workflows | ||
| .husky | ||
| docs | ||
| migrations | ||
| public | ||
| scripts | ||
| src | ||
| tests | ||
| .dockerignore | ||
| .env | ||
| .env.example | ||
| .gitignore | ||
| .npmrc | ||
| .pnpmfile.mjs | ||
| .prettierrc.json | ||
| docker-compose.prod.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| Dockerfile.migrator | ||
| eslint.config.mjs | ||
| figma.config.json | ||
| next-env.d.ts | ||
| next.config.ts | ||
| nginx.conf | ||
| package.json | ||
| payload.config.ts | ||
| playwright.config.ts | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| postcss.config.mjs | ||
| README.md | ||
| tsconfig.json | ||
| tsconfig.payload.json | ||
| vercel.json | ||
| vitest.config.ts | ||
| vitest.setup.dom.ts | ||
| vitest.setup.ts | ||
Shumiland
Website for Shumiland entertainment park — Next.js 15 + Payload CMS 3.0 + PostgreSQL 16.
Quickstart (dev)
# 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 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) — for marketers, no technical knowledge required
- Deploy guide — VPS setup, secrets, CI/CD, backup/restore