Files
jachty.pkmp.com.pl/.paul/PROJECT.md
2026-05-06 00:18:37 +02:00

100 lines
3.4 KiB
Markdown

# jachty3.pagedev.pl
## What This Is
Strona internetowa wypożyczalni jachtów oparta na WordPress z customowym pluginem `yacht-booking-system`. System umożliwia prezentację floty jachtów, rezerwację przez frontend (kalendarz FullCalendar), zarządzanie rezerwacjami przez panel admina oraz dwukierunkową synchronizację z Google Calendar.
## Core Value
Klienci mogą sprawdzić dostępność jachtu i złożyć rezerwację przez stronę bez kontaktu z właścicielem.
## Current State
| Attribute | Value |
|-----------|-------|
| Version | 1.0.0 |
| Status | Beta |
| Last Updated | 2026-05-05 |
**Plugin:** `wp-content/plugins/yacht-booking-system/`
## Requirements
### Validated (Shipped)
- [x] Custom Post Types: `yacht`, `yacht_booking` — faza 1
- [x] Admin CRUD dla jachtów — faza 2
- [x] System dostępności z cache (`wp_yacht_availability`) — faza 3
- [x] Frontend kalendarz FullCalendar.js + Elementor widget + shortcode — faza 4
- [x] Backend formularza rezerwacji (REST API + email do admina) — faza 5
- [x] Admin zarządzanie rezerwacjami (approve/cancel/delete + email do klienta) — faza 6
- [x] Google Calendar OAuth 2.0 — faza 7
- [x] Synchronizacja dwukierunkowa Google Calendar ↔ WordPress — faza 8
- [x] Szablony email (WYSIWYG + tagi) — aktualizacja Codex 2026-02-11
- [x] Eksport CSV rezerwacji — aktualizacja Codex 2026-02-11
### Active (In Progress)
- [ ] Faza 9: Finalizacja (settings, testy, tłumaczenia, dokumentacja)
### Planned (Next)
- [ ] Tłumaczenia PL (.pot/.po/.mo)
- [ ] Security audit (nonce, escaping, SQL, capabilities)
- [ ] Testy cross-browser i mobile
- [ ] Dokumentacja użytkownika i dewelopera
### Out of Scope
- Integracja z systemami płatności (Stripe/PayPal) — poza obecnym zakresem
## Target Users
**Primary:** Właściciel wypożyczalni jachtów (admin)
- Zarządza flotą i rezerwacjami przez WP Admin
- Chce synchronizację z Google Calendar
**Secondary:** Klienci wypożyczalni
- Sprawdzają dostępność i składają rezerwacje przez frontend
## Context
**Technical Context:**
- WordPress + PHP 7.4+
- Elementor Pro (page builder)
- FullCalendar.js v6 (CDN)
- Google Calendar API (OAuth 2.0, natywna implementacja bez SDK)
- MySQL — custom tabela `wp_yacht_availability`
- REST API: namespace `yacht-booking/v1`
## Constraints
### Technical Constraints
- WordPress hosting (FTP deployment via ftp-kr)
- PHP 7.4+ (bez Composer/autoload PSR-4 — ładowanie manualne)
- FullCalendar via CDN (bez npm/bundlera)
## Key Decisions
| Decision | Rationale | Date | Status |
|----------|-----------|------|--------|
| Własna implementacja OAuth bez Google PHP Client | Lżejsze rozwiązanie bez zewnętrznych zależności | 2026-02-11 | Active |
| FullCalendar via CDN | Brak środowiska npm/Webpack na serwerze WP | 2026-02-11 | Active |
| Custom tabela `wp_yacht_availability` zamiast meta | Wydajność zapytań dostępności | 2026-02-11 | Active |
## Tech Stack
| Layer | Technology | Notes |
|-------|------------|-------|
| CMS | WordPress 6.x | |
| PHP | PHP 7.4+ | Singleton pattern, namespace YachtBooking\ |
| Frontend | FullCalendar.js v6 | CDN, jQuery |
| Page Builder | Elementor Pro | Custom widget |
| Database | MySQL | Custom table + CPT meta |
| Calendar Sync | Google Calendar API v3 | OAuth 2.0, native WP HTTP API |
| Deployment | FTP (ftp-kr VS Code extension) | |
---
*PROJECT.md — Updated when requirements or context change*
*Last updated: 2026-05-05*