From 42b9d1b16286fe960a4f2de0e2119e053c4f820b Mon Sep 17 00:00:00 2001 From: TheMaddax Date: Mon, 24 Mar 2025 22:38:46 -0500 Subject: [PATCH] Initial commit for boilerplate website --- .gitignore | 38 ++ TECH_STACK | 76 +++ TO_DO.txt | 274 +++++++++++ best_practices.txt | 421 +++++++++++++++++ cline_docs/activeContext.md | 27 ++ cline_docs/productContext.md | 32 ++ cline_docs/progress.md | 33 ++ cline_docs/systemPatterns.md | 42 ++ cline_docs/techContext.md | 58 +++ how_to_use_perplexity_mcp.md | 151 ++++++ planned_implementation.txt | 872 +++++++++++++++++++++++++++++++++++ 11 files changed, 2024 insertions(+) create mode 100644 .gitignore create mode 100644 TECH_STACK create mode 100644 TO_DO.txt create mode 100644 best_practices.txt create mode 100644 cline_docs/activeContext.md create mode 100644 cline_docs/productContext.md create mode 100644 cline_docs/progress.md create mode 100644 cline_docs/systemPatterns.md create mode 100644 cline_docs/techContext.md create mode 100644 how_to_use_perplexity_mcp.md create mode 100644 planned_implementation.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2a18c4a --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +# Dependencies +node_modules +.pnp +.pnp.js + +# Next.js build output +.next/ +out/ + +# Production build +build +dist + +# Environment variables +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# Debug logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# IDE files +.idea/ +.vscode/ +*.swp +*.swo + +# OS files +.DS_Store +Thumbs.db + +# Docker volumes +mongodb-data +redis-data diff --git a/TECH_STACK b/TECH_STACK new file mode 100644 index 0000000..c2bd06d --- /dev/null +++ b/TECH_STACK @@ -0,0 +1,76 @@ +## Tech Stack + +### Frontend +- React 19 +- TypeScript 5.7 +- React Router DOM 7 +- Tailwind CSS 3.4 +- Framer Motion 11 +- React Icons 5.4 +- React Simple Maps 4.0 (beta) +- React Intersection Observer 9.13 +- Next.js 14.1 + +### Backend +- Node.js with Express 4.21 +- TypeScript +- Nodemailer 6.9 for email handling +- CORS for cross-origin resource sharing +- dotenv 16.4 for environment variable management +- Upstash Redis 1.28 for caching/rate limiting + +### Development & Build Tools +- Docker & Docker Compose +- PostCSS 8.4 +- Autoprefixer 10.4 +- pnpm 9.14 (package manager) +- Vite 6.0 +- ESLint 9 +- Concurrently for running multiple processes +- tsx/ts-node for TypeScript execution +- Hot module replacement (HMR) + +### Production +- Nginx (Production server for frontend) +- Node.js server for backend API + +### Architecture +- Frontend running on port 3000 (development) +- Backend API running on port 4000 +- Containerized development and production environments +- REST API for contact form handling +- Gmail SMTP for email delivery +- Rate limiting implementation +- Context-based state management +- Redis-backed caching layer + +### Key Features +- Responsive design +- Animated UI components with Framer Motion +- Interactive USA region map +- Contact form with email notifications +- Timeline visualization +- Service showcase +- Biography section +- Testimonials section +- Video playback with WebVTT subtitles +- Transcription support +- Toast notification system +- Snow peaks animation effect +- Custom video player component + +### Development Environment +- Multi-container setup with Docker Compose +- Hot-reloading enabled +- Separate development and production builds +- Environment variable management for sensitive data +- TypeScript configuration for both client and server +- Concurrent development server (frontend + backend) + +### Production Environment +- Nginx serving static frontend files +- Node.js backend API +- Containerized deployment +- Secure email handling with Google App credentials +- Multi-stage Docker builds +- Production-optimized builds with tree-shaking diff --git a/TO_DO.txt b/TO_DO.txt new file mode 100644 index 0000000..afd2413 --- /dev/null +++ b/TO_DO.txt @@ -0,0 +1,274 @@ +# Olathe Club of the Deaf (OCD) Website Development Plan + +## Architecture Overview + +### Frontend (Next.js + React) +- Server-side rendered pages for better SEO and performance +- TypeScript for type safety +- Tailwind CSS for responsive design +- Framer Motion for animations and transitions +- React Context for state management +- Protected admin dashboard + +### Backend (Node.js + Express) +- REST API endpoints for data operations +- Simple authentication for admin access +- Email handling with Nodemailer +- Rate limiting with Upstash Redis +- Environment variable management with dotenv +- Comprehensive logging system for external analytics + +### Database +- MongoDB for document storage (board members, events, minutes, bylaws, members) +- Redis for caching and session management + +### Deployment +- Docker containerization with Portainer for deployment +- Nginx as reverse proxy +- GitHub repository integration + +## Core Features & Components + +### 1. Public-Facing Pages +- [ ] Home Page + - [ ] Hero section with mission statement + - [ ] Featured upcoming events + - [ ] News/announcements section + - [ ] Sponsor showcase + - [ ] Quick links to important pages + +- [ ] About OCD Section + - [ ] Organization history and mission + - [ ] Meet the Board page with photos and bios + - [ ] Bylaws page with downloadable PDF + - [ ] Minutes archive with search/filter functionality + +- [ ] Calendar/Events + - [ ] Interactive calendar view + - [ ] List view of upcoming events + - [ ] Event detail pages + - [ ] Filter by event type (social, athletic, etc.) + +- [ ] Membership + - [ ] Membership benefits information + - [ ] Online application form (non-payment) + - [ ] Information about dues and payment methods + +- [ ] Contact + - [ ] Contact form with validation + - [ ] Map to OCD location + - [ ] Email notification system + - [ ] Social media links + +- [ ] Donation Integration + - [ ] Zeffy donation widget embedding + - [ ] Donation information page + +### 2. Admin Dashboard +- [ ] Authentication System + - [ ] Single admin login/logout functionality + - [ ] Password reset functionality + - [ ] Secure session management + +- [ ] WYSIWYG Content Editor + - [ ] Page content management + - [ ] Rich text editing capabilities + - [ ] Image upload and management + - [ ] Version history + +- [ ] Event Management + - [ ] Create/edit/delete events + - [ ] Recurring event setup + - [ ] Event categories management + - [ ] Calendar visualization + +- [ ] Member Management + - [ ] Member directory + - [ ] Email list generation for newsletters + - [ ] Basic member information storage + - [ ] Membership status tracking + - [ ] Membership expiration notifications + - [ ] Automated alerts for upcoming expirations + - [ ] Expired membership notifications to board + +- [ ] Document Repository + - [ ] Upload/manage meeting minutes + - [ ] Bylaws document management + - [ ] File categorization and search + +- [ ] ASL Video Management + - [ ] Video upload functionality + - [ ] VTT subtitle file association + - [ ] Transcription display options + - [ ] Custom video player implementation (based on shared codebase) + +### 3. Technical Implementation + +- [ ] Database Schema Design + - [ ] Admin user model (single user) + - [ ] Member model (with expiration dates) + - [ ] Event model + - [ ] Page content model + - [ ] Minutes/document model + - [ ] Video/transcription model + +- [ ] API Endpoints + - [ ] Authentication routes + - [ ] Content management routes + - [ ] Event CRUD operations + - [ ] Member management + - [ ] Contact form submission + - [ ] Document upload/retrieval + - [ ] Video and subtitle management + - [ ] Membership expiration handling + +- [ ] Frontend Components + - [ ] Responsive navigation + - [ ] Calendar component + - [ ] Contact form + - [ ] WYSIWYG editor + - [ ] File uploader + - [ ] Admin dashboard layout + - [ ] Authentication forms + - [ ] Custom video player with subtitle support + +- [ ] Integrations + - [ ] Zeffy donation widget + - [ ] Email service (system@olathedeafclub.com) + - [ ] Google Maps for location + - [ ] Social media sharing + +- [ ] Logging & Analytics + - [ ] Comprehensive request logging + - [ ] User action tracking + - [ ] Error logging + - [ ] Performance metrics + - [ ] Structured log format for external analysis + +## Development Phases + +### Phase 1: Setup & Infrastructure +- [ ] Initialize Next.js project with TypeScript +- [ ] Set up Express backend +- [ ] Configure Docker development environment +- [ ] Establish database connections +- [ ] Create basic project structure +- [ ] Set up admin authentication system +- [ ] Implement logging infrastructure + +### Phase 2: Core Public Pages +- [ ] Develop home page layout and components +- [ ] Build About section pages +- [ ] Implement calendar functionality +- [ ] Create membership information pages +- [ ] Develop contact form with validation +- [ ] Implement Zeffy donation integration +- [ ] Implement SEO optimization + +### Phase 3: Admin Functionality +- [ ] Build admin dashboard UI +- [ ] Implement WYSIWYG editor +- [ ] Create event management system +- [ ] Develop document repository +- [ ] Build member management features +- [ ] Implement membership expiration notification system +- [ ] Implement ASL video management system + +### Phase 4: Accessibility & Refinement +- [ ] Implement comprehensive accessibility features +- [ ] Set up email notifications +- [ ] Implement social sharing +- [ ] Optimize for performance +- [ ] Test with screen readers and assistive technologies + +### Phase 5: Testing & Deployment +- [ ] Conduct user testing +- [ ] Fix bugs and refine UI/UX +- [ ] Set up production Docker environment +- [ ] Configure Nginx and SSL +- [ ] Deploy to production server with Portainer +- [ ] Set up monitoring and analytics + +## SEO Optimization +- [ ] Implement Next.js metadata API for dynamic meta tags +- [ ] Create XML sitemap generation +- [ ] Implement structured data (JSON-LD) for events and organization +- [ ] Optimize image alt text and file names +- [ ] Implement canonical URLs +- [ ] Create SEO-friendly URL structure +- [ ] Implement Open Graph and Twitter card metadata +- [ ] Ensure proper heading hierarchy +- [ ] Implement server-side rendering for critical pages +- [ ] Create robots.txt file +- [ ] Implement breadcrumb navigation + +## Membership Management +- [ ] Member registration system (admin-managed) +- [ ] Membership expiration tracking +- [ ] Automated email notifications for: + - [ ] Upcoming membership expirations (30 days prior) + - [ ] Expired memberships (day of expiration) + - [ ] Notification to board about expired members +- [ ] Membership status indicators in admin dashboard +- [ ] Exportable member list for meeting attendance verification +- [ ] Email list generation for newsletter distribution +- [ ] Member search and filtering capabilities +- [ ] Membership statistics and reporting + +## Accessibility Considerations +- [ ] Ensure WCAG 2.1 AA compliance +- [ ] Implement proper semantic HTML +- [ ] Add appropriate ARIA attributes +- [ ] Test with screen readers +- [ ] Provide captions/transcripts for all video content +- [ ] Ensure keyboard navigation +- [ ] Maintain sufficient color contrast +- [ ] Specific focus on DeafBlind/Blind user accessibility +- [ ] Text resizing without breaking layout +- [ ] Screen magnifier compatibility + +## Video and Transcription Features +- [ ] Custom video player implementation based on existing codebase: + - [ ] Play/pause toggle with visual indicators + - [ ] Progress bar with clickable position seeking + - [ ] Forward/backward 5-second skip controls + - [ ] Fullscreen toggle functionality + - [ ] Playback rate selection (0.5x, 1x, 2x, 3x) + - [ ] Auto-hiding controls during playback + - [ ] Keyboard shortcuts (space for play/pause, arrow keys for seeking) + - [ ] WebVTT subtitle integration with toggle option + - [ ] Accessible control buttons with ARIA labels and icon titles + - [ ] Touch-friendly controls for mobile devices +- [ ] Enhancements to existing video player: + - [ ] Transcript view option alongside video + - [ ] Direct linking to specific video segments/timestamps + - [ ] Video thumbnail generation for previews + - [ ] Responsive container sizing for different screen sizes + - [ ] Volume control with mute option + - [ ] Picture-in-picture support + - [ ] Improved subtitle styling options + - [ ] Video quality selection if multiple sources available +- [ ] Video management in admin dashboard: + - [ ] Video upload with automatic processing + - [ ] VTT subtitle file upload and association + - [ ] Transcript generation/editing interface + - [ ] Video metadata management (title, description, categories) + - [ ] Video organization by categories/tags + +## Responsive Design +- [ ] Mobile-first approach +- [ ] Tablet optimization +- [ ] Desktop layouts +- [ ] Touch-friendly interface elements +- [ ] Flexible content containers +- [ ] Responsive typography +- [ ] Optimized images for different screen sizes + +## Performance Optimization +- [ ] Implement image optimization +- [ ] Configure caching strategies +- [ ] Minimize JavaScript bundles +- [ ] Optimize CSS delivery +- [ ] Implement lazy loading +- [ ] Set up CDN for static assets +- [ ] Optimize video delivery \ No newline at end of file diff --git a/best_practices.txt b/best_practices.txt new file mode 100644 index 0000000..9ae863b --- /dev/null +++ b/best_practices.txt @@ -0,0 +1,421 @@ +# Best Practices for OCD Website Development + +## Accessibility (WCAG 2.1 AA Compliance) + +### Video Accessibility (Critical for Deaf Community) +- Implement custom video player with WebVTT support for synchronized captions +- Include speaker identification in captions for multi-person videos +- Provide transcript view alongside videos for DeafBlind users +- Support variable playback speeds (0.5x, 1x, 1.5x, 2x) for ASL videos +- Implement keyboard shortcuts for video navigation (space: play/pause, arrow keys: skip) +- Create thumbnails for video preview with descriptive alt text +- Support direct linking to video timestamps for sharing specific segments + +### General Accessibility +- Use semantic HTML elements (`