# Cinderella Charity Ball - ENHANCED Website Redesign Specification

> **Purpose:** Comprehensive specification for raw PHP website redesign  
> **Date:** May 3, 2026  
> **Project:** Modern, engaging redesign of cinderellacharityball.com  
> **Target Platform:** Raw PHP (no WordPress, no CMS)  
> **Integrates:** Website content analysis + Facebook insights + design recommendations

---

## Table of Contents

1. [Executive Summary](#1-executive-summary)
2. [Current State Analysis](#2-current-state-analysis)
3. [Site Structure & Navigation](#3-site-structure--navigation)
4. [Complete Page Content Reference](#4-complete-page-content-reference)
5. [DESIGN RECOMMENDATIONS](#5-design-recommendations)
6. [CONTENT ENHANCEMENTS](#6-content-enhancements)
7. [TECHNICAL IMPLEMENTATION NOTES](#7-technical-implementation-notes)
8. [Image & Media Assets](#8-image--media-assets)
9. [Social Media Integration Strategy](#9-social-media-integration-strategy)
10. [Success Metrics & KPIs](#10-success-metrics--kpis)

---

## 1. Executive Summary

### Project Overview
Redesign the Cinderella Charity Ball website from WordPress to raw PHP with a modern, engaging user experience that drives donations, increases engagement, and effectively communicates the organization's 65+ year legacy of supporting Arlington's Boys & Girls Clubs.

### Key Statistics (Must Feature Prominently)
- **$15+ million** raised since 1961
- **65+ years** of continuous operation  
- **8,190 Arlington children** served in 2023
- **1,100-1,300 attendees** per Ball (sells out annually)
- **$150 per person** ticket price
- **600+ candidates** have participated historically
- **$12,500+** in scholarships awarded annually
- **~60 volunteer members** in the Ladies' Auxiliary

### Primary Goals
1. **Increase online donations** through improved UX and clear CTAs
2. **Enhance candidate profiles** with modern, shareable pages
3. **Tell the impact story** better through visual storytelling
4. **Mobile-first responsive design** (Facebook engagement is primarily mobile)
5. **Real-time campaign updates** integration
6. **Social media cross-promotion** capabilities
7. **SEO optimization** for local search and discoverability

### Target Audiences
- **Donors & Sponsors** (primary revenue source)
- **Prospective Candidates** (high school sophomores/juniors in Arlington)
- **Community Members** (Ball attendees, supporters)
- **Ladies' Auxiliary Members** (volunteers, organizers)
- **Boys & Girls Clubs stakeholders** (demonstrating impact)

---

## 2. Current State Analysis

### Current Platform
- **CMS:** WordPress
- **Theme:** Accelerate Pro by ThemeGrill
- **E-commerce:** WooCommerce (membership dues)
- **Analytics:** ExactMetrics (Google Analytics)

### Current Strengths
✅ Comprehensive historical data (65 years of winners, scholarship recipients)  
✅ Complete candidate information with professional photography  
✅ Clear organizational structure and governance transparency  
✅ Multiple donation pathways (checks, credit cards, candidate-specific)  
✅ Strong brand identity and visual consistency  

### Current Weaknesses
❌ Static, dated design aesthetic  
❌ Limited real-time campaign updates (relies on Facebook for this)  
❌ No impact storytelling or visual data representation  
❌ Poor mobile responsiveness in some areas  
❌ Minimal social media integration on website  
❌ No campaign progress tracking or countdown timers  
❌ Limited candidate fundraising creativity showcase  
❌ No behind-the-scenes content from Facebook integrated  

### Facebook Insights Summary
- **~1,298 Facebook likes** with **~42% engagement ratio** (very high!)
- **~1,177 Instagram followers** with 501+ posts
- Peak engagement posts: Candidate socials (84 reactions), Impact tours (48 reactions, 5 shares)
- Content that resonates: Photos of people, impact stories, urgency-driven appeals
- Unique Facebook content NOT on website: Real-time updates, behind-the-scenes, candidate-generated fundraising content, community interactions

---

## 3. Site Structure & Navigation

### Recommended Information Architecture

```
HOME
├── About
│   ├── About The Ball (history, mission)
│   ├── Our Impact (NEW - visual storytelling)
│   ├── Our History (timeline format)
│   ├── Leadership
│   │   ├── The Committee
│   │   ├── Ladies' Auxiliary
│   │   └── Auxiliary Members
│   └── Chris Hightower (honorary mention)
│
├── The Ball
│   ├── 2026 Ball Recap (formerly "66th Annual Review")
│   ├── 2026 Results
│   ├── 2026 Ball Program
│   └── Prior Years Archive
│
├── Candidates
│   ├── Meet the 2026 Candidates (grid with filters)
│   ├── Individual Candidate Pages (template-based)
│   ├── Cinderellas in History (sortable table)
│   └── Scholarship Winners (sortable table)
│
├── Support Us
│   ├── How to Donate (improved UX)
│   ├── Sponsorship Opportunities (NEW)
│   ├── Volunteer with Ladies' Auxiliary
│   └── Membership Dues/Renewals
│
├── Boys & Girls Clubs
│   ├── About BGCGTC
│   ├── Impact Stories (NEW - Facebook integration)
│   ├── How We Help (facilities, programs funded)
│   └── Visit a Club
│
├── News & Updates (NEW)
│   ├── Campaign Updates Blog
│   ├── Press Coverage (NEW)
│   ├── Photo Gallery
│   └── Social Media Feed (embedded)
│
└── Contact
    ├── Contact Us (improved form)
    ├── Privacy Policy
    └── Terms of Use
```

### Primary Navigation (Desktop)
**Top Bar:** Social icons (Facebook, Instagram) | Donate Button (CTA)  
**Main Nav:** Home | About | The Ball | Candidates | Support Us | Boys & Girls Clubs | News | Contact  

### Mobile Navigation
- Hamburger menu with smooth slide-out
- Sticky "Donate" button at bottom of screen
- Quick access to current year's candidates

---

## 4. Complete Page Content Reference

### 4.1 HOME PAGE

#### Current Layout (2-column)
**Left:** Miss Cinderella 2026 feature photo (Claire Diane Novoselsky)  
**Right:** Organization logos, announcements, quick links  

#### Proposed NEW Layout (Modern, Dynamic)

**Hero Section** (Full-width, image background)
- Large professional photo of Miss Cinderella 2026 (Claire Diane Novoselsky)
- Overlay text: "Introducing Miss Cinderella 2026 — Claire Diane Novoselsky"
- **Primary CTA Button:** "Meet All 2026 Candidates"
- **Secondary CTA Button:** "Donate Now"
- **Countdown:** "Next Ball: April 10, 2027" (dynamic countdown timer)

**Impact Stats Bar** (Full-width, colored background)
```
$15M+          65+           1,200+         8,190
RAISED         YEARS         ATTENDEES      KIDS SERVED
SINCE 1961     OF IMPACT     ANNUALLY       IN 2023
```

**What's New Section** (3-column cards)
- Card 1: "2026 Results Are In!" → Link to results page
- Card 2: "Meet Our Candidates" → Candidate grid preview (top 6 photos)
- Card 3: "Listen to the Ball Recap" → Audio player embed

**How It Works** (Visual timeline/process)
1. **Apply** - Arlington high school students apply each fall
2. **Campaign** - Candidates fundraise Feb-Apr for Boys & Girls Clubs
3. **The Ball** - Annual gala announces Miss Cinderella
4. **Impact** - 100% of proceeds support Arlington youth programs

**Impact Spotlight** (Image carousel from Facebook)
- Behind-the-scenes Boys & Girls Club tours
- Facility improvements funded by campaign
- Candidate social events
- Community engagement photos

**Call to Action Banner**
"Ready to make a difference? Support our 2027 candidates or join the Ladies' Auxiliary"  
**Buttons:** Donate | Volunteer | Learn More

**Upcoming Events** (Dynamic event listing)
- Next Ball: April 10, 2027 at Arlington Convention Center
- Candidate Application Period: Fall 2026
- Ladies' Auxiliary Meetings: [Monthly schedule]

**Partner Logos Footer Section**
- Ladies' Auxiliary of Arlington logo
- Boys & Girls Clubs of Greater Tarrant County logo
- Photography credits (Heather Harvey Photography, Terry Ip Photography)

---

### 4.2 ABOUT PAGES

#### About The Ball (Enhanced)

**Current Content to Retain:**
> The Cinderella Charity Ball is Arlington's longest-standing social event and charitable fundraiser. Established in 1961, the event was met with tremendous success, raising essential funds for the Arlington Boys Clubs. The success of this inaugural ball led the Board of Directors to designate it as an annual tradition.
> 
> In 1967, the Ladies' Auxiliary was formed to assume the responsibility of organizing this prestigious event. While the Auxiliary plays a key role in supporting the club's operations, the Cinderella Charity Ball continues to be its foremost and most impactful project each year.
> 
> Proceeds from the Cinderella Charity Ball provide critical resources for the Arlington branches of the Boys & Girls Clubs of Greater Tarrant County, supporting capital improvements to facilities and major operational expenditures. These funds have been integral in enhancing the clubs' facilities and programs. Significant investments made possible through the Ball include the purchase of vehicles, office equipment, scholarships, the addition of a boxing gym at the Main Branch, the completion of the Southeast Branch building in 1981, the expansion of the basketball gym in 1996, and the opening of the Kromer Branch in 1998. In recent years, the introduction of the Mobile Clubhouse Experience has enabled the clubs to extend their programs to children beyond their Arlington locations. In 2023, the Kromer Branch completed renovations to create a Music & Youth Clubhouse, providing a space for fostering creativity and self-expression among young people. Additionally, in 2024 the Dan Serna Branch completed their renovations. All funds raised by candidates for the Cinderella Ball, after covering event expenses, are directly allocated to projects that benefit the Boys & Girls Clubs of Greater Tarrant County in Arlington.
> 
> Over the past 65 years, the Cinderella Charity Ball has raised over $15 million in support of the Boys & Girls Clubs in Arlington. We invite young ladies who are eager to contribute to this important cause to apply and join us in making a positive impact on the children of Arlington.

**Enhancement: Add Visual Timeline**
```
1961 → First Cinderella Ball raises funds for Arlington Boys Clubs
1967 → Ladies' Auxiliary formed to organize the event
1981 → Southeast Branch building completed
1996 → Basketball gym expansion
1998 → Kromer Branch opens
2015 → $15 million fundraising milestone reached
2023 → Music & Youth Clubhouse opens at Kromer Branch
2024 → Dan Serna Branch renovations completed
2026 → 66th Annual Ball, Claire Diane Novoselsky crowned
```

#### Our History (Enhanced with Storytelling)

**Current Content to Retain:**
> The Cinderella Ball has been held annually for over 65 years. This event is planned by the Ladies' Auxiliary, which has around 60 members and is open to all women in the community. The only expenses incurred are those to put on the Ball. There are no Auxiliary salaries, as it is a completely volunteer, non-profit organization. The goal of the Cinderella Ball is to raise as much money as possible for the Boys & Girls Clubs in Arlington by reaching out to the community. The funds also provide a $2500 scholarship for future educational needs of the Boys & Girls Clubs Youth of the Year from Arlington.

**Application & Selection Process:**
> Each fall, the previous year's candidates nominate young women they feel would be good nominees for the current year. The event is also promoted on Facebook and Instagram so potential applicants are informed of when applications may be downloaded from the website. There is no limit to the number of girls that may apply, but the maximum the Ladies' Auxiliary will select is twenty. 
> 
> **Eligibility Requirements:**
> 1. Currently be a sophomore or junior in high school
> 2. Attend school within the Arlington city limits OR reside within the Arlington city limits
> 
> The applications must be filled out completely with a listing of the applicant's school, community, and church activities and honors, as well as academic standing. There is also an area to include the parents' community activities and involvement. Selection is based on the entire application, with leadership abilities and community interest being as important as academic success. It is hoped that each year the girls selected as candidates will excel in all areas. This is a very difficult process, since there are always so many outstanding and deserving applicants.

**Key Facts:**
- **Total Raised (as of 2024):** $15,056,527.81
- **Candidate Growth:** 7 original (1961) → 20 selected annually
- **Ball Attendance:** Consistently sells out with 1,100-1,300 attendees ($150/person)
- **Scholarships:** $2,500 Youth of the Year + Three night-of-scholarships: $6,000 (1st), $4,000 (2nd), $2,000 (3rd) sponsored by First Rate + $500 volunteer scholarship from Baylor Orthopedic & Spine Hospital

**Community Impact:**
- Miss Cinderella and prior candidates represent Boys & Girls Clubs at events
- Participate in annual 4th of July Parade, Parade of Lights
- Support new candidates through "Yes" basket deliveries

**Selection Notes:**
- Scholarship applications are anonymous to avoid donor influence
- Scholarships awarded purely on academic records, teacher input, and essays
- Volunteer scholarship based on pre-campaign Boys & Girls Club hours

**Enhancement: Interactive Elements**
- Photo gallery of historical Ball moments (sourced from Prior Year Sites)
- "By the Numbers" interactive infographic
- Testimonials from past Cinderellas and Auxiliary members

---

### 4.3 CANDIDATE PAGES

#### 2026 Candidates Grid Page

**Current Content:**
18 candidates with names, schools, years, escorts (text-only list)

**Proposed Enhancement:**
- **Filter Options:** By School | By Year (Sophomore/Junior) | By Name (A-Z)
- **Sort Options:** Alphabetical | By School | Random
- **Grid Layout:** Professional portrait photos in responsive grid (3-4 columns desktop, 1-2 mobile)
- **Hover Effect:** Name + School overlay on hover
- **Click Action:** Opens individual candidate page

**Current Candidates (2026):**

| # | Candidate | Year | School | Escort |
|---|-----------|------|--------|--------|
| 1 | Hala Ibrahim Abdallah | Junior | Martin High School | Atif Mirza |
| 2 | Brittany Ann Allman | Sophomore | Lamar High School | Kenneth O'Nan |
| 3 | Tatianna Marie Beeman-Willis | Sophomore | Arlington High School | Aidan Klein |
| 4 | Kaitlyn Grace Bush | Junior | Martin High School | Cooper Dodson |
| 5 | Sloane Adyson Cabral | Sophomore | Arlington High School | Seth DeLoach |
| 6 | Milly Frances Chambers | Junior | Grace Preparatory Academy | Ty Porter |
| 7 | Ryleigh Brooke Ingram | Junior | Venture High School | Andre Garcia |
| 8 | Lillian Hayden Kirk | Junior | Arlington High School | Brennan Allsup |
| 9 | Hannah Grace Kirkbride | Junior | Martin High School | Ethan Boone |
| 10 | Jocelyn Ann Mayo | Sophomore | Nolan Catholic High School | Benjamin Chapa |
| 11 | **Claire Diane Novoselsky** | **Junior** | **Arlington High School** | **Will Lemonds** |
| 12 | Canela Rose Oliva | Junior | Arlington High School | Ethan Alvarez Pardo |
| 13 | Isha Vinitkumar Patel | Sophomore | Lamar High School | Logan Woodman |
| 14 | Sophie Hong-An Pham | Junior | Martin High School | Zachary Clark |
| 15 | Sofia Alexa Romero | Junior | Arlington High School | Heston Alana |
| 16 | Madelyn Rose Stewart | Junior | Martin High School | Miles Lewis |
| 17 | Madilyn Rose Swanson | Sophomore | Pantego Christian Academy | Maddox Ritter |
| 18 | Cassidy Mae Tucker | Sophomore | The Oakridge School | Cayden Sargent |

#### Individual Candidate Page Template

**Example: Claire Diane Novoselsky (Miss Cinderella 2026)**

**Header Section:**
- Large professional portrait photo
- Badge overlay: "MISS CINDERELLA 2026" (gold crown icon)
- Name: Claire Diane Novoselsky
- Year: Junior | School: Arlington High School

**Bio Section:**
> Claire Diane Novoselsky is a 16-year-old junior at Arlington High School. She is the daughter of Jennifer and Drew Novoselsky and has two older siblings: Nathan and Reese Novoselsky. She has four dogs: Luna, Wrigley, Leia, and Margo. Claire is the granddaughter of Richard and Glinda Scott, Mark Reid, and Leslie and Jeff Perryman.

**Achievements:**
- Junior Class Vice President
- National Honor Society member
- Student Council member
- Volleyball program athlete
- Youth Teen Leadership Arlington participant
- 4.0 GPA, top 3% of class
- Active in Arlington Young Life program
- Server at Prespa's Italian Restaurant

**Future Goals:**
- Attend University of Texas at Austin
- Major in Biomedical Sciences
- Aspiring biomedical engineer
- Volunteers at Boys & Girls Clubs of Arlington through campaign

**Escort Information:**
- **Name:** Will Beck Lemonds
- **School:** Junior, The Oakridge School
- **Relationship:** Lifelong friend
- **Parents:** Steve and Jill Lemonds

**Social Sharing Section:**
"Support Claire's Legacy"  
**Buttons:** Share on Facebook | Share on Instagram | Copy Link

**Related Candidates:** (carousel of other 2026 candidates)

#### Cinderellas in History (Sortable Table)

**Current Content:** Complete list from 1961-2026 (66 winners)

**Proposed Enhancement:**
- **Sortable/Searchable Table** (JavaScript DataTables or similar)
- **Filter by Decade:** 1960s | 1970s | 1980s | 1990s | 2000s | 2010s | 2020s
- **Search Bar:** Find by name
- **Export Options:** Download as PDF or CSV

**Data Structure:**
```
Year | Miss Cinderella Name | [Optional: School] | [Optional: Photo if available]
```

Complete list retained from original document (1961: Jane Louise Meier → 2026: Claire Diane Novoselsky)

#### Scholarship Winners (Sortable Table)

**Similar enhancement to Cinderellas in History**
- Sortable by year
- Searchable by name
- Filter options
- Export capability

Complete list retained from 1983-2025

---

### 4.4 SUPPORT PAGES

#### How to Donate (CRITICAL PAGE - Needs Major UX Improvement)

**Current Content:**
> The 2026 campaign opened on Saturday, February 7, 2026.  
> The campaign has closed as of 6:00 PM on April 2, 2026.  
> Results will be announced at The Cinderella Charity Ball on Saturday, April 4, 2026.  
> Thank You for Your Support!!

**Current Donation Methods:**
1. **Direct Checks to Candidates/Escorts** - Checks payable to **Ladies Auxiliary of Arlington, Inc.**
2. **Mailing Address** - Ladies Auxiliary of Arlington, PO Box 152336, Arlington, TX 76015
3. **Credit Card Donations** - Via candidate bio pages (during campaign)

**PROPOSED ENHANCEMENT (Critical for Conversion):**

**If Campaign is ACTIVE:**

**Hero Section:**
"Support Arlington's Future - Campaign Ends April 2, 2027"  
**COUNTDOWN TIMER:** [XX Days : XX Hours : XX Minutes remaining]

**Three Donation Pathways (Card Layout):**

**Card 1: Support a Specific Candidate** 🎯
- "Choose your favorite candidate and donate directly to their campaign"
- **Button:** Browse Candidates → [Opens candidate grid with "Donate" buttons]
- Visual: Candidate photo collage
- Badge: "Most Popular Choice"

**Card 2: General Donation (Support All)** 💙
- "Can't choose? Your donation supports all candidates equally"
- **Button:** Donate to General Fund
- Visual: Boys & Girls Clubs logo + impact photo
- Badge: "Maximizes Impact"

**Card 3: Mail a Check** ✉️
- "Prefer traditional giving? Mail your tax-deductible donation"
- Address: Ladies Auxiliary of Arlington, PO Box 152336, Arlington, TX 76015
- **Downloadable:** Printable donation form with candidate selection checkboxes
- Visual: Check/envelope icon

**Campaign Progress Indicator:**
"2027 Campaign: $XXX,XXX raised so far"  
[Progress bar visual - can be manually updated or database-driven]

**If Campaign is CLOSED:**

**Hero Section:**
"Thank you for your support! The 2026 campaign raised $XXX,XXX for Arlington's youth."  
**Secondary Message:** "Stay tuned for the 2027 campaign opening in February!"

**Email Signup:**
"Be the first to know when the 2027 campaign opens"  
[Email signup form] → Triggers notification when next campaign begins

**Alternative Giving Options:**
- Donate to Boys & Girls Clubs directly: [Link to BGCGTC.org]
- Join the Ladies' Auxiliary: [Link to membership page]
- Sponsor next year's Ball: [Link to sponsorship opportunities]

**Year-Round Features (Always Visible):**

**FAQ Section:**
- "Are donations tax-deductible?" - Yes, Ladies Auxiliary of Arlington, Inc. is a 501(c)(3) organization
- "How much of my donation goes to the Boys & Girls Clubs?" - 100% after Ball expenses
- "Can I donate in honor/memory of someone?" - Yes, please include a note with your donation
- "What payment methods do you accept?" - Checks, Visa, MasterCard
- "Can I buy Ball tickets here?" - Yes, during campaign season ($150/person)

**Impact Story Section:**
"Where Your Donation Goes"  
- Photos + captions of recent club improvements (security system, music studio, renovations)
- Quote from a Boys & Girls Club member/staff
- Link to "Impact Stories" page

**Contact for Questions:**
Email: cinderellacharityball@gmail.com

---

### 4.5 BOYS & GIRLS CLUBS PAGES

#### About Boys & Girls Clubs

**Current Content (Retained):**
> Boys & Girls Clubs of Greater Tarrant County (BGCGTC) is committed to being the premier youth development organization in our community, a low-cost or free resource available to all, providing a safe and welcoming environment where children and teens are respected and valued. Boys & Girls Clubs of Greater Tarrant County's mission is to enable all young people, especially those who need us most, to reach their full potential as productive, caring, responsible citizens. Its purpose is simple: to enable Club members to achieve substantially better outcomes in the areas of academic success, good character, citizenship, and healthy lifestyles.
> 
> Annually, BGCGTC serves more than 31,000 youth ages 4-24 with after-school and summer programs, substance abuse prevention programs, a progressive gang-intervention program, and targeted outreach and college preparation services in schools. Target neighborhoods are historically low income, with low educational attainment, high unemployment, and associated high rates of illegal activity, including gangs and substance abuse. The median household income in the areas the Club serves is under $35,000, and 78% of Club kids are on the free or reduced lunch program in their schools.
> 
> The Club's very existence harkens back to 1926 when a group of compassionate and concerned citizens sought to effect positive change for youth. Since that time—through the many good times the nation has enjoyed and the challenging times it has endured—the Club has honored that legacy. The organization remains steadfast in its vision to provide a world-class Club Experience that ensures success is within reach of every young person who enters the Club doors, with all members on track to graduate from high school with a plan for the future, demonstrating good character and citizenship, and living a healthy lifestyle.
> 
> Visit https://www.BGCGTC.org for more information.

**Enhancement: Add Statistics Visual**
```
31,000+        78%           $35K           1926
YOUTH          ON FREE/      MEDIAN         ESTABLISHED
SERVED         REDUCED       HOUSEHOLD
ANNUALLY       LUNCH         INCOME
```

#### Impacting Lives of Kids (Rename to "How We Help")

**Current Content (Retained + Reorganized):**

**BGCGTC Programs We Support:**

**After School Programs**
Innovative science, technology, engineering, art, and math programming that offer an enriching curriculum for kids who need it the most. Clubs provide world-class education, leadership and healthy lifestyle programs to our county's most vulnerable young people, helping them build bright futures and helping low-income families afford enriching after-school and summer activities.

**Pre-College Programs**
Upward Bound and Educational Talent Search programs focus on graduation and college enrollment, providing services to low-income and potential first-generation college students.

**Intervention Programs**
Comin' Up Gang Intervention program provides career, education and life guidance for youth involved in gangs. Open late at night in hard-to-reach communities, this program offers real solutions to difficult situations.

**Prevention Programs**
Too Good for Drugs, Positive Action and Straight Talk prevention programs are offered to school-aged youth in a variety of settings. Youth armed with resilience skills are equipped to avoid problems later. Carefully organized to reach communities plagued with alcohol and drug challenges, these services are needed to break destructive cycles.

**Cinderella Ball's Major Investments in BGCGTC (Timeline Format):**

- 1981 → Southeast Branch building completion
- 1996 → Southeast basketball gym expansion
- 1998 → Kromer Branch construction
- 2016 → North Branch at Peach Elementary
- 2018 → Kromer Branch renovations
- 2019 → Three large buses, East Branch teen space, security/safety upgrades
- 2020/2021 → Basic needs program (East Branch), Kromer kitchen renovation, Carol's Clubhouse case management
- 2022 → Arlington Life Shelter partnership, Music Clubhouse (Kromer), Licensed Professional Counselor (LPC) for Arlington Clubs, Mobile Clubhouse RV & Truck, Feeding the Future meal prep program
- 2023 → Music Studio (Kromer), Mobile Clubhouse (Arlington-dedicated), continued LPC support, Kromer improvements, Summer Camp support
- 2024 → Dan Serna Branch renovations

**Enhancement: Photo Gallery Integration**
- Before/After photos of facility improvements
- Kids using the funded programs (with permission/releases)
- Mobile Clubhouse in action
- Music Studio opening celebration

---

### 4.6 NEW PAGES (Not on Current Site)

#### Impact Stories (NEW - Facebook Integration)

**Purpose:** Bring the compelling behind-the-scenes content from Facebook onto the website

**Content Sources:**
1. **Boys & Girls Club Tours** - "Spent the day at the original Arlington Main Branch... Got a behind-the-scenes look at the spaces kids use every day and learned about the new keyless entry security system — made possible by Cinderella Campaign funding."

2. **Candidate Social Events** - "New faces, familiar magic ✨ This year's Cinderella candidates mixed, mingled, and soaked up advice from last year's candidates"

3. **Facility Improvements** - Security systems, music studios, kitchen renovations funded by campaigns

4. **Testimonials** - From Boys & Girls Club staff, members, candidates, donors

**Format:**
- Blog-style posts with photos
- Each story tagged with: Year, Category (Facility, Program, Event), Impact Area
- Social sharing buttons on each story
- Comments enabled (or link to Facebook post for engagement)

#### Press Coverage (NEW)

**Content:**
- Fort Worth Report articles
- Arlington Today coverage
- Local TV news appearances
- Community newspaper mentions
- Links + brief excerpts + publication date

**Format:**
- Reverse chronological feed
- Filter by year/publication
- External link icon for full article

#### Campaign Updates Blog (NEW)

**Purpose:** Capture the real-time energy currently only on Facebook

**Content During Active Campaign:**
- Countdown reminders ("2 weeks left!")
- Candidate fundraising creativity highlights ("Brittany is selling cookies!", "Mia's dance fundraiser this weekend!")
- Fundraising milestones ("Campaign passes $500K mark!")
- Event announcements
- Behind-the-scenes Ball preparation

**Content Off-Season:**
- Ladies' Auxiliary meeting recaps
- Candidate application period announcements
- Planning updates for next year's Ball
- Community event participation (parade photos, etc.)

**Format:**
- Traditional blog layout
- RSS feed for email subscribers
- Auto-posts to social media (cross-promotion)

#### Sponsorship Opportunities (NEW)

**Purpose:** Formalize corporate/business sponsorship pathways

**Content:**
- Sponsorship tiers (Presenting, Gold, Silver, Bronze)
- Benefits at each level (table at Ball, program ad, website recognition, social media mention)
- Current sponsors recognition wall
- Downloadable sponsorship packet (PDF)
- Contact form for sponsorship inquiries

**Example Tiers:**
- **Presenting Sponsor** ($25,000+) - Naming rights, premium table, full-page program ad, logo on all materials
- **Gold Sponsor** ($10,000-$24,999) - Reserved table, half-page program ad, website homepage logo
- **Silver Sponsor** ($5,000-$9,999) - Reserved table, quarter-page program ad, website recognition
- **Bronze Sponsor** ($1,000-$4,999) - Program listing, website recognition
- **In-Kind Sponsors** - Venue, catering, photography, printing, etc.

---

### 4.7 OTHER KEY PAGES

#### Ladies' Auxiliary

**Current Content (Retained):**
Leadership table, past presidents list, mission statement

**Enhancement:**
- "Join Us" call-to-action prominently placed
- Benefits of membership highlighted
- Meeting schedule (if public)
- Photo of current Auxiliary members
- Link to Membership Dues/Renewals page

#### The Committee (2026)

**Current Content (Retained):**
Complete committee roster with roles

**Enhancement:**
- Group photo if available
- Clickable email contacts for key roles (Ball Chairs, Treasurer, etc.)
- "Interested in volunteering?" CTA linking to contact form

#### Contact Us

**Current Form Fields (Retained):**
- Name (required)
- Email (required)
- Phone (required)
- Message (required)
- Honeypot spam protection

**Enhancement:**
- **Dropdown:** "I'm contacting about:" [General Inquiry | Donations | Sponsorship | Candidate Applications | Media Inquiry | Technical Support]
- **Auto-response email** confirming receipt
- **Alternative contact methods clearly displayed:**
  - Email: askus@cinderellacharityball.com (general) / cinderellacharityball@gmail.com (donations)
  - Mailing Address: Ladies Auxiliary of Arlington, PO Box 152336, Arlington, TX 76015
  - Phone: [If available - not listed on current site]
- **Social Media Links:** Facebook, Instagram

#### Privacy Policy & Terms of Use

**Current content retained as-is** (legally compliant, covers data collection, cookies, disclaimers, etc.)

---

## 5. DESIGN RECOMMENDATIONS

### 5.1 Modern Layout & UX Improvements

#### Overall Design Philosophy
- **Modern, Clean, Inspiring** - Reflect the elegance of a charity ball while feeling approachable and community-focused
- **Photo-Forward** - Professional portraits and event photography are the site's strongest visual assets
- **Mobile-First** - 50%+ of Facebook engagement is mobile; design for mobile, enhance for desktop
- **Accessibility** - WCAG 2.1 AA compliance (color contrast, keyboard navigation, screen reader support)
- **Fast Loading** - Optimize for performance to reduce bounce rate

#### Color Palette Recommendations

**Primary Colors** (derived from current header/branding)
- **Royal Blue:** #1E3A8A (elegance, trust, Boys & Girls Clubs association)
- **Rose Gold/Champagne:** #D4AF76 (sophistication, celebration, Cinderella theme)
- **Deep Purple/Plum:** #6B46C1 (royalty, creativity)
- **White:** #FFFFFF (clean, spacious)

**Secondary/Accent Colors**
- **Warm Gray:** #6B7280 (text, subtle backgrounds)
- **Light Blue:** #DBEAFE (section backgrounds, hover states)
- **Gold:** #F59E0B (CTAs, badges, highlights)
- **Success Green:** #10B981 (donation confirmations, progress indicators)

**Typography**
- **Headings:** Playfair Display or Cinzel (elegant serif for formal sections)
- **Body Text:** Inter or Open Sans (clean, readable sans-serif)
- **Accent/Script:** Great Vibes or Parisienne (sparingly, for "Cinderella" branding moments)

#### Layout Grid System
- **Desktop:** 12-column responsive grid, 1200px max-width container
- **Tablet:** 8-column, flexible breakpoint at 768px
- **Mobile:** Single column, stack all elements vertically, min 16px padding

#### Header Design (Sticky Navigation)

**Desktop Header:**
```
[Logo/Site Title]                    [Nav: Home | About ▼ | The Ball ▼ | Candidates ▼ | Support ▼ | BGCGTC ▼ | News | Contact]     [🔍 Search] [FB] [IG] [DONATE CTA]
```

**Mobile Header:**
```
[☰ Menu]  [Logo/Site Title]  [DONATE]
```

**On Scroll (both desktop/mobile):**
- Header shrinks slightly
- Background adds slight opacity/blur effect
- Donate button remains prominently visible

#### Footer Design

**4-Column Layout (Desktop):**

**Column 1: About**
- Brief mission statement (2-3 sentences)
- Ladies' Auxiliary + BGCGTC logos

**Column 2: Quick Links**
- About The Ball
- Candidates
- Donate
- Contact Us

**Column 3: Get Involved**
- How to Donate
- Volunteer
- Sponsorship
- Membership

**Column 4: Connect**
- Social media icons (large, clickable)
- Email signup form ("Get Campaign Updates")
- Contact email

**Bottom Bar:**
```
Copyright © 2027 Cinderella Charity Ball. All rights reserved. | Privacy Policy | Terms of Use
Photography: Heather Harvey Photography, Terry Ip Photography
```

**Mobile Footer:**
- Accordion-style collapsible sections
- Social icons always visible at top

---

### 5.2 Content Hierarchy & Organization

#### Information Prioritization (F-Pattern Reading)

**Top-Left (Most Important):**
- Logo/branding
- Primary navigation
- Hero headline

**Horizontal Scan Areas:**
- Impact statistics bar
- Section headings
- CTA buttons

**Vertical Left Scan:**
- Section previews
- Card titles
- List items

#### Visual Hierarchy Techniques

**Size & Scale:**
- H1 (Page Titles): 48px desktop / 32px mobile
- H2 (Section Headings): 36px desktop / 28px mobile
- H3 (Subsections): 24px desktop / 20px mobile
- Body Text: 16-18px (optimized for readability)
- Small Text (captions, meta): 14px

**Weight & Emphasis:**
- Bold for key statistics, names, important facts
- Italic for quotes, testimonials
- Uppercase for labels, tags (sparingly)
- Color for CTAs, links, highlights

**Spacing & White Space:**
- Generous padding between sections (80-100px desktop, 40-60px mobile)
- Consistent margin/padding scale (8px base unit: 8, 16, 24, 32, 40, 48, 64, 80, 96)
- Line height: 1.6-1.8 for body text (readability)
- Letter spacing: Slightly increased for uppercase headings

#### Content Chunking Strategies

**Card-Based Design:**
- Candidates: Photo card with overlay text
- Events: Event card with date, title, location, CTA
- Impact stories: Story card with image, headline, excerpt, "Read More"
- News/Blog: Article card with thumbnail, title, date, excerpt

**Accordion/Collapsible Sections:**
- FAQ on donation page
- Historical timelines (expand by decade)
- Committee member bios (click to expand)

**Tabs:**
- Candidate filtering (By School | By Year | All)
- Historical data views (Cinderellas | Scholarship Winners | Committee History)

**Progressive Disclosure:**
- "Read More" links for long-form content
- Image galleries with lightbox expansion
- Video embeds (click to play, not autoplay)

---

### 5.3 Visual Design Elements & Styling

#### Imagery Best Practices

**Hero Images:**
- **Dimensions:** 1920x1080px minimum (16:9 ratio)
- **Format:** WebP with JPG fallback
- **Optimization:** Compressed to <300KB
- **Focal Point:** Subject positioned according to rule of thirds
- **Overlay:** Semi-transparent gradient (bottom-to-top dark fade) for text readability

**Candidate Portrait Photos:**
- **Dimensions:** 819x1024px (4:5 ratio, Instagram-friendly)
- **Format:** WebP with JPG fallback
- **Optimization:** Compressed to <150KB each
- **Styling:** Subtle border-radius (8px) for modern feel
- **Hover Effect:** Slight zoom (1.05x scale) + shadow increase
- **Lazy Loading:** Below-the-fold images load on scroll

**Event/Group Photos:**
- **Aspect Ratio:** Flexible (crop to 16:9 for consistency in carousels)
- **Format:** WebP with JPG fallback
- **Optimization:** <200KB each
- **Captions:** Always include descriptive alt text + visible caption overlay

**Logos (Ladies' Auxiliary, BGCGTC):**
- **Format:** SVG preferred (scalable), PNG fallback
- **Sizing:** Responsive (scale with container, max 200px width in footer)
- **Background:** Transparent for flexible placement

#### Iconography

**Icon Set:** Font Awesome (free) or Heroicons (modern, clean)

**Common Icons Needed:**
- 🎓 Education/Scholarship
- 💰 Donation/Fundraising
- 📅 Calendar/Events
- 📍 Location
- 👥 Community/People
- ❤️ Heart/Support
- 🏆 Achievement/Winner
- 🎯 Goal/Target
- 📧 Email/Contact
- 🔗 External Link
- ⬇️ Download
- 🔍 Search
- ☰ Menu (hamburger)

**Usage Guidelines:**
- Consistent size within context (24px for inline, 48px for feature blocks)
- Match color to text or use accent color
- Use sparingly to avoid visual clutter
- Pair with text labels for clarity

#### Button Styles

**Primary CTA (Donation, Apply, etc.):**
- **Background:** Gold (#F59E0B)
- **Text:** White, bold, 16px
- **Padding:** 12px 32px
- **Border-radius:** 8px
- **Hover:** Darken 10%, slight shadow increase
- **Active:** Scale 0.98x (subtle press effect)

**Secondary CTA (Learn More, View, etc.):**
- **Background:** Transparent
- **Border:** 2px solid Royal Blue (#1E3A8A)
- **Text:** Royal Blue, bold, 16px
- **Padding:** 12px 32px
- **Border-radius:** 8px
- **Hover:** Background fills with light blue, text stays blue

**Tertiary/Text Link:**
- **Underline on hover**
- **Color:** Royal Blue
- **Font-weight:** 600 (semi-bold)

#### Card Design Pattern

**Standard Card Component:**
```css
.card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
  padding: 24px;
  transition: all 0.3s ease;
}

.card:hover {
  box-shadow: 0 10px 20px rgba(0,0,0,0.15);
  transform: translateY(-4px);
}
```

**Candidate Card Specific:**
- Photo as card background (full-bleed)
- Gradient overlay at bottom
- Text (name, school) overlaid on gradient
- "Learn More" button appears on hover

**Impact Story Card:**
- Horizontal layout on desktop (image left, text right)
- Vertical stack on mobile
- Tag labels (e.g., "2023 Project", "Facility Improvement")
- Read More link styled as text link with arrow →

#### Form Design

**Input Fields:**
- **Height:** 48px (easy tap targets on mobile)
- **Border:** 1px solid light gray, 2px blue on focus
- **Border-radius:** 6px
- **Padding:** 12px 16px
- **Font-size:** 16px (prevents iOS zoom on focus)
- **Placeholder text:** Medium gray, italic

**Labels:**
- **Position:** Above input (not placeholder-as-label)
- **Font-weight:** 600
- **Required indicator:** Red asterisk (*)

**Error States:**
- **Border:** 2px red
- **Error message:** Red text below field, small (14px)
- **Icon:** ⚠️ or ❌ inside field (right side)

**Success States:**
- **Border:** 2px green
- **Success message:** Green text, checkmark ✓

**Submit Buttons:**
- Full-width on mobile
- Auto-width on desktop (min-width 200px)
- Disabled state: Gray background, cursor not-allowed

---

### 5.4 Interactive Features & Functionality

#### Must-Have Interactive Elements

**1. Countdown Timer (Campaign Deadline)**
- **Location:** Home page hero, Donate page hero
- **Display:** Days : Hours : Minutes : Seconds
- **Styling:** Large, bold numbers with labels
- **Behavior:** Live JavaScript countdown, updates every second
- **Fallback:** When campaign closed, display "Campaign Closed - Thank You!"

**2. Progress Bar (Fundraising Goal)**
- **Location:** Donate page, optionally home page
- **Display:** Horizontal bar showing % of goal reached
- **Text:** "$XXX,XXX raised of $XXX,XXX goal (XX%)"
- **Animation:** Smooth fill animation on page load
- **Update Method:** Manual admin update (database field) or static HTML

**3. Candidate Grid Filtering**
- **Filter Options:** All | By School | By Year (Sophomore/Junior)
- **Interaction:** Click filter button → grid animates (fade out/in) to show filtered results
- **URL Hash:** Update URL with filter state for sharing (e.g., #filter=martin-high)
- **No Page Reload:** JavaScript filtering (faster UX)

**4. Image Galleries / Lightbox**
- **Trigger:** Click on any gallery image
- **Behavior:** Opens full-screen lightbox with:
  - Large image display
  - Previous/Next navigation arrows
  - Caption overlay at bottom
  - Close X button (top-right)
  - Background dimmed (80% black opacity)
  - Keyboard controls (arrow keys, ESC to close)
- **Library:** PhotoSwipe or GLightbox (lightweight, responsive)

**5. Social Media Feed Embed**
- **Location:** Home page (below hero), News page sidebar
- **Source:** Facebook page feed
- **Display:** 3-5 most recent posts with photos, snippets, "View on Facebook" link
- **Method:** Facebook Page Plugin (official) or third-party aggregator
- **Fallback:** If embed fails, show static links to social profiles

**6. Audio Player (Ball Recap)**
- **Location:** "66th Annual Review" page
- **File:** MP3 audio (currently: Arlington_s_16_million_dollar_Cinderella_Ball_engine.mp3)
- **Player:** HTML5 audio with custom-styled controls
  - Play/Pause button
  - Progress bar (seekable)
  - Time display (current / total)
  - Volume control
  - Download button (optional)
- **Design:** Match site color scheme (blue/gold accents)

**7. Search Functionality**
- **Location:** Header (desktop: visible, mobile: icon → expands)
- **Scope:** Search all pages, candidate names, historical data
- **Method:** PHP-based keyword search (queries page titles, content, meta)
- **Results Page:** List of matching pages with title, excerpt, link
- **Enhancement:** Autocomplete suggestions as user types (AJAX)

**8. Email Newsletter Signup**
- **Location:** Footer (all pages), dedicated section on Home page
- **Fields:** Email (required), Name (optional)
- **Action:** Submit → stores in database, triggers welcome email
- **Integration:** Mailchimp, Constant Contact, or custom PHP mail list
- **Confirmation:** "Thank you! Check your email to confirm subscription."

**9. Social Sharing Buttons**
- **Location:** Candidate pages, Impact Stories, News articles
- **Platforms:** Facebook, Instagram (via copy link), Twitter (optional)
- **Behavior:** Click → opens share dialog (native or custom popup)
- **Data:** Pre-populate with page title, description, image (Open Graph tags)

**10. Donation Amount Selector**
- **Location:** Inline donation form (if implemented)
- **Options:** Preset buttons ($25, $50, $100, $250, Custom)
- **Interaction:** Click preset → highlights button, populates amount field
- **Custom:** Text input for any amount
- **Styling:** Pill-shaped buttons, active state with filled background

#### Nice-to-Have Enhancements (Phase 2)

**11. Candidate Comparison Tool**
- Select 2-3 candidates → side-by-side bio comparison view
- Useful for donors choosing whom to support

**12. Interactive Timeline (History Page)**
- Vertical or horizontal timeline with clickable year markers
- Expands to show details (Cinderella winner, major events, funds raised)

**13. Live Chat Widget**
- For donor questions during campaign (Tawk.to or similar)
- Hours: Campaign season, business hours

**14. QR Code Generator (Candidate Pages)**
- Auto-generate QR code linking to candidate's donation page
- Printable for candidate use at events

**15. Photo Upload for Candidates (Admin Panel)**
- Allow candidates/committee to upload event photos via secure form
- Admin approval before publishing to gallery

---

### 5.5 Mobile Responsiveness Considerations

#### Breakpoint Strategy

**Desktop Large:** 1440px+
- 12-column grid
- Max container width: 1200px
- Full navigation visible
- Multi-column layouts (3-4 columns)

**Desktop Standard:** 1024px - 1439px
- 12-column grid
- Container width: 100% with padding
- Full navigation
- 2-3 column layouts

**Tablet:** 768px - 1023px
- 8-column grid
- Hamburger menu replaces horizontal nav
- 2-column layouts, some stack to 1
- Touch-friendly tap targets (min 44px)

**Mobile:** 320px - 767px
- Single column layout (stack all)
- Hamburger menu
- Full-width cards/buttons
- Increased padding (avoid edge-to-edge content)
- Simplified navigation (fewer sub-menu levels)

#### Mobile-Specific Optimizations

**Navigation:**
- **Hamburger Menu:** Slide-out drawer from left or full-screen overlay
- **Sticky Header:** Remains visible on scroll, but shrinks to save space
- **Sticky Donate Button:** Fixed to bottom of screen (above other content)
- **Sub-Menus:** Accordion-style (tap to expand)

**Typography:**
- **Larger Base Size:** 16-18px body text (better mobile readability)
- **Shorter Line Length:** Max 75 characters per line
- **Headings Scale Down:** H1 from 48px (desktop) to 32px (mobile)

**Images:**
- **Responsive Images:** Use `<picture>` element or `srcset` to serve smaller images on mobile
- **Portrait Orientation:** Mobile users scroll vertically; portrait images work well
- **Lazy Loading:** Critical for mobile data usage and performance

**Forms:**
- **Full-Width Inputs:** Easier to tap and see on small screens
- **Large Tap Targets:** 48px height minimum for buttons/inputs
- **Single-Column Layout:** Stack all form fields vertically
- **Auto-Fill Friendly:** Use appropriate `autocomplete` attributes
- **Mobile Keyboards:** Use `type="email"`, `type="tel"`, `type="number"` for correct keyboard

**Tables:**
- **Responsive Tables:** Horizontal scroll OR reformat as cards (better UX)
- **Example:** Candidate list table → each row becomes a card on mobile

**Carousels/Sliders:**
- **Swipe Gestures:** Touch-enabled swiping for image galleries
- **Larger Arrows:** Touch-friendly navigation buttons
- **Pagination Dots:** Visible indicator of current slide

**Performance:**
- **Reduce Image Sizes:** Serve smaller dimensions on mobile (responsive images)
- **Minimize JavaScript:** Heavy scripts slow mobile devices
- **Defer Non-Critical CSS:** Load above-the-fold CSS first
- **Test on Real Devices:** iOS Safari, Android Chrome (different rendering)

#### Mobile Testing Checklist

✅ All text readable without zoom  
✅ Tap targets at least 44x44px (not too small)  
✅ No horizontal scrolling (unless intentional, like tables)  
✅ Forms easy to complete with mobile keyboard  
✅ Images load quickly and don't exceed screen width  
✅ Navigation menu accessible and usable  
✅ CTAs (Donate, Contact) easily accessible  
✅ Page load time <3 seconds on 3G connection  
✅ All features work on iOS Safari AND Android Chrome  

---

### 5.6 Social Media Integration Points

#### Integration Opportunities

**1. Embedded Social Feeds**
- **Facebook Page Plugin:** Official widget showing recent posts
  - Location: Home page (lower section) and/or News page sidebar
  - Display: 3-5 recent posts with images
  - Dimensions: Responsive width, fixed height ~500px
  - Link: "Follow us on Facebook" button
- **Instagram Feed:** Third-party widget (SnapWidget, LightWidget, or custom API)
  - Location: Home page footer area or dedicated Gallery page
  - Display: Grid of 6-12 recent Instagram photos
  - Click: Opens Instagram post in new tab or lightbox

**2. Social Sharing Buttons**
- **Placement:** 
  - Top of candidate pages (sticky sidebar on desktop, below photo on mobile)
  - End of Impact Stories / Blog posts
  - Donation confirmation page ("Share your support!")
- **Platforms:** Facebook Share, Instagram (copy link + prompt), Twitter (optional)
- **Functionality:** Pre-populated text, hashtags (#CinderellaBall, #ArlingtonTX, #BoysAndGirlsClubs)

**3. Social Proof / Testimonials**
- **Pull Quotes from Facebook Comments:**
  - Example: "Our family has supported the Cinderella Ball for 20 years - so proud to see how it's grown!" - Susan M.
  - Display: Styled quote blocks on About page, Impact Stories
- **Instagram Photo Galleries:**
  - User-generated content (with permission) showing Ball attendees, candidate events
  - Hashtag campaign: #CinderellaBall2027

**4. Social Media Icons**
- **Header:** Top-right corner (desktop), always visible
- **Footer:** Large, prominent icons with links
- **Design:** Circular or square icons matching site color scheme
- **Hover Effect:** Color fill (Facebook blue, Instagram gradient)

**5. Facebook Event Integration**
- **Ball Event Page:** Create Facebook Event for the Ball each year
- **Widget on Website:** "Going" / "Interested" button embedded
- **Calendar Export:** iCal/Google Calendar download links

**6. Open Graph Meta Tags (Critical for Sharing)**
```html
<meta property="og:title" content="Claire Diane Novoselsky - Miss Cinderella 2026">
<meta property="og:description" content="Meet Claire, Junior at Arlington High School, who raised $XX,XXX for Boys & Girls Clubs of Arlington.">
<meta property="og:image" content="https://cinderellacharityball.com/wp-content/uploads/2026/02/Claire-Novoselsky-scaled.jpg">
<meta property="og:url" content="https://cinderellacharityball.com/claire-diane-novoselsky">
<meta property="og:type" content="profile">
```
- **Result:** When shared on Facebook, links display attractive card with image, title, description

**7. Instagram Stories/Highlights Integration**
- **Embedded Story Highlight:** "Ball Highlights" or "2026 Campaign" embedded on Home page
- **Method:** Instagram Embed API or screenshot carousel

**8. Social Listening & User-Generated Content**
- **Hashtag Tracking:** Monitor #CinderellaBall, #ArlingtonCharityBall
- **Curated Gallery:** "Share Your Photos" page showing community posts (with permission)
- **Candidate Hashtags:** Each candidate could have unique hashtag (e.g., #ClairesChampions)

**9. Social Media Call-to-Actions**
- **Home Page Banner:** "Follow our journey on Instagram @cinderellacharityball"
- **Post-Donation Thank You:** "Share your support on Facebook and tag us!"
- **Candidate Pages:** "Follow [Candidate Name]'s campaign updates on our Instagram"

**10. Cross-Promotion Automation**
- **Website → Social:** Auto-post new blog articles, impact stories to Facebook (Zapier, IFTTT)
- **Social → Website:** Pull Facebook event details dynamically to display on Events page
- **Email → Social:** Newsletter subscribers get social-exclusive content teasers

---

## 6. CONTENT ENHANCEMENTS

### 6.1 Suggested New Sections (Based on Facebook Insights)

#### 1. Impact Stories Section (High Priority)

**Why:** Facebook's most engaging content is behind-the-scenes impact stories (tours, facility improvements, security systems). This content is currently absent from the website.

**Content to Include:**
- **Security System Story:** "Made possible by Cinderella Campaign funding" - Show keyless entry system at Main Branch with before/after or installation photos
- **Music & Youth Clubhouse:** 2023 Kromer Branch renovation with photos of kids using the music studio
- **Dan Serna Branch Renovations:** 2024 project with transformation photos
- **Mobile Clubhouse RV:** Arlington-dedicated mobile unit bringing programs beyond club walls - photos of it in action
- **Feeding the Future:** In-house meal prep program showing kitchen facilities and kids being served nutritious meals

**Format:**
- **Story Title** (e.g., "New Security System Keeps Kids Safe")
- **Date/Year** (2024)
- **Category Tag** (Facility Improvement / Program / Event)
- **Hero Image** (before/after, kids using facility, etc.)
- **Body Text** (2-3 paragraphs narrative)
- **Impact Quote** (from club staff or member)
- **Donation CTA** ("Your support makes stories like this possible")

#### 2. Press Coverage / In The News Section (Medium Priority)

**Why:** Increases credibility and SEO; local media coverage exists but not curated on site

**Content to Include:**
- Fort Worth Report articles
- Arlington Today coverage
- Local TV news segments (ABC, NBC affiliates)
- Community newspaper features
- Blog mentions

**Format:**
- Publication name + logo
- Article headline (linked to external source)
- Publication date
- Brief excerpt (1-2 sentences)
- "Read Full Article →" external link
- Filter by year

#### 3. Campaign Updates Blog (High Priority - Active Engagement)

**Why:** Website feels static compared to Facebook's real-time energy. A blog/news feed bridges this gap.

**Content to Include:**
- **Campaign Season (Feb-Apr):** Daily/weekly updates
  - "Campaign Kickoff - Meet the 2027 Candidates!"
  - "Halfway There - $XXX,XXX Raised So Far!"
  - "Creative Fundraising Spotlight: Brittany's Cookie Sales"
  - "Countdown: 48 Hours Remaining!"
- **Off-Season:** Monthly updates
  - "Candidate Application Period Now Open"
  - "Ladies' Auxiliary Welcomes New Members"
  - "Miss Cinderella 2026 Attends Arlington 4th of July Parade"

**Format:**
- Reverse chronological feed
- Featured image for each post
- Excerpt on main blog page, full content on individual post page
- Social sharing buttons on each post
- RSS feed for subscribers
- Email notification option

#### 4. Candidate Fundraising Creativity Showcase (Medium Priority)

**Why:** Facebook shows candidates doing cookie sales, dance events, dog yoga, pickleball - demonstrates initiative and makes candidates relatable

**Content to Include:**
- **Examples from Facebook:**
  - Brittany Allman's cookie sales
  - Mia's dance fundraiser (with QR code donations)
  - Cassidy Tucker's final push post
  - Other creative events (bake sales, car washes, tournaments, etc.)

**Format:**
- Grid of "Fundraising Highlight" cards
- Each card: Candidate name, Event type, Photo, Brief description, Amount raised (if public)
- Link to candidate's profile
- **Inspiration Section:** "Past Creative Fundraising Ideas" to help future candidates

#### 5. Photo Gallery Enhancement (Medium Priority)

**Why:** Current website has candidate portraits only; Facebook has candid event photos, behind-the-scenes, group shots that add personality

**Content to Include:**
- **Existing:** Candidate formal portraits
- **Add:** 
  - Candidate social events (group mingling photos)
  - Ball night photography (formal event, crowning moment)
  - Boys & Girls Club tour photos
  - Community event participation (parades, festivals)
  - Rehearsal photos
  - Auxiliary meetings/planning events

**Format:**
- **Organized by Year:** 2026 Gallery, 2025 Gallery, etc.
- **Sub-Categories:** Candidates, Ball Night, Community Events, Club Visits, Behind-the-Scenes
- **Lightbox Viewer:** Click to enlarge, navigate with arrows
- **Download Option:** High-res download for attendees/participants
- **Social Sharing:** Share individual photos to Facebook/Instagram

#### 6. FAQ Section (High Priority for Donation Page)

**Why:** Reduces friction in donation process; answers common questions proactively

**Questions to Include:**
- **For Donors:**
  - "Are donations tax-deductible?" (Yes, 501(c)(3))
  - "How much of my donation goes to the Boys & Girls Clubs?" (100% after Ball expenses)
  - "Can I donate to a specific candidate?" (Yes, via candidate pages during campaign)
  - "Can I donate year-round or only during campaign?" (Year-round accepted, directed to BGCGTC or next campaign)
  - "What payment methods do you accept?" (Checks, Visa, MasterCard)
  - "Can I donate in honor or memory of someone?" (Yes, include note)
  - "Will I receive a receipt for tax purposes?" (Yes, mailed/emailed)
  
- **For Prospective Candidates:**
  - "Who can apply to be a Cinderella candidate?" (Soph/Junior, Arlington school or resident)
  - "When are applications available?" (Fall each year)
  - "How are candidates selected?" (Application review: academics, leadership, community involvement)
  - "What is expected of candidates?" (Fundraising Feb-Apr, event attendance, community representation)
  - "Do I need fundraising experience?" (No, Ladies' Auxiliary provides support and guidance)
  
- **For Ball Attendees:**
  - "How much are tickets?" ($150/person)
  - "When does the Ball sell out?" (Historically sells out, buy early)
  - "Can I purchase a table?" (Yes, contact Ladies' Auxiliary)
  - "What is the dress code?" (Formal attire)
  - "Where is the Ball held?" (Arlington Convention Center at Lowes Hotel)

**Format:**
- Accordion-style (click to expand answer)
- Search bar to filter questions
- "Didn't find your answer? Contact us" link at bottom

#### 7. Volunteer/Get Involved Section (Medium Priority)

**Why:** Multiple pathways to support (donate, volunteer, sponsor) not clearly delineated

**Content to Include:**
- **Join Ladies' Auxiliary:** Benefits, requirements, membership dues link
- **Volunteer for Ball Committee:** Roles available, time commitment
- **Become a Sponsor:** Link to Sponsorship Opportunities page
- **Apply as a Candidate:** Link to candidate application (when open)
- **Attend the Ball:** Ticket purchase info
- **Donate:** Link to How to Donate

**Format:**
- 6 cards, each with icon, title, description, CTA button
- Visual: Photos of Auxiliary members, committee meetings, volunteers in action

---

### 6.2 Tone & Messaging Improvements

#### Current Tone Analysis
- **Formal and Informational:** Reads like official documentation
- **Fact-Heavy:** Lots of dates, names, figures (good for reference, less engaging)
- **Mission-Driven:** Clearly states purpose but lacks emotional connection

#### Recommended Tone Shifts

**From → To Examples:**

**BEFORE (Formal):**
> "The Cinderella Charity Ball is Arlington's longest-standing social event and charitable fundraiser."

**AFTER (Warm & Proud):**
> "For over 65 years, the Cinderella Charity Ball has been the heartbeat of Arlington's charitable spirit — our community's longest-running tradition of giving."

---

**BEFORE (Fact-Only):**
> "Proceeds from the Cinderella Charity Ball provide critical resources for the Arlington branches of the Boys & Girls Clubs of Greater Tarrant County."

**AFTER (Impact-Focused):**
> "Every dollar raised at the Cinderella Ball transforms lives. From music studios where kids discover their voices to security systems that keep them safe, your support builds brighter futures for Arlington's youth."

---

**BEFORE (Generic):**
> "There is no limit to the number of girls that may apply, but the maximum the Ladies' Auxiliary will select is twenty."

**AFTER (Encouraging):**
> "We welcome applications from all eligible young women! While we can select up to 20 candidates each year, every applicant brings something special to our community. If you're a sophomore or junior with a heart for service, we'd love to hear from you."

---

**BEFORE (Passive):**
> "The funds also provide a $2500 scholarship for future educational needs."

**AFTER (Celebratory):**
> "We're proud to award $12,500+ in scholarships each year, empowering our candidates to pursue their dreams and pay it forward to the next generation."

---

#### Voice & Style Guidelines

**Do:**
✅ Use "we," "our," "you" (conversational, community-focused)  
✅ Lead with impact, follow with facts  
✅ Celebrate milestones and achievements  
✅ Show personality (warmth, enthusiasm, pride)  
✅ Use active voice ("we raised $15M" not "has been raised")  
✅ Include storytelling elements (quotes, anecdotes, specific examples)  
✅ Emojis sparingly in informal sections (blog, social feeds) - ✨🎉❤️  

**Don't:**
❌ Use overly corporate/legal language except where required (Privacy, Terms)  
❌ Bury the lead (put exciting info first!)  
❌ Make assumptions about audience knowledge (define acronyms, explain processes)  
❌ Overuse jargon or formal titles excessively  
❌ Sound desperate or guilt-tripping in donation appeals  
❌ Use passive voice when active is clearer  

#### Section-Specific Tone Recommendations

**Home Page:** Welcoming, Energetic, Proud
- "Welcome to Arlington's most beloved charity tradition!"
- Emphasize excitement, community pride, current campaign energy

**About/History Pages:** Reflective, Respectful, Inspiring
- Honor legacy and founders
- Connect past to present impact
- Inspire continuation of tradition

**Candidate Pages:** Celebratory, Supportive, Personal
- Highlight each candidate's unique story and achievements
- Warm and encouraging tone
- Avoid overly formal bios (keep it relatable)

**Donation Pages:** Grateful, Urgent (during campaign), Impact-Driven
- Thank donors sincerely and specifically
- Show exactly where money goes (transparency)
- Create urgency during campaign without being pushy
- Celebrate generosity

**Boys & Girls Clubs Pages:** Compassionate, Hopeful, Evidence-Based
- Acknowledge challenges kids face (low income, etc.) with dignity
- Emphasize potential and success stories
- Use data to show credibility, stories to show heart

**Blog/News:** Conversational, Timely, Engaging
- Match Facebook's warm, enthusiastic tone
- Use exclamation points, emojis (sparingly)
- Keep it real and authentic (not overly polished)

---

### 6.3 Call-to-Action Recommendations

#### CTA Principles
1. **Clarity:** Action verb + specific outcome ("Donate Now" not "Click Here")
2. **Visibility:** Contrast color (gold), sufficient size, whitespace around
3. **Hierarchy:** Primary CTA per page (donate, apply, etc.), secondary CTAs less prominent
4. **Urgency:** Time-sensitive language during campaign ("XX Days Left to Donate!")
5. **Value Proposition:** Sometimes add benefit ("Donate Now - Change a Child's Life")

#### Primary CTAs by Page

**Home Page:**
- **Hero CTA:** "Meet the 2026 Candidates" (Primary) + "Donate Now" (Secondary)
- **Impact Stats CTA:** "See Where Your Donation Goes"
- **Upcoming Events CTA:** "Get Your Tickets" or "Mark Your Calendar"
- **Footer CTA:** "Join Our Mailing List"

**Candidate Grid Page:**
- **Filter Action:** "Show [School Name] Candidates" (button-style filters)
- **Individual Cards:** "View Profile" or candidate name (clickable)

**Individual Candidate Page:**
- **Primary CTA:** "Support [Candidate Name]'s Campaign" (during active campaign)
- **Secondary CTA:** "Share [Candidate Name]'s Story"
- **Fallback (campaign closed):** "Donate to General Fund" or "Support Next Year's Candidates"

**How to Donate Page:**
- **Campaign Active:** "Donate Now - [XX] Days Remaining!" (large, centered, above fold)
- **Campaign Closed:** "Thank You! Stay Updated for Next Year" (email signup)
- **Alternative:** "Support Boys & Girls Clubs Directly" (year-round option)

**About/History Pages:**
- **Soft CTA:** "Inspired? Learn How to Get Involved"
- **Footer CTA:** "Donate" or "Become an Auxiliary Member"

**Boys & Girls Clubs Pages:**
- **Primary CTA:** "See the Impact of Your Donation"
- **Secondary CTA:** "Visit a Club" or "Learn More at BGCGTC.org"

**Blog/News Pages:**
- **Post-level CTA:** "Share This Story"
- **Page-level CTA:** "Subscribe for Updates"

**Contact Page:**
- **Form CTA:** "Send Message" (submit button)
- **Alternative:** "Prefer Email? Write to us at [address]"

#### Urgency & Scarcity Tactics (Campaign Season)

**Countdown Timer:**
- "Campaign Ends in [XX] Days [XX] Hours!"
- Visual: Large digital countdown
- Placement: Sticky bar at top of every page during final week

**Progress Indicator:**
- "We're 75% to our goal! Help us finish strong."
- Visual: Animated progress bar
- Placement: Donate page hero

**Limited Availability:**
- "Ball Tickets Selling Fast - Only [XX] Seats Remaining"
- "Early Bird Pricing Ends [Date]"

**Social Proof:**
- "Join 500+ Donors Who've Already Contributed This Year"
- "Jane D. just donated $100 to Claire's Campaign!" (live feed, if implemented)

---

### 6.4 Engagement Features (Countdown Timers, Progress Bars, etc.)

#### 1. Campaign Countdown Timer (MUST HAVE)

**Location:** 
- Home page hero (during campaign season only)
- Donate page hero (during campaign season only)
- Sticky top bar (optional, final week only)

**Data Source:** 
- Hardcoded campaign end date (e.g., April 2, 2027, 6:00 PM CST)
- PHP sets the target timestamp
- JavaScript updates every second

**Display:**
```
Campaign Ends In:
[  12  ] DAYS  [ 05 ] HOURS  [ 32 ] MINUTES  [ 18 ] SECONDS
```

**Styling:**
- Large, bold numbers (48px+)
- Labels in smaller caps text
- Accent color (gold or red for urgency)
- Subtle pulse animation on numbers

**Behavior:**
- When countdown reaches 0: Display "Campaign Closed - Thank You!"
- Option: Confetti animation or celebration message when 0 is reached (if page is open at deadline)

**Code Approach (JavaScript):**
```javascript
function updateCountdown() {
  const endDate = new Date('April 2, 2027 18:00:00 CST').getTime();
  const now = new Date().getTime();
  const distance = endDate - now;
  
  const days = Math.floor(distance / (1000 * 60 * 60 * 24));
  const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  const seconds = Math.floor((distance % (1000 * 60)) / 1000);
  
  if (distance < 0) {
    document.getElementById('countdown').innerHTML = 'Campaign Closed - Thank You!';
  } else {
    document.getElementById('countdown').innerHTML = 
      `${days}d ${hours}h ${minutes}m ${seconds}s`;
  }
}
setInterval(updateCountdown, 1000);
```

---

#### 2. Fundraising Progress Bar (HIGH VALUE)

**Location:**
- Donate page (primary)
- Home page (optional, impact stats section)

**Data Source:**
- Database field: `campaign_total_raised` (manually updated by admin)
- Database field: `campaign_goal` (set at campaign start)
- Calculate percentage: `(total_raised / goal) * 100`

**Display:**
```
$687,450 raised of $1,000,000 goal (68.7%)

[████████████████████░░░░░░░░░░░░] 68.7%
```

**Styling:**
- Horizontal bar, full-width or fixed width (600px)
- Filled portion: Gradient (blue to gold)
- Unfilled portion: Light gray
- Rounded corners (border-radius: 20px)
- Height: 40px
- Text above bar: Bold, large (24px)
- Percentage inside bar or next to it

**Animation:**
- On page load: Animate fill from 0% to actual percentage over 1.5 seconds (smooth)
- Library: CSS transition or lightweight JS animation

**Code Approach (PHP + CSS):**
```php
<?php
$goal = 1000000;
$raised = 687450; // From database
$percentage = ($raised / $goal) * 100;
?>

<div class="progress-container">
  <p class="progress-text">$<?= number_format($raised) ?> raised of $<?= number_format($goal) ?> goal (<?= number_format($percentage, 1) ?>%)</p>
  <div class="progress-bar-bg">
    <div class="progress-bar-fill" style="width: <?= $percentage ?>%;"></div>
  </div>
</div>

<style>
.progress-bar-bg {
  width: 100%;
  height: 40px;
  background: #E5E7EB;
  border-radius: 20px;
  overflow: hidden;
}
.progress-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #1E3A8A, #F59E0B);
  transition: width 1.5s ease-in-out;
}
</style>
```

---

#### 3. Live Social Media Feed (ENGAGEMENT BOOSTER)

**Location:**
- Home page (lower section, before footer)
- News/Updates page (sidebar)

**Source:**
- Facebook Page Plugin (official)
- Instagram feed (third-party widget or custom API integration)

**Facebook Page Plugin:**
- Embed code from Facebook Developers
- Settings: Show recent posts (5), small header, hide cover photo
- Width: Responsive (adapt to container)
- Height: 500-600px (scrollable)

**Instagram Feed:**
- Options: SnapWidget, LightWidget, Curator.io, or custom Graph API
- Display: 6-12 recent photos in grid
- Hover: Show likes/comments count
- Click: Open Instagram post in new tab or lightbox

**Fallback:**
- If embed fails to load (ad blockers, etc.), display:
  - "Follow us on [Facebook/Instagram]" with direct links
  - Static image of recent post as backup

---

#### 4. Interactive Candidate Filter (UX ENHANCEMENT)

**Location:** 2026 Candidates page

**Filter Options:**
- **All Candidates** (default, shows all 18)
- **By School:** Dropdown or button list (Arlington High, Martin High, Lamar High, etc.)
- **By Year:** Sophomore | Junior
- **Alphabetical:** A-Z name sort

**Behavior:**
- Click filter → Grid re-renders to show only matching candidates
- Smooth fade-out/fade-in animation (0.3s)
- No page reload (JavaScript filtering)
- Update URL hash (e.g., `#filter=martin-high`) so filter state is shareable

**Code Approach:**
- Assign data attributes to each candidate card (e.g., `data-school="martin"`, `data-year="junior"`)
- JavaScript: On filter click, hide cards that don't match, show cards that do
- Use CSS transitions for smooth appearance/disappearance

---

#### 5. Email Newsletter Popup (OPT-IN GROWTH)

**Trigger Options:**
- **Exit Intent:** Detect mouse leaving viewport (desktop) → show popup
- **Time Delay:** After 30 seconds on site (first-time visitors only)
- **Scroll Depth:** After user scrolls 50% down home page

**Design:**
- **Headline:** "Stay in the Loop!"
- **Subtext:** "Get campaign updates, event invites, and impact stories delivered to your inbox."
- **Form:** Email input + "Subscribe" button
- **Close X:** Easy to dismiss (top-right corner)
- **Styling:** Overlay modal with semi-transparent background, centered, responsive

**Behavior:**
- Cookie/localStorage: Don't show again if user subscribed or dismissed (for 30 days)
- AJAX submit: Add email to database without page reload
- Success message: "Thank you! Check your email to confirm."

**Integration:**
- Store emails in database OR integrate with Mailchimp API, Constant Contact, etc.
- Send confirmation email with double opt-in link (best practice)

---

#### 6. Donation Amount Quick Selector (CONVERSION BOOSTER)

**Location:** Inline donation form (if credit card donations are processed on-site)

**Display:**
```
Select an amount or enter your own:

[  $25  ]  [  $50  ]  [  $100  ]  [  $250  ]  [  $500  ]  [ Custom ]

[ _______ ] Amount: $____
```

**Behavior:**
- Click preset button → Highlights button (filled background), populates amount field
- Click "Custom" → Amount field becomes editable
- All buttons deselect when user types custom amount

**Psychology:**
- Preset amounts guide donors to meaningful contribution levels
- Highest preset ($500) "anchors" perception, making $100-250 seem reasonable
- "Custom" option ensures flexibility without limiting generosity

---

#### 7. Share Progress on Social Media (VIRALITY)

**Location:**
- Post-donation confirmation page
- Candidate profile pages
- Impact story pages

**Message Templates (Pre-Populated):**

**For Donors:**
"I just supported the Cinderella Charity Ball! Join me in helping Arlington's youth. [Link] #CinderellaBall #ArlingtonTX"

**For Candidate Supporters:**
"I'm supporting Claire Novoselsky's campaign for the Cinderella Charity Ball! [Link] #TeamClaire #CinderellaBall"

**Buttons:**
- [Share on Facebook]
- [Tweet This]
- [Copy Link to Clipboard]

**Behavior:**
- Facebook: Opens Facebook share dialog with pre-filled text + link
- Twitter: Opens tweet composer with text + link + hashtags
- Copy Link: JavaScript copies URL, shows "Copied!" confirmation

---

#### 8. Real-Time Donation Notifications (SOCIAL PROOF)

**Location:** Floating notification in bottom-right corner (desktop) or top (mobile)

**Display:**
```
[Avatar Icon] Jane D. just donated $100 to Claire's campaign! 💙
```

**Data Source:**
- Recent donations from database (last 24-48 hours)
- Display donor first name + last initial (privacy), amount (optional), candidate (if specified)
- Rotate through 5-10 recent donations

**Behavior:**
- Notification slides in from right
- Stays visible for 5 seconds
- Fades out
- Next notification appears after 10-15 second delay
- User can close manually (X button)

**Privacy Note:**
- Only show if donor opted in to public recognition
- Or generalize: "Someone just donated $50!" (anonymous)

---

#### 9. Candidate Fundraising Leaderboard (GAMIFICATION - Use with Caution)

**Consideration:** This can create healthy competition BUT may discourage candidates with less affluent networks. **Recommendation:** Only implement if Ladies' Auxiliary approves and ensures it aligns with mission.

**IF Implemented:**

**Location:** Campaign Updates page or Candidates page (opt-in view)

**Display:**
```
2027 Campaign Leaderboard
(Updated Daily)

1. Candidate A - $XX,XXX
2. Candidate B - $XX,XXX
3. Candidate C - $XX,XXX
...
```

**Alternative (More Inclusive):**
"Every candidate is a winner! See total raised by all 2027 candidates: $XXX,XXX"

---

#### 10. Interactive Impact Calculator (DONOR ENGAGEMENT)

**Location:** Donate page or Impact Stories page

**Concept:** Show donors exactly what their contribution funds

**Display:**
```
Your Impact Calculator

I want to donate: [ $____ ]

[Calculate]

Your $100 donation provides:
✅ 50 after-school snacks for kids
✅ 2 hours of tutoring support
✅ Art supplies for 10 students
✅ 1 week of summer camp for a child
```

**Data Source:**
- Create conversion table (e.g., $2 = 1 snack, $50 = 1 hour tutoring)
- JavaScript calculates based on user input

**Benefit:**
- Makes abstract "support" tangible and relatable
- Emotionally connects donor to impact

---

## 7. TECHNICAL IMPLEMENTATION NOTES (PHP Development)

### 7.1 Database Structure Suggestions

#### Recommended Database (MySQL/MariaDB)

**Why MySQL:**
- Industry standard for PHP applications
- Well-documented, widely supported
- Free and open-source
- Excellent performance for this use case
- Easy integration with shared hosting or VPS

---

#### Table Schemas

**Table 1: `candidates`**
```sql
CREATE TABLE candidates (
    id INT AUTO_INCREMENT PRIMARY KEY,
    year INT NOT NULL,
    first_name VARCHAR(100) NOT NULL,
    middle_name VARCHAR(100),
    last_name VARCHAR(100) NOT NULL,
    full_name VARCHAR(255) NOT NULL,
    school VARCHAR(255) NOT NULL,
    grade VARCHAR(20) NOT NULL, -- 'Sophomore' or 'Junior'
    escort_name VARCHAR(255),
    escort_school VARCHAR(255),
    escort_parents VARCHAR(255),
    bio_text TEXT,
    achievements TEXT,
    future_goals TEXT,
    parents_names VARCHAR(255),
    siblings TEXT,
    grandparents TEXT,
    pets TEXT,
    extracurriculars TEXT,
    gpa DECIMAL(3,2),
    class_rank VARCHAR(50),
    photo_url VARCHAR(500),
    photo_alt TEXT,
    is_winner BOOLEAN DEFAULT FALSE,
    slug VARCHAR(255) UNIQUE, -- URL-friendly version of name
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_year (year),
    INDEX idx_school (school),
    INDEX idx_slug (slug)
);
```

**Table 2: `historical_winners`**
```sql
CREATE TABLE historical_winners (
    id INT AUTO_INCREMENT PRIMARY KEY,
    year INT NOT NULL UNIQUE,
    winner_name VARCHAR(255) NOT NULL,
    school VARCHAR(255),
    additional_info TEXT,
    INDEX idx_year (year)
);
```

**Table 3: `scholarship_winners`**
```sql
CREATE TABLE scholarship_winners (
    id INT AUTO_INCREMENT PRIMARY KEY,
    year INT NOT NULL,
    winner_name VARCHAR(255) NOT NULL,
    scholarship_type VARCHAR(100), -- '1st Place', '2nd Place', 'Volunteer', etc.
    amount DECIMAL(10,2),
    INDEX idx_year (year)
);
```

**Table 4: `committee_members`**
```sql
CREATE TABLE committee_members (
    id INT AUTO_INCREMENT PRIMARY KEY,
    year INT NOT NULL,
    role VARCHAR(255) NOT NULL,
    name VARCHAR(255) NOT NULL,
    sort_order INT DEFAULT 0, -- For custom ordering
    INDEX idx_year (year)
);
```

**Table 5: `auxiliary_members`**
```sql
CREATE TABLE auxiliary_members (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    membership_type VARCHAR(50), -- 'Active', 'Associate', 'Legacy', 'Past President'
    year_joined INT,
    is_current BOOLEAN DEFAULT TRUE,
    sort_order INT DEFAULT 0
);
```

**Table 6: `donations`** (if tracking online donations)
```sql
CREATE TABLE donations (
    id INT AUTO_INCREMENT PRIMARY KEY,
    donor_first_name VARCHAR(100),
    donor_last_name VARCHAR(100),
    donor_email VARCHAR(255),
    donor_phone VARCHAR(20),
    amount DECIMAL(10,2) NOT NULL,
    donation_type VARCHAR(50), -- 'Candidate', 'General', 'Sponsorship', 'Membership'
    candidate_id INT, -- Foreign key to candidates table (if supporting specific candidate)
    campaign_year INT NOT NULL,
    payment_method VARCHAR(50), -- 'Credit Card', 'Check', 'Cash'
    transaction_id VARCHAR(255), -- From payment processor
    status VARCHAR(50) DEFAULT 'Pending', -- 'Pending', 'Completed', 'Failed', 'Refunded'
    notes TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_campaign_year (campaign_year),
    INDEX idx_candidate_id (candidate_id),
    INDEX idx_status (status),
    FOREIGN KEY (candidate_id) REFERENCES candidates(id) ON DELETE SET NULL
);
```

**Table 7: `blog_posts`** (for Campaign Updates / News)
```sql
CREATE TABLE blog_posts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    slug VARCHAR(255) UNIQUE NOT NULL,
    excerpt TEXT,
    content TEXT NOT NULL,
    featured_image_url VARCHAR(500),
    author VARCHAR(100),
    category VARCHAR(100), -- 'Campaign Update', 'Impact Story', 'Press', 'Event'
    tags TEXT, -- Comma-separated or JSON
    status VARCHAR(20) DEFAULT 'draft', -- 'draft', 'published'
    published_at TIMESTAMP,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_slug (slug),
    INDEX idx_status (status),
    INDEX idx_published_at (published_at)
);
```

**Table 8: `events`**
```sql
CREATE TABLE events (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event_name VARCHAR(255) NOT NULL,
    event_date DATE NOT NULL,
    event_time TIME,
    location VARCHAR(255),
    description TEXT,
    ticket_price DECIMAL(10,2),
    registration_url VARCHAR(500),
    status VARCHAR(50) DEFAULT 'upcoming', -- 'upcoming', 'completed', 'cancelled'
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_event_date (event_date)
);
```

**Table 9: `email_subscribers`**
```sql
CREATE TABLE email_subscribers (
    id INT AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) UNIQUE NOT NULL,
    name VARCHAR(255),
    subscribed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    is_active BOOLEAN DEFAULT TRUE,
    confirmation_token VARCHAR(255), -- For double opt-in
    confirmed_at TIMESTAMP,
    INDEX idx_email (email)
);
```

**Table 10: `site_settings`** (for campaign status, goals, etc.)
```sql
CREATE TABLE site_settings (
    id INT AUTO_INCREMENT PRIMARY KEY,
    setting_key VARCHAR(100) UNIQUE NOT NULL,
    setting_value TEXT,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_setting_key (setting_key)
);

-- Example rows:
-- ('campaign_active', '1')
-- ('campaign_year', '2027')
-- ('campaign_goal', '1000000')
-- ('campaign_total_raised', '687450')
-- ('campaign_start_date', '2027-02-07')
-- ('campaign_end_date', '2027-04-02 18:00:00')
-- ('ball_date', '2027-04-10')
-- ('ball_location', 'Arlington Convention Center at Lowes Hotel')
```

**Table 11: `contact_submissions`**
```sql
CREATE TABLE contact_submissions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    phone VARCHAR(20),
    subject VARCHAR(255),
    message TEXT NOT NULL,
    submitted_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    ip_address VARCHAR(45),
    user_agent TEXT,
    status VARCHAR(50) DEFAULT 'new', -- 'new', 'read', 'responded'
    INDEX idx_status (status),
    INDEX idx_submitted_at (submitted_at)
);
```

---

### 7.2 Form Handling Recommendations

#### General PHP Form Best Practices

**1. Input Validation & Sanitization**

```php
<?php
// ALWAYS validate and sanitize user input
function sanitize_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
    return $data;
}

// Example: Contact Form Processing
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = sanitize_input($_POST['name'] ?? '');
    $email = filter_var($_POST['email'] ?? '', FILTER_SANITIZE_EMAIL);
    $phone = sanitize_input($_POST['phone'] ?? '');
    $message = sanitize_input($_POST['message'] ?? '');
    
    // Validation
    $errors = [];
    
    if (empty($name)) {
        $errors[] = 'Name is required';
    }
    
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $errors[] = 'Valid email is required';
    }
    
    if (empty($message)) {
        $errors[] = 'Message is required';
    }
    
    if (empty($errors)) {
        // Process form (save to database, send email, etc.)
        // ...
    }
}
?>
```

**2. CSRF Protection**

```php
<?php
// Generate CSRF token
session_start();
if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}

// In form HTML:
?>
<input type="hidden" name="csrf_token" value="<?= $_SESSION['csrf_token'] ?>">

<?php
// Validate on submission:
if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) {
    die('Invalid CSRF token');
}
?>
```

**3. Honeypot Spam Protection**

```php
<!-- In form HTML (hidden field): -->
<input type="text" name="website" style="display:none;" tabindex="-1" autocomplete="off">

<?php
// In processing:
if (!empty($_POST['website'])) {
    // This is likely a bot (honeypot was filled)
    die('Spam detected');
}
?>
```

**4. Rate Limiting**

```php
<?php
session_start();

// Simple rate limiting (max 5 submissions per hour)
$rate_limit_key = 'form_submissions_' . $_SERVER['REMOTE_ADDR'];

if (!isset($_SESSION[$rate_limit_key])) {
    $_SESSION[$rate_limit_key] = [];
}

$_SESSION[$rate_limit_key] = array_filter($_SESSION[$rate_limit_key], function($timestamp) {
    return $timestamp > (time() - 3600); // Keep only last hour
});

if (count($_SESSION[$rate_limit_key]) >= 5) {
    die('Too many submissions. Please try again later.');
}

// After successful submission:
$_SESSION[$rate_limit_key][] = time();
?>
```

**5. Email Notifications**

```php
<?php
// Use PHPMailer (recommended) or native mail() with caution
require 'vendor/autoload.php'; // If using Composer

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

function send_contact_email($name, $email, $message) {
    $mail = new PHPMailer(true);
    
    try {
        // SMTP Configuration
        $mail->isSMTP();
        $mail->Host = 'smtp.gmail.com'; // Or your SMTP server
        $mail->SMTPAuth = true;
        $mail->Username = 'your-email@gmail.com';
        $mail->Password = 'your-app-password';
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
        $mail->Port = 587;
        
        // Recipients
        $mail->setFrom('noreply@cinderellacharityball.com', 'Cinderella Charity Ball');
        $mail->addAddress('askus@cinderellacharityball.com');
        $mail->addReplyTo($email, $name);
        
        // Content
        $mail->isHTML(true);
        $mail->Subject = 'New Contact Form Submission';
        $mail->Body = "
            <h2>New Contact Form Submission</h2>
            <p><strong>Name:</strong> $name</p>
            <p><strong>Email:</strong> $email</p>
            <p><strong>Message:</strong><br>$message</p>
        ";
        
        $mail->send();
        return true;
    } catch (Exception $e) {
        error_log("Email sending failed: {$mail->ErrorInfo}");
        return false;
    }
}
?>
```

---

#### Specific Form Implementations

**Contact Form (contact.php)**
- Fields: Name, Email, Phone, Subject (dropdown), Message
- Validation: All required except phone
- Actions: Save to `contact_submissions` table, send email notification
- Response: Success message or error list

**Donation Form (if processing on-site)**
- Fields: Donor info, Amount (preset + custom), Candidate selection, Payment details
- Validation: Amount > 0, valid email, payment info (if applicable)
- Actions: 
  - Save to `donations` table with status 'Pending'
  - Integrate payment gateway (Stripe, PayPal, Square)
  - Update status to 'Completed' on success
  - Send confirmation email with tax receipt
- Security: PCI compliance if storing card data (recommend using tokenization via gateway)

**Email Signup Form (multiple locations)**
- Fields: Email, Name (optional)
- Validation: Valid email format, not already subscribed
- Actions:
  - Generate confirmation token
  - Save to `email_subscribers` table with `is_active=false`
  - Send double opt-in email with confirmation link
  - On confirmation link click: Set `confirmed_at`, `is_active=true`
- Response: "Check your email to confirm subscription"

**Candidate Application Form (seasonal)**
- Fields: Comprehensive (personal info, school, activities, parents, essay questions)
- Validation: Extensive (grade level, Arlington residency verification)
- Actions: Save to separate `applications` table (not `candidates` until selected)
- Security: File upload validation for required documents (resume, transcripts)
- Response: "Application received - you'll hear from us by [date]"

---

### 7.3 Image Optimization Notes

#### Image Strategy

**1. Responsive Images (Serve Correct Size)**

Use `<picture>` element or `srcset` attribute:

```html
<!-- Candidate portrait example -->
<picture>
    <source media="(max-width: 767px)" srcset="/images/candidates/claire-novoselsky-500w.webp">
    <source media="(max-width: 1023px)" srcset="/images/candidates/claire-novoselsky-800w.webp">
    <source media="(min-width: 1024px)" srcset="/images/candidates/claire-novoselsky-1200w.webp">
    <img src="/images/candidates/claire-novoselsky-800w.jpg" alt="Claire Diane Novoselsky" loading="lazy">
</picture>
```

**2. Image Formats**

**WebP (Primary):**
- 25-35% smaller than JPG at same quality
- Supported by all modern browsers (95%+ coverage)
- Fallback to JPG for old browsers

**JPG (Fallback):**
- For photos (candidates, events)
- Quality: 80-85% (good balance of size/quality)
- Progressive encoding (loads top-to-bottom)

**PNG (Specific Use):**
- Logos (transparency needed)
- Graphics with text
- Icons (or use SVG instead)

**SVG (Preferred for Logos/Icons):**
- Infinitely scalable
- Tiny file size
- Ladies' Auxiliary logo, BGCGTC logo should be SVG

**3. Compression Tools**

**Automated (during upload):**
- PHP script using ImageMagick or GD Library to resize + compress on upload
- Example (ImageMagick):
```php
<?php
function optimize_image($source_path, $dest_path, $max_width = 1200, $quality = 85) {
    $image = new Imagick($source_path);
    
    // Resize if larger than max width
    if ($image->getImageWidth() > $max_width) {
        $image->scaleImage($max_width, 0);
    }
    
    // Set compression quality
    $image->setImageCompressionQuality($quality);
    
    // Strip metadata (reduce file size)
    $image->stripImage();
    
    // Save as WebP
    $image->setImageFormat('webp');
    $image->writeImage($dest_path . '.webp');
    
    // Also save JPG fallback
    $image->setImageFormat('jpg');
    $image->writeImage($dest_path . '.jpg');
    
    $image->destroy();
}
?>
```

**Manual (before upload):**
- TinyPNG, Squoosh, ImageOptim
- Recommend compressing candidate photos before adding to site

**4. Lazy Loading**

```html
<img src="image.jpg" alt="Description" loading="lazy">
```
- Delays loading of below-the-fold images
- Native browser support (modern browsers)
- Significant performance boost on image-heavy pages (candidate grid)

**5. Image Dimensions in HTML**

Always specify width and height to prevent layout shift:

```html
<img src="candidate.jpg" alt="Name" width="819" height="1024" loading="lazy">
```
- Browser reserves space before image loads
- Improves Cumulative Layout Shift (CLS) metric

**6. CDN (Optional, for High Traffic)**

- CloudFlare, Bunny CDN, or Cloudinary
- Automatic image optimization and resizing
- Global distribution (faster load times)
- Worth considering if site gets 10k+ monthly visitors

---

### 7.4 SEO Best Practices

#### On-Page SEO

**1. Title Tags (Unique per Page)**

```html
<!-- Home Page -->
<title>Cinderella Charity Ball - Arlington's Premier Charity Event Since 1961</title>

<!-- Candidate Page -->
<title>Claire Diane Novoselsky - Miss Cinderella 2026 | Cinderella Charity Ball</title>

<!-- Donate Page -->
<title>Donate to Support Arlington Youth | Cinderella Charity Ball</title>
```

**Best Practices:**
- 50-60 characters optimal
- Include primary keyword (Cinderella Charity Ball, Arlington, etc.)
- Unique per page (no duplicates)
- Front-load important keywords

**2. Meta Descriptions**

```html
<meta name="description" content="Support Arlington's youth through the Cinderella Charity Ball. For 65+ years, we've raised $15M+ for the Boys & Girls Clubs. Donate today or meet our 2026 candidates.">
```

**Best Practices:**
- 150-160 characters
- Compelling call-to-action
- Include target keywords naturally
- Unique per page

**3. Header Hierarchy (H1, H2, H3)**

- **One H1 per page** (main page title)
- **H2 for major sections** (About, Candidates, Donate)
- **H3 for subsections**
- Logical hierarchy (don't skip levels: H1→H3 without H2)

**4. URL Structure (Clean, Descriptive)**

✅ **Good:**
- `/candidates/claire-novoselsky`
- `/how-to-donate`
- `/impact-stories/music-studio-2023`

❌ **Bad:**
- `/page.php?id=47`
- `/candidate_profile.php?name=claire`

**Implementation (PHP with .htaccess rewriting):**

```apache
# .htaccess
RewriteEngine On
RewriteRule ^candidates/([a-z-]+)$ candidate.php?slug=$1 [L]
RewriteRule ^impact-stories/([a-z0-9-]+)$ story.php?slug=$1 [L]
```

**5. Alt Text for Images (Accessibility + SEO)**

```html
<img src="claire.jpg" alt="Claire Diane Novoselsky, Miss Cinderella 2026, smiling in formal gown">
```

**Best Practices:**
- Descriptive (not just "photo" or "candidate")
- Include relevant keywords naturally
- Describe image content for screen readers
- Don't keyword stuff

**6. Internal Linking**

- Link related pages (candidate bio → how to donate)
- Anchor text should be descriptive (not "click here")
- Breadcrumb navigation (Home > About > Our History)
- Footer links to key pages

**7. Schema Markup (Structured Data)**

Implement Schema.org markup for:
- **Organization:** Cinderella Charity Ball, Ladies' Auxiliary
- **Event:** Annual Ball (date, location, ticket price)
- **Person:** Candidate profiles
- **Article:** Blog posts, impact stories

**Example (JSON-LD for Event):**
```html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "67th Annual Cinderella Charity Ball",
  "startDate": "2027-04-10T19:00",
  "location": {
    "@type": "Place",
    "name": "Arlington Convention Center at Lowes Hotel",
    "address": {
      "@type": "PostalAddress",
      "addressLocality": "Arlington",
      "addressRegion": "TX"
    }
  },
  "offers": {
    "@type": "Offer",
    "price": "150",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  },
  "organizer": {
    "@type": "Organization",
    "name": "Ladies' Auxiliary of Arlington",
    "url": "https://cinderellacharityball.com"
  }
}
</script>
```

**8. Open Graph & Twitter Cards**

```html
<!-- Open Graph (Facebook, LinkedIn) -->
<meta property="og:title" content="Claire Diane Novoselsky - Miss Cinderella 2026">
<meta property="og:description" content="Meet Claire, a junior at Arlington High School raising funds for Arlington's youth.">
<meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/Bill_Murray_at_the_2024_Toronto_International_Film_Festival_%28Riff_Raff%29_2_%283x4_cropped%29.jpg/250px-Bill_Murray_at_the_2024_Toronto_International_Film_Festival_%28Riff_Raff%29_2_%283x4_cropped%29.jpg">
<meta property="og:url" content="https://cinderellacharityball.com/candidates/claire-novoselsky">
<meta property="og:type" content="profile">

<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Claire Diane Novoselsky - Miss Cinderella 2026">
<meta name="twitter:description" content="Meet Claire, a junior at Arlington High School raising funds for Arlington's youth.">
<meta name="twitter:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Ray_Kroc_1976.jpg/250px-Ray_Kroc_1976.jpg">
```

**9. XML Sitemap**

Generate sitemap.xml listing all pages:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://cinderellacharityball.com/</loc>
    <lastmod>2026-05-03</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://cinderellacharityball.com/candidates/claire-novoselsky</loc>
    <lastmod>2026-04-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <!-- ... all pages ... -->
</urlset>
```

Submit to Google Search Console

**10. Robots.txt**

```
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /private/

Sitemap: https://cinderellacharityball.com/sitemap.xml
```

---

#### Local SEO (Critical for Arlington Community)

**1. Google My Business**
- Claim/verify listing for "Cinderella Charity Ball"
- Category: Nonprofit Organization
- Add photos, events, posts
- Encourage reviews (if applicable)

**2. NAP Consistency (Name, Address, Phone)**
- Ensure consistent business info across:
  - Website footer
  - Google My Business
  - Facebook page
  - Any directory listings

**3. Location Keywords**
- "Arlington charity ball"
- "Arlington Boys & Girls Clubs"
- "Arlington fundraiser"
- "Arlington nonprofit"
- Include "Arlington, Texas" in key pages

**4. Local Schema Markup**

```html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "NGO",
  "name": "Cinderella Charity Ball",
  "url": "https://cinderellacharityball.com",
  "logo": "https://2026.cinderellacharityball.com/wp-content/uploads/2025/10/Cinderella-header-66.jpg",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Arlington",
    "addressRegion": "TX",
    "postalCode": "76015",
    "addressCountry": "US"
  },
  "sameAs": [
    "https://www.facebook.com/cinderellacharityball/",
    "https://www.instagram.com/cinderellacharityball"
  ]
}
</script>
```

---

### 7.5 Performance Considerations

#### Page Load Speed Optimization

**1. Minimize HTTP Requests**
- Combine CSS files into one (or use critical CSS inline)
- Combine JavaScript files
- Use CSS sprites for small icons (or inline SVG)
- Limit third-party scripts (analytics, social widgets)

**2. Enable Gzip Compression**

```apache
# .htaccess
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
</IfModule>
```

**3. Browser Caching**

```apache
# .htaccess
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpg "access plus 1 year"
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType image/webp "access plus 1 year"
  ExpiresByType text/css "access plus 1 month"
  ExpiresByType application/javascript "access plus 1 month"
</IfModule>
```

**4. Minify CSS/JS**

- Remove whitespace, comments, unnecessary code
- Tools: CSSMinifier, JSCompress, or build tools (Gulp, Webpack)
- Minified files: `style.min.css`, `script.min.js`

**5. Defer Non-Critical JavaScript**

```html
<!-- Critical JS loads normally -->
<script src="critical.js"></script>

<!-- Non-critical JS deferred -->
<script src="analytics.js" defer></script>
<script src="social-widgets.js" defer></script>
```

**6. Critical CSS Inline**

- Inline CSS for above-the-fold content in `<head>`
- Load full stylesheet asynchronously

```html
<style>
  /* Critical CSS here (header, hero, navigation) */
  header { ... }
  .hero { ... }
</style>

<link rel="preload" href="style.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="style.css"></noscript>
```

**7. Database Query Optimization**

- Use indexes on frequently queried fields (year, slug, status)
- Avoid SELECT * (specify needed columns)
- Limit results with LIMIT clause
- Use prepared statements (prevents SQL injection + performance)

**Example:**
```php
<?php
// Good: Indexed, limited, specific columns
$stmt = $pdo->prepare("SELECT id, full_name, school, photo_url FROM candidates WHERE year = ? AND is_winner = 1 LIMIT 1");
$stmt->execute([2026]);
$winner = $stmt->fetch();

// Bad: No index, SELECT *, no limit
$result = mysqli_query($conn, "SELECT * FROM candidates WHERE bio_text LIKE '%Arlington%'");
?>
```

**8. Limit External Dependencies**

- Self-host libraries when possible (jQuery, Bootstrap) instead of CDNs
- Evaluate necessity of each third-party script
- Use lightweight alternatives (Alpine.js vs Vue, etc.)

**9. Enable OPcache (PHP)**

```ini
; php.ini
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
```
- Caches compiled PHP code
- Significant performance improvement (30-50% faster)

**10. Monitor Performance**

**Tools:**
- Google PageSpeed Insights
- GTmetrix
- WebPageTest
- Chrome DevTools (Lighthouse)

**Target Metrics:**
- First Contentful Paint (FCP): <1.8s
- Largest Contentful Paint (LCP): <2.5s
- Time to Interactive (TTI): <3.8s
- Cumulative Layout Shift (CLS): <0.1
- Total Page Size: <2MB (ideally <1MB)

---

#### Hosting Recommendations

**Shared Hosting (Budget-Friendly):**
- SiteGround, Bluehost, DreamHost
- Good for starting out (<10k visitors/month)
- Usually includes cPanel, PHP, MySQL
- Cost: $5-15/month

**VPS (Better Performance):**
- DigitalOcean, Linode, Vultr
- More control, better performance
- Requires server management knowledge (or managed VPS)
- Cost: $10-40/month

**Requirements:**
- PHP 7.4+ (8.0+ preferred)
- MySQL 5.7+ or MariaDB 10.3+
- HTTPS/SSL certificate (free via Let's Encrypt)
- Daily backups
- At least 1GB RAM, 20GB storage

---

## 8. Image & Media Assets

### 8.1 Image Inventory Summary

**Current Assets:**
- **Header Banner:** 1 (Cinderella header 66.jpg)
- **Candidate Portraits:** 18 (2026 candidates)
- **Organization Logos:** 2 (Ladies' Auxiliary, BGCGTC) in multiple formats
- **Event/Group Photos:** 6+ (slider/gallery images)
- **Committee/People Photos:** Chris Hightower portrait
- **Results/Program Images:** 2 (2026 Results JPG, 2026 Program JPG)
- **Audio:** 1 MP3 (Ball Recap)

**Total Images on Current Site:** 30+

### 8.2 New Images Needed for Redesign

**High Priority:**
1. **Modern Hero Image** - Wide (1920x1080) high-quality photo for home page hero
   - Options: Ball night photo, candidate group photo, Miss Cinderella with crown
2. **Impact Photos** - Behind-the-scenes Boys & Girls Clubs facility photos
   - Security system installation
   - Music studio with kids
   - Mobile Clubhouse RV
   - Dan Serna Branch renovations (before/after)
3. **Auxiliary Group Photo** - Current Ladies' Auxiliary members (2026-2027)
4. **Committee Photo** - 2026 Ball Committee group photo
5. **Event Photos** - High-res Ball night photography (formal event, dancing, crowning)
6. **Candid Candidate Photos** - Beyond formal portraits (social events, fundraising activities)

**Medium Priority:**
7. **Icons/Graphics** - Custom icons for "How It Works" process, donation pathways
8. **Infographics** - Visual representation of impact statistics, timeline graphics
9. **Sponsor Logos** - Corporate/business sponsor logos (if implementing sponsorship page)

**Source for New Images:**
- **Facebook Page:** Download high-res versions of impact stories photos
- **Photographers:** Heather Harvey Photography, Terry Ip Photography (license existing photos)
- **Stock Photos:** Unsplash, Pexels (for generic backgrounds, textures if needed)
- **Auxiliary Members:** Request photos from Ladies' Auxiliary archive

### 8.3 Image Organization Structure

**Recommended Directory Structure:**
```
/images/
  /header/
    cinderella-header-66.jpg
    hero-2027.jpg (new)
  /candidates/
    /2026/
      claire-novoselsky.jpg (original)
      claire-novoselsky-500w.webp (responsive)
      claire-novoselsky-800w.webp
      claire-novoselsky-1200w.webp
      [repeat for all 18 candidates]
    /2025/
      [previous year]
  /events/
    ball-2026-formal.jpg
    ball-2026-crowning.jpg
    candidate-social-2026.jpg
  /impact/
    security-system-main-branch.jpg
    music-studio-kromer-2023.jpg
    mobile-clubhouse-rv.jpg
  /logos/
    ladies-auxiliary.svg
    ladies-auxiliary.png (fallback)
    bgcgtc.svg
    bgcgtc.png
  /committee/
    auxiliary-group-2026.jpg
    chris-hightower.jpg
  /results/
    ccb-2026-results.jpg
    ccb-2026-program.jpg
  /icons/
    heart.svg
    calendar.svg
    donate.svg
    [etc.]
  /backgrounds/
    [textures, patterns for section backgrounds]
```

**Naming Convention:**
- Lowercase, hyphens (not underscores or spaces)
- Descriptive: `claire-novoselsky.jpg` not `IMG_1234.jpg`
- Include size/format variant: `-500w`, `-800w`, `.webp`

---

## 9. Social Media Integration Strategy

### 9.1 Current Social Media Presence

**Facebook:**
- Page: facebook.com/cinderellacharityball
- Likes: ~1,298
- Engagement: ~42% (very high!)
- Content: Campaign updates, candidate spotlights, impact stories, behind-the-scenes

**Instagram:**
- Handle: @cinderellacharityball
- Followers: ~1,177
- Posts: 501+
- Content: Professional photography, event highlights, candidate features

**Website:**
- Current integration: Social icons in header (Facebook, Instagram links)
- Limited: No embedded feeds, no share buttons on pages

### 9.2 Enhanced Integration Plan

#### Website → Social Media (Drive Traffic)

**1. Prominent Social Icons**
- Header: Top-right, always visible
- Footer: Large icons with "Follow Us" heading
- Contact page: "Connect with us on social media"

**2. Social Sharing Buttons (NEW)**
- Candidate pages: "Share [Name]'s story"
- Impact stories: "Share this impact"
- Blog posts: "Share this update"
- Platforms: Facebook, Instagram (copy link), Twitter (optional)

**3. Social Proof Callouts**
- Home page: "Join 1,300+ followers on Facebook and Instagram!"
- Testimonial-style quotes pulled from Facebook comments

#### Social Media → Website (Embed Content)

**4. Facebook Page Plugin (NEW)**
- Location: Home page (below hero, before footer)
- Display: 3-5 recent posts with photos
- Settings: Show timeline, hide cover, small header
- Width: Responsive (adapt to container)
- Fallback: "Follow us on Facebook" if plugin fails

**5. Instagram Feed Widget (NEW)**
- Location: Home page footer section or dedicated Gallery page
- Display: 6-12 recent photos in grid
- Click behavior: Open Instagram post in new tab
- Tool: SnapWidget, LightWidget, or custom Instagram Basic Display API

**6. Social Media Feed/Blog Page (NEW)**
- Dedicated "News & Updates" page
- Tabs: Website Blog Posts | Facebook Feed | Instagram Gallery
- Aggregate all social content in one place

#### Cross-Promotion (Automated or Manual)

**7. Auto-Post Blog to Facebook**
- When new blog post published on website → auto-post to Facebook
- Tools: Zapier, IFTTT, or Buffer
- Content: Post title, excerpt, link, featured image

**8. Share Website Content on Social**
- Manual: After publishing candidate profiles, post on Facebook/Instagram with link
- Use Instagram Stories to drive traffic to specific pages
- Facebook Events for Ball with website link

**9. Email Newsletter → Social Teasers**
- Newsletter includes "This week on Instagram" highlights
- "Follow us for daily updates between newsletters"

#### User-Generated Content

**10. Hashtag Campaign (NEW)**
- Create campaign hashtag: #CinderellaBall2027 or #ArlingtonCinderella
- Encourage attendees, donors, candidates to use when posting
- Feature select user posts on website (with permission)

**11. Photo Gallery: Community Submissions**
- "Share Your Photos" page
- Curate Instagram posts tagged #CinderellaBall
- Display with credit to original poster

### 9.3 Content Calendar Coordination

**Campaign Season (Feb-Apr):**
- **Website:** Daily blog updates (fundraising milestones, candidate events)
- **Facebook:** Daily posts (candidate spotlights, countdown reminders, behind-the-scenes)
- **Instagram:** Daily posts + Stories (photos, reels, candidate takeovers)
- **Coordination:** Same content adapted for each platform, cross-linked

**Off-Season:**
- **Website:** Monthly blog posts (Auxiliary news, application announcements)
- **Facebook:** 2-3x/week (community events, throwback photos, planning updates)
- **Instagram:** 2-3x/week (aesthetic photos, candidate appearances, facility updates)

---

## 10. Success Metrics & KPIs

### 10.1 Website Performance Metrics

**Traffic:**
- **Unique Visitors/Month:** Baseline → +30% goal (especially during campaign season)
- **Page Views/Month:** Baseline → +40% goal
- **Bounce Rate:** Target <50% (indicates engaging content)
- **Average Session Duration:** Target >2 minutes

**Engagement:**
- **Pages per Session:** Target 3+ (users explore multiple pages)
- **Donation Page Visits:** Track unique visitors to /how-to-donate
- **Candidate Page Visits:** Track which candidates get most profile views
- **Social Share Clicks:** Track shares of candidate/impact pages

**Conversions:**
- **Donation Conversions:** % of donate page visitors who complete donation
  - Industry average for nonprofits: 1-3%
  - Target: 3-5% (optimized UX should improve this)
- **Email Signups:** Newsletter subscription rate
  - Target: 50+ new subscribers per month during campaign
- **Membership Purchases:** Track Ladies' Auxiliary membership dues conversions

**Technical:**
- **Page Load Speed:** Target <2.5s (Largest Contentful Paint)
- **Mobile vs Desktop Traffic:** Expect 50-60% mobile (optimize accordingly)
- **Browser/Device Breakdown:** Ensure compatibility with top browsers

### 10.2 Social Media Metrics

**Facebook:**
- **Page Likes:** Maintain or grow (target +100/year)
- **Post Reach:** Track impressions per post
- **Engagement Rate:** Maintain 40%+ (very strong benchmark)
- **Top Performing Content:** Identify what resonates (impact stories, candidate socials)

**Instagram:**
- **Followers:** Target +150/year growth
- **Engagement Rate:** Target 3-5% (likes+comments/followers)
- **Story Views:** Track daily story viewership
- **Profile Visits → Website Clicks:** Track link clicks in bio

### 10.3 Fundraising Metrics

**Campaign Performance:**
- **Total Raised:** Year-over-year comparison
- **Average Donation Amount:** Track to understand donor behavior
- **Number of Donors:** Growth in donor base
- **Repeat Donors:** % of donors who give multiple years

**Online Donations:**
- **% of Total via Website:** Track online vs check/cash
- **Donation Source Tracking:** Did donor come from social media, search, email?
- **Cart Abandonment:** If using online payment, track incomplete transactions

**Candidate Performance:**
- **Fundraising Leaders:** Top 5 candidates by total raised
- **Engagement:** Which candidates' pages get most visits/shares
- **Creativity:** Highlight unique fundraising methods (tracked via blog/social)

### 10.4 Qualitative Feedback

**User Surveys:**
- Post-donation survey: "How was your giving experience?" (1-5 star + comments)
- Annual attendee survey: "How did you hear about the Ball?"
- Candidate survey: "How helpful was the website in your campaign?"

**Testimonials:**
- Collect donor testimonials for website
- Feature candidate reflections post-Ball
- Auxiliary member feedback on site usability

**Stakeholder Input:**
- Boys & Girls Clubs: "Does the site accurately represent impact?"
- Ladies' Auxiliary: "Is the site helping with recruitment and donations?"
- Sponsors: "Are you satisfied with your recognition on the site?"

### 10.5 Tracking Implementation

**Google Analytics 4:**
- Set up GA4 property
- Track custom events:
  - Donate button clicks
  - Candidate profile views
  - Social share clicks
  - Newsletter signups
  - Form submissions

**Facebook Pixel:**
- Install on website for retargeting
- Track conversions from Facebook ads (if running)
- Measure social → website traffic

**UTM Parameters:**
- Tag all social media links with UTM codes
  - Example: `?utm_source=facebook&utm_medium=social&utm_campaign=2027-campaign`
- Track which platforms drive most traffic/conversions

**Heatmaps (Optional):**
- Hotjar or Microsoft Clarity
- Visualize where users click, how far they scroll
- Identify UX issues (confusing navigation, missed CTAs)

---

## APPENDIX: Quick Reference

### Candidate Data (2026)

**Miss Cinderella 2026:** Claire Diane Novoselsky  
**School:** Arlington High School, Junior  
**Escort:** Will Beck Lemonds

**All 18 Candidates:** (See Section 4.3 for complete list)

### Key Dates & Events

- **2026 Campaign:** February 7 - April 2, 2026 (6 PM)
- **2026 Ball:** April 4, 2026 at Arlington Convention Center at Lowes Hotel
- **2027 Ball:** April 10, 2027

### Contact Information

- **General Inquiry:** askus@cinderellacharityball.com
- **Donations:** cinderellacharityball@gmail.com
- **Mailing Address:** Ladies Auxiliary of Arlington, PO Box 152336, Arlington, TX 76015

### Social Media

- **Facebook:** facebook.com/cinderellacharityball (~1,298 likes)
- **Instagram:** @cinderellacharityball (~1,177 followers)

### Photography Credits

- **2026:** Heather Harvey Photography (heatherharveyphotography.com)
- **2025:** Terry Ip Photography (terryipphotos.com)

### Boys & Girls Clubs of Greater Tarrant County

- **Website:** BGCGTC.org
- **Youth Served:** 31,000+ annually (8,190 in Arlington 2023)
- **Arlington Branches:** Main, Southeast, Kromer, North, Dan Serna, Mobile Clubhouse

### Historical Milestones

- **1961:** First Cinderella Ball
- **1967:** Ladies' Auxiliary formed
- **2026:** $15,056,527.81 total raised (65 years)

---

## FINAL NOTES FOR DEVELOPMENT

This enhanced specification provides Claude Code (or any developer) with:

✅ **Complete Content Reference** - All existing website content preserved and organized  
✅ **Facebook Insights Integration** - Unique social media content identified and recommendations for integration  
✅ **Design Recommendations** - Modern layout, UX improvements, visual design, interactive features, mobile responsiveness, social media integration  
✅ **Content Enhancements** - New sections (Impact Stories, Press, Blog, FAQ, Sponsorship), tone improvements, CTAs, engagement features  
✅ **Technical Implementation** - Database schemas, form handling, image optimization, SEO best practices, performance considerations  
✅ **Clear Structure** - Organized for easy reference during development  
✅ **Actionable Details** - Specific code examples, dimensions, colors, best practices  

**Next Steps:**
1. **Developer Review:** Share with Claude Code or development team
2. **Prioritization:** Identify Phase 1 (must-have) vs Phase 2 (nice-to-have) features
3. **Asset Gathering:** Collect new images, logos, content from Ladies' Auxiliary
4. **Database Setup:** Create MySQL database with provided schemas
5. **Development:** Build raw PHP site following specifications
6. **Testing:** Cross-browser, mobile, performance, security testing
7. **Launch:** Deploy, monitor analytics, iterate based on user feedback

**Document Version:** 1.0  
**Last Updated:** May 3, 2026  
**Prepared For:** Cinderella Charity Ball Website Redesign (Raw PHP)
