# 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*