{"id":31295715,"url":"https://github.com/aboyington/able-gala-2025","last_synced_at":"2026-05-03T22:32:23.876Z","repository":{"id":313598434,"uuid":"1051981563","full_name":"aboyington/able-gala-2025","owner":"aboyington","description":"🎉 Bilingual landing page for the Association of Black Law Enforcers (A.B.L.E.) 2025 Gala - 'Strength Through Struggle: A Journey of Perseverance and Endurance'","archived":false,"fork":false,"pushed_at":"2025-11-06T07:48:55.000Z","size":52723,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-06T08:32:28.882Z","etag":null,"topics":["able","bilingual","css","event-landing","gala","html","javascript","landing-page","law-enforcement","non-profit","responsive-design","tailwind-css"],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aboyington.png","metadata":{"files":{"readme":"Docs/README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-07T06:21:25.000Z","updated_at":"2025-11-06T07:48:59.000Z","dependencies_parsed_at":"2025-10-20T00:16:34.736Z","dependency_job_id":"64d7ac07-a288-4f9a-b633-cf6a4e5f24a9","html_url":"https://github.com/aboyington/able-gala-2025","commit_stats":null,"previous_names":["aboyington/able-gala-2025"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/aboyington/able-gala-2025","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aboyington%2Fable-gala-2025","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aboyington%2Fable-gala-2025/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aboyington%2Fable-gala-2025/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aboyington%2Fable-gala-2025/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aboyington","download_url":"https://codeload.github.com/aboyington/able-gala-2025/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aboyington%2Fable-gala-2025/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32587817,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"ssl_error","status_checked_at":"2026-05-03T22:09:10.534Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["able","bilingual","css","event-landing","gala","html","javascript","landing-page","law-enforcement","non-profit","responsive-design","tailwind-css"],"created_at":"2025-09-24T20:02:08.471Z","updated_at":"2026-05-03T22:32:23.864Z","avatar_url":"https://github.com/aboyington.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ABLE Gala 2025 Landing Page\n\n## Project Overview\n\nUpdated 2025-09-19\n- Newsletter submits via fetch without navigation; onsubmit guard prevents accidental redirects if JS fails\n- Scroll‑spy active nav highlighting implemented (hero, details, applications, 2024-recap, contact)\n- Deployment: Live at https://ableorg.ca/ (flyer slider + link) and https://ableorg.ca/gala2025/ (promo site). No separate production folder; deploy directly from this project’s files.\n- Live OG/Twitter URLs point to https://ableorg.ca/gala2025\n- Tickets links use the official Membee deep link\n- Navigation: Home, Event, Tickets, Applications, Newsletter, EN | FR\n- Hero redesigned: three-logo row (Toronto Police, ABLE, TPA) with subtle rings; centered date block\n\nThis is a professional landing page for The Association of Black Law Enforcers (A.B.L.E.) 2025 Annual Gala, featuring a bilingual (English/French) design with integrated ticket sales functionality.\n\n### Primary site (root) updates — 2025-11-06\n- Navigation on the primary site uses [Home, About Us, Membership, Events, Contact].\n- “Events” is a dropdown with:\n  - Calendar → /events/index.html\n  - Career Fair → https://ableorg.local/events/index.html#id=113\u0026cid=1852\u0026wid=801\n  - Gala → /gala2025/index.html\n- New page: /events/index.html embeds the Membee calendar (see Docs/Membee Embedded.md).\n- Shared JS: /assets/site.js powers the primary site’s mobile menu (do not include gala2025/assets/app.js on primary pages).\n- Homepage: hero slider shows thank‑you posters and the CTA is “Explore Events” linking to /events/index.html.\n- Legacy URL bridge: /index.php/event-calendar redirects to /events/index.html and preserves the hash via JS; keeps previously shared short links working.\n\n**Event Details:**\n- **Event**: A.B.L.E 33rd Annual Scholarship and Awards Gala  \n- **Theme**: \"Strength Through Struggle: A Journey of Perseverance and Endurance\"\n- **Date**: Saturday, November 1, 2025 (6:00pm – 1:00am)\n- **Location**: Automotive Building – Exhibition Place, 105 Princes' Blvd, Toronto\n- **Tickets**: $150; **Table of Ten**: $1,500; **Cocktails**: 6:00pm\n- **Hashtags**: #ABLEGala2025 #Unity #Strength #Excellence\n\n## 🌟 Features\n\n### Core Functionality\n- ✅ **Responsive Design** - Mobile-first approach with Tailwind CSS\n- ✅ **Bilingual Support** - Functional EN/FR language toggle\n- ✅ **Ticket Sales Integration** - Ready for Eventbrite or custom ticketing\n- ✅ **Professional Branding** - ABLE logo integration and gold/black theme\n- ✅ **Accessibility** - WCAG compliant with proper focus states and alt text\n\n### Page Sections\n1. **Header** - Logo, nav (Home, Event, Tickets, Applications, Newsletter), language toggle (desktop) + mobile hamburger menu\n2. **Hero** - Event branding with three logos row (Toronto Police, ABLE, TPA), centered “Nov 1, 2025 / Save the Date” in a subtle gold card, primary CTAs\n3. **Event Details** - Bilingual event information incl. pricing/time/venue\n4. **Applications** - Awards and Scholarship application CTAs and links\n5. **2024 Recap** - Video player with bilingual copy and stats\n6. **Newsletter** - Email signup and contact links\n7. **Footer** - Organization info and legal details\n\n### Tickets\n- All public CTAs point to Membee deep link: tickets.html#id=112\u0026display=list\u0026cid=1852\u0026wid=801\n- Pricing/tiers are managed within Membee; remove this section if not needed in the static site\n\n## 🛠 Technical Stack\n\n- **Framework**: Vanilla HTML/CSS/JavaScript (no build process)\n- **Styling**: Tailwind CSS (via CDN)\n- **Fonts**: Google Fonts (Inter + Playfair Display)\n- **Hosting**: MAMP local server (port 80)\n- **Assets**: /assets for images, video, JS (app.js, site.js) and CSS (app.css)\n\n### Custom Tailwind Configuration\n```javascript\ntailwind.config = {\n  theme: {\n    extend: {\n      colors: {\n        'ablegold': '#D4AF37',\n        'abledark': '#0B0F19'\n      },\n      fontFamily: {\n        'sans': ['Inter', 'ui-sans-serif', 'system-ui'],\n        'display': ['Playfair Display', 'ui-serif', 'Georgia']\n      }\n    }\n  }\n}\n```\n\n## 📁 Project Structure\n\n```\n/Users/anthony/Sites/ableorg.ca/\n├── index.html                 # Main landing page\n├── index.php                  # Legacy redirect shim (/index.php/event-calendar → /events/index.html)\n├── awards.html               # Awards application page\n├── scholarship.html          # Scholarship application page\n├── tickets.html              # Tickets page (Membee embed)\n├── newsletter.php            # Newsletter backend\n├── assets/                   # All media and app code\n│   ├── able_logo.png\n│   ├── hero_bg.jpeg\n│   ├── Toronto-Police.png\n│   ├── Toronto-Police-Association.png\n│   ├── re-cap_32nd_awards_gala.mp4\n│   ├── event_flyer_en.jpeg\n│   ├── event_flyer_fr.jpeg\n│   ├── app.js                # Gala app JS (language toggle, video, newsletter, scroll‑spy)\n│   ├── site.js               # Primary site mobile menu behavior (shared)\n│   └── app.css               # Optional overrides\n├── events/                   # Primary site Events page (Membee calendar)\n│   └── index.html\n├── Docs/                     # Project docs\n└── _backup/                  # Local snapshots (ignored by Git)\n```\n\n## 🎨 Design System\n\n### Colors\n- **Primary Gold**: `#D4AF37` (ablegold)\n- **Dark Background**: `#0B0F19` (abledark)\n- **Neutral Grays**: Tailwind gray palette\n- **Accent Colors**: Amber variations for hover states\n\n### Typography\n- **Headings**: Playfair Display (serif, elegant)\n- **Body Text**: Inter (sans-serif, readable)\n- **UI Elements**: Inter with appropriate weights\n\n### Spacing \u0026 Layout\n- **Container**: max-w-7xl with responsive padding\n- **Sections**: Consistent py-16 sm:py-20 spacing\n- **Grid**: CSS Grid and Flexbox for layouts\n\n## 🌐 Header \u0026 Navigation\n\n### Mobile Menu Behavior\n- On small screens, the horizontal nav is replaced with a hamburger button.\n- Tapping the button reveals a slide-down panel with nav links and EN/FR language toggle.\n- The panel animates (opacity/translate) and auto-closes when a link is tapped or on Escape.\n- On desktop (sm and up), the full horizontal nav and EN/FR toggle are visible in the header.\n\n## 🌐 Language Toggle\n\nThe site includes a functional bilingual toggle:\n\n```javascript\n// Language switching functionality\nfunction setLanguage(lang) {\n  // Updates button states and content visibility\n  // Supports 'en' and 'fr' language codes\n}\n```\n\n### Implementation Notes\n- Default language: English\n- French content marked with `lang-fr-content` class\n- English content marked with `lang-en-content` class\n- Both languages shown by default, hidden based on selection\n\n### Ticket Integration\n\n- Membee deep link integrated throughout: `tickets.html#id=112\u0026display=list\u0026cid=1852\u0026wid=801`\n- To change the destination, update the hrefs in index.html and any secondary pages.\n\n## 🚀 Local Development\n\n### Prerequisites\n- MAMP or similar local server\n- Modern web browser\n\n### Setup\n1. Ensure MAMP is configured to serve from `/Users/anthony/Sites`\n2. Start MAMP on port 80\n3. Visit `http://localhost/ableorg.ca`\n\n### File Serving\nThe project uses:\n- Tailwind CSS from CDN (no build process)\n- Google Fonts from CDN\n- Local assets from /assets (logo, flyers, video, JS/CSS)\n\n## ✅ Deployment\n\n- Live URLs:\n  - Main site: https://ableorg.ca/ (home page shows bilingual flyer slider linking to gala site)\n  - Gala site: https://ableorg.ca/gala2025/\n- Deployment model: Upload files from this repository’s root (no separate production folder). Keep `_backup/` local-only and excluded from Git.\n\n### Pre-Launch Checklist\n- [ ] Verify Open Graph/Twitter image URLs point to `https://ableorg.ca/gala2025/assets/og-image.svg`\n- [ ] Add analytics (optional)\n- [ ] Test cross-browser compatibility\n- [ ] Optimize images for web\n\n### Optional Enhancements\n- [ ] Email newsletter signup integration\n- [ ] SEO meta tags optimization\n- [ ] Open Graph image creation\n- [ ] Sponsorship section\n- [ ] Event program/schedule section\n- [ ] Speaker/honoree profiles\n\n## 📞 Contact Integration\n\n### Newsletter Signup\n- Location: Contact/Newsletter section on index\n- Frontend: JavaScript fetch POST prevents navigation; form has `onsubmit=\"return false\"` as a guard\n- Backend: `newsletter.php` (PHPMailer if available, else PHP `mail()`)\n- CSV backup: `storage/newsletter.csv` (auto-created)\n- Optional reCAPTCHA v3 support (server env `RECAPTCHA_SECRET`, client `window.RECAPTCHA_SITE_KEY`)\n\n### Contacts\n- General: `info@ableorg.ca`\n- Tickets: `tickets@ableorg.ca`\n\n## 🎯 Performance \u0026 SEO\n\n### Optimizations Applied\n- Mobile-first responsive design\n- Semantic HTML structure\n- Proper heading hierarchy\n- Alt text for images\n- Meta descriptions and titles\n- Clean URL structure\n\n### Load Performance\n- CDN-based assets (Tailwind, Google Fonts)\n- Optimized images\n- Minimal JavaScript\n- Single HTML file architecture\n\n## 📝 Content Management\n\n### Bilingual Content Areas\n- Hero section (Save the Date, theme, details)\n- Event information section\n- Contact section headers\n- Ticket section headers\n\n### Easy Updates\nMost content can be updated by editing the HTML directly:\n- Event date and location\n- Ticket pricing and details\n- Contact information\n- Organization details\n\n## 🔧 Maintenance\n\n### Regular Updates\n- Review and update event details\n- Monitor ticket sales integration\n- Update contact information as needed\n- Refresh social media links and hashtags\n\n### Browser Support\n- Modern browsers (Chrome, Firefox, Safari, Edge)\n- Mobile devices (iOS Safari, Android Chrome)\n- Progressive enhancement approach\n\n---\n\n**Project Created**: September 7, 2025\n**Status**: Ready for client review and production deployment\n**Next Steps**: Client feedback, real content integration, production hosting setup\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faboyington%2Fable-gala-2025","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faboyington%2Fable-gala-2025","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faboyington%2Fable-gala-2025/lists"}