| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- # ============================================================================
- # PROTOTYPE WORK FILE: [Page Number] [Page Name]
- # ============================================================================
- # Purpose: Complete planning document for section-by-section implementation
- # Created: [Date]
- # Page Spec: ../[Scenario]/[Page-Number]-[Page-Name]/[Page-Number]-[Page-Name].md
- # ============================================================================
- metadata:
- page_number: "[Page-Number]"
- page_name: "[Page Name]"
- scenario: "[Scenario-Number]-[Scenario-Name]"
- complexity: "simple | medium | complex"
- estimated_sections: [Number]
- estimated_time: "[X] minutes"
- # Device Compatibility
- device_compatibility:
- type: "mobile-only | mobile-tablet | responsive | desktop-only"
- primary_viewport: "[Width]px"
- test_viewports:
- - width: 375
- height: 667
- device: "iPhone SE"
- - width: 393
- height: 852
- device: "iPhone 14 Pro"
- - width: 428
- height: 926
- device: "iPhone 14 Pro Max"
- breakpoints: [] # For mobile-only, leave empty
- touch_optimized: true
- hover_interactions: false
- dependencies:
- - "shared/prototype-api.js"
- - "shared/init.js"
- # Add component dependencies as needed
- # ============================================================================
- # DESIGN TOKENS (Tailwind Config)
- # ============================================================================
- design_tokens:
- colors:
- primary: "#2563eb"
- primary_hover: "#1d4ed8"
- success: "#10b981"
- error: "#ef4444"
- tailwind_config:
- theme_extend:
- colors:
- "[project-name]":
- 50: "#eff6ff"
- 500: "#2563eb"
- 600: "#1d4ed8"
- 700: "#1e40af"
- fontFamily:
- sans: "['Inter', 'system-ui', 'sans-serif']"
- components_available:
- - "image-crop (components/image-crop.js)"
- - "toast (components/toast.js)"
- - "modal (components/modal.js)"
- - "form-validation (components/form-validation.js)"
- # ============================================================================
- # PAGE REQUIREMENTS (from specification)
- # ============================================================================
- page_purpose: |
- [Brief description of what this page does and why user is here]
- user_context:
- - [Context point 1: What user has done before arriving]
- - [Context point 2: What data is available]
- - [Context point 3: User's current state]
- success_criteria:
- - [Criterion 1: What must be accomplished]
- - [Criterion 2: Required validations]
- - [Criterion 3: Data that must be saved]
- - [Criterion 4: Where user navigates on success]
- # ============================================================================
- # DEMO DATA REQUIREMENTS
- # ============================================================================
- demo_data_needed:
- current_user:
- firstName: "[Example]"
- lastName: "[Example]"
- email: "[example@email.com]"
- # Add other demo data needs (family, dogs, etc.)
- example_submission:
- # Example of completed form data
- field1: "[value]"
- field2: "[value]"
- # ============================================================================
- # OBJECT ID MAP (all interactive elements)
- # ============================================================================
- object_ids:
- header:
- - "[page]-header-back"
- - "[page]-header-title"
- form_inputs:
- - "[page]-input-[field1]"
- - "[page]-input-[field2]"
- # Add all form fields
- actions:
- - "[page]-button-submit"
- # Add all action buttons
- # ============================================================================
- # SECTION BREAKDOWN (implementation order)
- # ============================================================================
- sections:
- - id: "section-1"
- name: "Page Structure & Header"
- scope: "HTML skeleton, header with back button, title, main container"
- files_affected: ["[Page-Number]-[Page-Name].html"]
- dependencies: []
- object_ids:
- - "[page]-header-back"
- - "[page]-header-title"
- tailwind_classes:
- - "Layout: min-h-screen, bg-gray-50"
- - "Header: bg-white, border-b, px-4, py-3"
- - "Button: text-gray-600, hover:text-gray-900"
- acceptance_criteria:
- - "Header displays with back button and title"
- - "Back button navigates to previous page"
- - "Mobile viewport (375px) looks correct"
- - "Tailwind styles applied correctly"
- placeholder_message: "🚧 Building the form... Check back in a few minutes!"
- - id: "section-2"
- name: "[Section Name]"
- scope: "[What this section adds]"
- files_affected: ["[Page-Number]-[Page-Name].html"]
- dependencies: ["[component files if needed]"]
- object_ids:
- - "[object-id-1]"
- - "[object-id-2]"
- tailwind_classes:
- - "[List key Tailwind classes to use]"
- acceptance_criteria:
- - "[Test 1]"
- - "[Test 2]"
- placeholder_message: "[What's coming next]"
- # Add sections 3-6+ as needed
- # ============================================================================
- # JAVASCRIPT REQUIREMENTS
- # ============================================================================
- javascript_functions:
- initialization:
- - "initPage() - Page-specific initialization"
- - "[Other init functions]"
- form_handling:
- - "handleSubmit(event) - Form submission"
- - "validateForm() - Validate all fields"
- - "[Other form functions]"
- ui_interactions:
- - "[Interaction function 1]"
- - "[Interaction function 2]"
- api_calls:
- - "DogWeekAPI.[method]([params])"
- feedback:
- - "showToast(message, type)"
- - "setLoadingState(isLoading)"
- - "[Other feedback functions]"
- # ============================================================================
- # NAVIGATION
- # ============================================================================
- navigation:
- previous_page: "[Previous-Page].html"
- next_page_success: "[Next-Page].html"
- next_page_cancel: "[Cancel-Page].html"
- # ============================================================================
- # TESTING CHECKLIST (after all sections complete)
- # ============================================================================
- testing_checklist:
- functionality:
- - "[ ] All form fields work"
- - "[ ] Validation shows errors correctly"
- - "[ ] Submit button works"
- - "[ ] Loading states display"
- - "[ ] Success feedback shows"
- - "[ ] Error handling works"
- - "[ ] Navigation works (back, next)"
- - "[ ] Data persists (reload page test)"
- mobile_testing:
- - "[ ] Viewport is correct width"
- - "[ ] All tap targets min 44x44px"
- - "[ ] Text is readable (min 16px)"
- - "[ ] No horizontal scroll"
- - "[ ] Touch gestures work (if applicable)"
- code_quality:
- - "[ ] All Object IDs present"
- - "[ ] Console logs helpful"
- - "[ ] No console errors"
- - "[ ] Tailwind classes properly used"
- - "[ ] Functions documented"
- accessibility:
- - "[ ] Keyboard navigation works"
- - "[ ] Form labels present"
- - "[ ] Error messages clear"
- - "[ ] Focus states visible"
- # ============================================================================
- # MIGRATION NOTES (for production)
- # ============================================================================
- migration_todos:
- - "Replace DogWeekAPI.[method]() with Supabase calls"
- - "[Other production migration tasks]"
- # ============================================================================
- # KNOWN ISSUES / EDGE CASES
- # ============================================================================
- edge_cases:
- - "[Edge case 1 to handle]"
- - "[Edge case 2 to handle]"
- # ============================================================================
- # COMPLETION CRITERIA
- # ============================================================================
- definition_of_done:
- - "All sections implemented and tested"
- - "All object IDs present and correct"
- - "All acceptance criteria met"
- - "Console logs helpful and clear"
- - "Mobile viewport works perfectly"
- - "Demo data loads automatically"
- - "Form validation complete"
- - "Success/error feedback working"
- - "Navigation works"
- - "No console errors"
- - "Code is clean"
- - "Story files document all sections"
|