Conference Registration Form Requirements
==========================================
Event: TechForward 2026 — Annual Developer Conference
Date: September 15-17, 2026
Venue: San Francisco Convention Center

The registration form needs to collect information from attendees for badge printing,
session allocation, dietary planning, and emergency contact purposes.

REQUIRED FIELDS
---------------

1. Full Name
   - Type: Text input
   - Validation: Must contain at least first and last name (minimum 2 words)
   - Maximum length: 100 characters
   - Used for: Badge printing

2. Email Address
   - Type: Email input
   - Validation: Must be a valid email format (contains @ and domain)
   - Must be unique (no duplicate registrations with same email)
   - Used for: Confirmation email, event updates

3. Company / Organization
   - Type: Text input
   - Validation: Required, minimum 2 characters
   - Maximum length: 150 characters
   - Used for: Badge printing, networking directory

4. Job Title
   - Type: Text input
   - Validation: Required, minimum 2 characters
   - Maximum length: 100 characters
   - Used for: Badge printing

5. Ticket Type
   - Type: Dropdown / Select
   - Options: "Early Bird ($399)", "Standard ($599)", "VIP ($999)", "Student ($149)"
   - Validation: Must select one option
   - Default: "Standard ($599)"
   - Note: Student ticket requires valid .edu email or student ID upload

6. Session Track Preference
   - Type: Radio buttons
   - Options: "Frontend Development", "Backend & Infrastructure", "AI & Machine Learning", "DevOps & Cloud", "Security"
   - Validation: Must select exactly one primary track
   - Used for: Session allocation and room planning

7. Agreement to Terms
   - Type: Checkbox
   - Validation: Must be checked to submit
   - Label: "I agree to the Code of Conduct and Terms of Service"
   - Link to both documents must be provided

OPTIONAL FIELDS
---------------

8. Phone Number
   - Type: Tel input
   - Validation: If provided, must be valid format (10+ digits, may include country code)
   - Format hint: "+1 (555) 123-4567"

9. Dietary Restrictions
   - Type: Multi-select checkboxes
   - Options: "None", "Vegetarian", "Vegan", "Gluten-Free", "Halal", "Kosher", "Nut Allergy", "Other"
   - If "Other" selected, show a text field for details (max 200 characters)
   - Default: "None"

10. T-Shirt Size
    - Type: Dropdown
    - Options: "XS", "S", "M", "L", "XL", "XXL"
    - Note: Conference swag bag includes a t-shirt

11. How Did You Hear About Us?
    - Type: Dropdown
    - Options: "Social Media", "Colleague/Friend", "Email Newsletter", "Company Sponsorship", "Previous Attendee", "Tech Blog/News", "Other"

12. Accessibility Requirements
    - Type: Textarea
    - Placeholder: "Please describe any accessibility needs (wheelchair access, sign language interpreter, etc.)"
    - Maximum length: 500 characters

13. Emergency Contact Name
    - Type: Text input
    - Maximum length: 100 characters

14. Emergency Contact Phone
    - Type: Tel input
    - Validation: If provided, must be valid phone format

15. Workshop Add-ons
    - Type: Multi-select checkboxes
    - Options:
      * "Pre-conference Workshop: Kubernetes Deep Dive ($199)"
      * "Pre-conference Workshop: React Server Components ($199)"
      * "Post-conference Workshop: Building LLM Applications ($249)"
    - Note: Workshops have limited capacity (50 seats each)

16. Networking Preferences
    - Type: Multi-select checkboxes
    - Options: "1-on-1 Mentoring Sessions", "Group Networking Lunch", "After-Hours Social Events", "Job Fair"

17. Special Requests / Comments
    - Type: Textarea
    - Maximum length: 1000 characters
    - Placeholder: "Any additional information or special requests"

FORM BEHAVIOR NOTES
-------------------
- Form should clearly distinguish between required and optional sections
- Required fields should be marked with an asterisk (*) or similar indicator
- Validation should happen on submit with clear error messages
- Successful submission should show a confirmation message with a registration ID
- A confirmation email should be sent to the provided email address
- The form should have a "Save as Draft" option for partial completion
