update
This commit is contained in:
99
.paul/PROJECT.md
Normal file
99
.paul/PROJECT.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# 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*
|
||||
Reference in New Issue
Block a user