libra/docs/stories/story-11.4-documentation-up...

188 lines
6.3 KiB
Markdown

# Story 11.4: Documentation Updates
## Epic Reference
**Epic 11:** Guest Booking
## Story Context
This is the **final story** for Epic 11. After all guest booking functionality is implemented, this story updates the PRD and other documentation files to reflect the new guest booking capability. This ensures documentation stays in sync with the actual system features.
## User Story
As a **developer or stakeholder**,
I want **documentation to accurately reflect guest booking functionality**,
So that **future development and maintenance has accurate reference material**.
## Acceptance Criteria
### PRD Updates (docs/prd.md)
- [ ] Section 5.4 (Booking & Consultation System) updated with guest booking flow
- [ ] Guest vs client booking distinction documented
- [ ] 1-per-day limit for guests documented
- [ ] Custom captcha requirement documented
- [ ] Rate limiting rules documented
- [ ] Guest data handling documented
- [ ] Database schema section updated with guest fields
- [ ] Change log entry added
### Architecture Updates (docs/architecture.md)
- [ ] CaptchaService documented in Services section
- [ ] Guest booking flow documented
- [ ] Database schema changes noted
### CLAUDE.md Updates
- [ ] Any new patterns or services mentioned if needed
### Epic Completion
- [ ] Epic 11 marked as complete
- [ ] All story checkboxes marked done
## Implementation Steps
### Step 1: Update PRD Section 5.4
Add new subsection after the existing booking flow:
```markdown
#### Guest Booking Flow
In addition to client bookings, the system supports guest bookings for visitors without accounts.
**Guest Booking Process:**
1. **Guest Visits /booking:**
- Views available dates/times in calendar
- Selects preferred date and time
- Enters contact information (name, email, phone)
- Provides problem summary
- Completes captcha verification
- Submits booking request
2. **Spam Protection:**
- Custom math-based captcha (no third-party services)
- 1 booking request per email per day
- 5 booking requests per IP per 24 hours
3. **Guest Booking Status:**
- Booking enters pending queue (same as client bookings)
- Admin receives notification with guest contact info
- Guest receives email confirmation
4. **Admin Reviews Guest Booking:**
- Guest bookings appear in pending queue with "Guest" indicator
- Admin sees guest name, email, phone
- Same approval/rejection workflow as client bookings
5. **Guest Notifications:**
- Confirmation email on submission
- Approval email with calendar file on approval
- Rejection email with reason on rejection
**Guest vs Client Comparison:**
| Feature | Client Booking | Guest Booking |
|---------|---------------|---------------|
| Account Required | Yes | No |
| 1-per-day Limit | By user_id | By email |
| Contact Info | From user profile | Entered at booking |
| Email Notifications | To user email | To guest_email |
| View Past Bookings | In dashboard | N/A |
| Captcha | Not required | Required |
**Note:** Logged-in users visiting `/booking` are redirected to the client booking page.
```
### Step 2: Update PRD Database Schema Section
Add to Section 16.1 (Database Schema Overview):
```markdown
2. **consultations (bookings)**
- id, user_id (nullable for guests), guest_name, guest_email, guest_phone, booking_date, booking_time, duration (45 min), problem_summary, consultation_type (free/paid), payment_amount, payment_status (pending/received), status (pending/approved/rejected/completed/no-show/cancelled), admin_notes, created_at, updated_at
```
### Step 3: Update PRD Email Section
Add to Section 8.2 (Email Templates):
```markdown
**Guest Emails:**
1. **Guest Booking Confirmation** - Request submitted successfully
2. **Guest Booking Approved** - With consultation details and calendar file
3. **Guest Booking Rejected** - With reason (if provided)
```
### Step 4: Update PRD Change Log
Add entry to Section 18 (Change Log):
```markdown
| 1.2 | [Date] | Added guest booking functionality: public booking form at /booking, custom captcha, 1-per-day limit, guest email notifications, admin guest booking management | Development Team |
```
### Step 5: Update Architecture Documentation
Add to docs/architecture.md Services section:
```markdown
### CaptchaService
Located at `app/Services/CaptchaService.php`.
Provides custom math-based captcha for guest booking spam protection:
- `generate()` - Creates new captcha question, stores answer in session
- `validate($answer)` - Checks if provided answer matches stored answer
- `clear()` - Removes captcha from session after successful validation
No external dependencies (no Google reCAPTCHA, no Cloudflare Turnstile).
```
### Step 6: Mark Epic as Complete
Update `docs/epics/epic-11-guest-booking.md`:
Change all Definition of Done items to checked:
```markdown
## Definition of Done
- [x] All stories completed with acceptance criteria met
- [x] Existing client booking tests still pass
- [x] New tests cover guest booking scenarios
- [x] Admin can manage guest bookings through existing interface
- [x] Guest receives appropriate email notifications
- [x] Custom captcha working correctly
- [x] 1-per-day limit enforced
- [x] No regression in existing features
- [x] Bilingual support (Arabic/English) for guest form and emails
- [x] PRD and documentation updated
```
## Files to Update
| File | Section | Change |
|------|---------|--------|
| `docs/prd.md` | 5.4 Booking System | Add guest booking flow |
| `docs/prd.md` | 8.2 Email Templates | Add guest emails |
| `docs/prd.md` | 16.1 Database Schema | Update consultations table |
| `docs/prd.md` | 18 Change Log | Add version entry |
| `docs/architecture.md` | Services | Add CaptchaService |
| `docs/epics/epic-11-guest-booking.md` | Definition of Done | Mark complete |
## Testing Requirements
### Documentation Verification
- [ ] PRD sections render correctly in markdown preview
- [ ] All links in documentation are valid
- [ ] Change log version number is correct
- [ ] No broken internal references
## Dependencies
- Story 11.1 (Database Schema & Model Updates) - Complete
- Story 11.2 (Public Booking Form) - Complete
- Story 11.3 (Guest Notifications & Admin) - Complete
## Definition of Done
- [ ] PRD updated with guest booking documentation
- [ ] Architecture documentation updated
- [ ] Epic 11 marked as complete
- [ ] All documentation changes reviewed
- [ ] Version numbers updated appropriately