diff --git a/.claude/QUICK_START.md b/.claude/QUICK_START.md new file mode 100644 index 0000000..ff4ebac --- /dev/null +++ b/.claude/QUICK_START.md @@ -0,0 +1,185 @@ +# Claude Code Quick Start Guide + +Get up and running with Claude Code in 5 minutes! + +## Step 1: Install VS Code Extension (2 minutes) + +### Option A: From VS Code +1. Open VS Code +2. Press `Cmd+Shift+X` (Mac) or `Ctrl+Shift+X` (Windows/Linux) +3. Search for "Claude Code" +4. Click "Install" +5. Sign in with your Anthropic account + +### Option B: From Command Line +```bash +code --install-extension anthropic.claude-code +``` + +## Step 2: Learn 3 Essential Shortcuts (1 minute) + +``` +Cmd+Option+K (Alt+Ctrl+K) - Reference a file +Cmd+Esc (Ctrl+Esc) - Toggle between editor and Claude +@filename.ext - Mention file in conversation +``` + +## Step 3: Try Your First Command (2 minutes) + +### Example 1: Review a File +``` +@verify.html Review this page for accessibility issues +``` + +### Example 2: Update Code +``` +@tools/certificate_automation/src/generate_certificates.py +Add error handling for missing template files +``` + +### Example 3: Use a Custom Skill +``` +Use the accessibility-audit skill on @verify.html +``` + +## That's It! 🎉 + +You're ready to use Claude Code effectively! + +--- + +## Next Steps (Optional) + +### Install MCP Servers (5 minutes) +```bash +# GitHub integration +claude mcp add github +``` + +### Explore Custom Skills +- `review-html` - Review HTML/Liquid templates +- `optimize-assets` - Optimize website assets +- `jekyll-build` - Build Jekyll site +- `test-verification` - Test certificate verification +- `accessibility-audit` - Accessibility audits + +### Read More +- [Complete VS Code Setup](vscode-setup-guide.md) +- [All Keyboard Shortcuts](keyboard-shortcuts.md) +- [Common Workflows](workflows-guide.md) +- [MCP Servers Guide](mcp-servers-guide.md) + +--- + +## Quick Reference Card + +``` +┌─────────────────────────────────────────────┐ +│ Claude Code Essentials │ +├─────────────────────────────────────────────┤ +│ │ +│ 📁 Reference File: │ +│ @filename.ext │ +│ Cmd+Opt+K (Alt+Ctrl+K) │ +│ │ +│ 🔄 Toggle Focus: │ +│ Cmd+Esc (Ctrl+Esc) │ +│ │ +│ 📤 Send Message: │ +│ Cmd+Enter (Ctrl+Enter) │ +│ │ +│ ✅ Accept Change: │ +│ Cmd+. (Ctrl+.) │ +│ │ +│ 🆕 New Tab: │ +│ Cmd+Shift+Esc (Ctrl+Shift+Esc) │ +│ │ +│ 💬 Commands: │ +│ /help - Show help │ +│ /skills - List skills │ +│ /mcp - MCP servers │ +│ │ +└─────────────────────────────────────────────┘ +``` + +--- + +## Common First Tasks + +### Frontend Development +``` +# Review HTML for accessibility +@verify.html Check accessibility compliance + +# Optimize assets +Find images over 100KB and suggest compression + +# Update navigation +@_includes/navigation.html Add "Verify Certificate" link +``` + +### Certificate Automation +``` +# Generate certificates +@tools/certificate_automation/src/generate_certificates.py +Explain how this works + +# Test verification +Test the certificate verification page with a sample ID + +# Add certificate type +@tools/certificate_automation/src/config.json +Add configuration for "speaker" certificates +``` + +### Content Updates +``` +# Add team member +@_data/team.yml Add new team member profile + +# Create blog post +Create a new blog post about our latest event + +# Update SEO +Review SEO meta tags on all pages +``` + +--- + +## Troubleshooting + +### Extension not loading? +``` +1. Reload VS Code: Cmd+Shift+P → "Reload Window" +2. Check extension is enabled +3. Sign out and sign back in +``` + +### Can't reference files? +``` +1. Ensure file is saved +2. File must be in workspace +3. Try absolute path: @/path/to/file.ext +``` + +### Skills not showing? +``` +1. Check .claude/skills/ directory exists +2. Skills must be .md files +3. Restart Claude Code +``` + +--- + +## Get Help + +- In conversation: `/help` +- Full docs: [README.md](README.md) +- VS Code guide: [vscode-setup-guide.md](vscode-setup-guide.md) +- Online: https://code.claude.com/docs + +--- + +**Pro Tip**: Use `@` to reference files - Claude will understand the context automatically! + +Happy coding! 🚀 \ No newline at end of file diff --git a/.claude/README.md b/.claude/README.md new file mode 100644 index 0000000..b8d3d9c --- /dev/null +++ b/.claude/README.md @@ -0,0 +1,306 @@ +# Claude Code Configuration for WCC Project + +Welcome to the Women Coding Community Claude Code setup! This directory contains all the configuration, skills, and guides for using Claude Code effectively with this project. + +## Quick Start + +### 1. Set Up Local Settings (First Time) +```bash +# Copy the example settings file +cp .claude/settings.example.json .claude/settings.local.json + +# Edit settings.local.json with your preferences (optional) +``` + +### 2. Install Claude Code Extension + +**Option A: VS Code** +``` +1. Open VS Code +2. Press Cmd+Shift+X (Mac) or Ctrl+Shift+X (Windows/Linux) +3. Search "Claude Code" +4. Click Install +``` + +**Option B: JetBrains IDEs (IntelliJ IDEA, WebStorm, PyCharm, etc.)** +``` +1. Open your JetBrains IDE +2. Go to Settings/Preferences → Plugins +3. Search for "Claude Code" +4. Click Install and restart IDE +5. Quick launch: Cmd+Esc (Mac) or Ctrl+Esc (Windows/Linux) +``` + +See [vscode-setup-guide.md](vscode-setup-guide.md) or [JetBrains docs](https://code.claude.com/docs/en/jetbrains.md) for detailed setup. + +### 3. Use Custom Skills +Your project has the following custom skills available: + +- **review-html** - Review HTML/Liquid templates for best practices +- **optimize-assets** - Analyze and optimize website assets +- **jekyll-build** - Build and validate Jekyll site +- **test-verification** - Test certificate verification system +- **accessibility-audit** - Comprehensive a11y audit + +**Usage**: Just mention the skill in conversation: +``` +"Use the accessibility-audit skill on verify.html" +``` + +### 4. Quick Reference + +**VS Code & JetBrains:** +``` +Cmd+Option+K (Alt+Ctrl+K) - Insert file reference +Cmd+Esc (Ctrl+Esc) - Toggle focus / Quick launch +@filename.ext - Reference file +/help - Show help +``` + +## Documentation + +### 📚 Guides + +| Guide | Description | +|-------|-------------| +| [vscode-setup-guide.md](vscode-setup-guide.md) | Complete VS Code extension setup | +| [mcp-servers-guide.md](mcp-servers-guide.md) | MCP server installation and usage | +| [keyboard-shortcuts.md](keyboard-shortcuts.md) | All keyboard shortcuts reference | +| [workflows-guide.md](workflows-guide.md) | Common workflows and examples | + +### 🎯 Custom Skills + +| Skill | Purpose | +|-------|---------| +| [review-html.md](skills/review-html.md) | HTML/Liquid template review | +| [optimize-assets.md](skills/optimize-assets.md) | Asset optimization | +| [jekyll-build.md](skills/jekyll-build.md) | Jekyll build management | +| [test-verification.md](skills/test-verification.md) | Certificate verification testing | +| [accessibility-audit.md](skills/accessibility-audit.md) | Accessibility audits | + +## Project Structure + +``` +.claude/ +├── README.md # This file +├── QUICK_START.md # 5-minute quick start guide +├── settings.example.json # Example settings (copy to settings.local.json) +├── settings.local.json # Your local settings (gitignored) +├── vscode-setup-guide.md # VS Code extension guide +├── mcp-servers-guide.md # MCP servers setup +├── keyboard-shortcuts.md # Shortcuts reference +├── workflows-guide.md # Common workflows +└── skills/ # Custom skills + ├── review-html.md + ├── optimize-assets.md + ├── jekyll-build.md + ├── test-verification.md + └── accessibility-audit.md +``` + +## Common Tasks + +### Frontend Development +``` +# Review a page for accessibility +@verify.html Run accessibility audit + +# Optimize images +Find all images over 100KB and suggest optimizations + +# Update navigation +@_includes/navigation.html Add a "Verify Certificate" link +``` + +### Certificate Automation +``` +# Generate certificates +@tools/certificate_automation/src/generate_certificates.py +Run this script and verify QR codes + +# Test verification +Test the certificate verification system end-to-end + +# Add new certificate type +@tools/certificate_automation/src/config.json +Add configuration for "speaker" certificates +``` + +### Content Management +``` +# Add team member +@_data/team.yml Add a new team member profile + +# Create blog post +Create a new blog post about "Women in Tech 2026" + +# Update SEO +Review and optimize SEO meta tags across all pages +``` + +## Keyboard Shortcuts (Essential) + +### VS Code Extension + +| Action | Mac | Windows/Linux | +|--------|-----|---------------| +| File reference | `Cmd+Option+K` | `Alt+Ctrl+K` | +| Toggle focus | `Cmd+Esc` | `Ctrl+Esc` | +| New tab | `Cmd+Shift+Esc` | `Ctrl+Shift+Esc` | +| Send message | `Cmd+Enter` | `Ctrl+Enter` | + +See [keyboard-shortcuts.md](keyboard-shortcuts.md) for complete list. + +## MCP Servers + +Extend Claude Code with external tools: + +### Recommended for This Project + +1. **GitHub** - PR management, issue tracking + ```bash + claude mcp add github + ``` + +2. **Sentry** (Optional) - Error monitoring + ```bash + claude mcp add --transport http sentry https://mcp.sentry.dev/mcp + ``` + +See [mcp-servers-guide.md](mcp-servers-guide.md) for setup instructions. + +## Tips & Best Practices + +### 1. Always Reference Files +``` +# ❌ Don't +"Review the verification page" + +# ✅ Do +@verify.html "Review this page for accessibility" +``` + +### 2. Use Skills for Common Tasks +``` +# ❌ Don't +"Check if this page is accessible" + +# ✅ Do +"Use the accessibility-audit skill on @verify.html" +``` + +### 3. Break Down Complex Tasks +``` +# ❌ Don't +"Build the entire new feature" + +# ✅ Do +1. "Create the HTML structure" +2. "Add the CSS styling" +3. "Implement the JavaScript" +4. "Add tests" +``` + +### 4. Test Incrementally +``` +# After each change +1. Review the diff +2. Test locally +3. Verify functionality +4. Move to next step +``` + +### 5. Use Specific Line References +``` +# For large files +@verify.html:50-100 "Review the verification function" +``` + +## Project-Specific Context + +### Website Stack +- **Framework**: Jekyll (GitHub Pages) +- **Frontend**: HTML, CSS, JavaScript +- **Templating**: Liquid +- **Build**: Bundler, Jekyll +- **Deploy**: GitHub Pages + +### Certificate Automation +- **Language**: Python 3 +- **Libraries**: python-pptx, qrcode, pillow, comtypes +- **Input**: Text files, PPTX templates +- **Output**: PPTX, PDF certificates with QR codes +- **Registry**: JSON file for verification + +### Key Files +``` +# Frontend +verify.html # Certificate verification page +_config.yml # Jekyll configuration +_includes/navigation.html # Site navigation +_layouts/default.html # Default layout + +# Certificate Automation +tools/certificate_automation/ +├── src/generate_certificates.py # Main script +├── src/config.json # Configuration +├── data/output/certificate_registry.json # Verification registry +└── tests/ # Test suite +``` + +## Getting Help + +### In Conversation +``` +/help # Show available commands +/skills # List custom skills +``` + +### Documentation +- [VS Code Setup](vscode-setup-guide.md) +- [MCP Servers](mcp-servers-guide.md) +- [Keyboard Shortcuts](keyboard-shortcuts.md) +- [Workflows](workflows-guide.md) + +### Resources +- Claude Code Docs: https://code.claude.com/docs +- Jekyll Docs: https://jekyllrb.com/docs +- GitHub Pages: https://pages.github.com + +## Troubleshooting + +### Extension Not Working +1. Reload VS Code: `Cmd+Shift+P` → "Reload Window" +2. Check extension is enabled +3. Sign out and back in + +### Skills Not Showing +1. Ensure `.claude/skills/` directory exists +2. Skills must be in Markdown format +3. Restart Claude Code + +### MCP Servers Not Connecting +1. Check installation: `claude mcp list` +2. Verify authentication: `/mcp` +3. Check environment variables + +## Contributing + +When adding new skills or workflows: +1. Create skill in `.claude/skills/` +2. Document in this README +3. Add usage examples +4. Test thoroughly + +## Updates + +This configuration is version controlled. To update: +```bash +git pull origin main +``` + +--- + +**Happy coding with Claude! 🚀** + +For questions or improvements, open an issue or PR in the repository. diff --git a/.claude/keyboard-shortcuts.md b/.claude/keyboard-shortcuts.md new file mode 100644 index 0000000..9d93853 --- /dev/null +++ b/.claude/keyboard-shortcuts.md @@ -0,0 +1,171 @@ +# Claude Code Keyboard Shortcuts - Quick Reference + +## Essential Shortcuts + +### VS Code Extension + +| Action | Mac | Windows/Linux | Description | +|--------|-----|---------------|-------------| +| **Insert file reference** | `Cmd+Option+K` | `Alt+Ctrl+K` | Add file with line numbers | +| **Quick file mention** | `Cmd+K` | `Ctrl+K` | Mention file in conversation | +| **Toggle focus** | `Cmd+Esc` | `Ctrl+Esc` | Switch between editor and Claude | +| **New conversation tab** | `Cmd+Shift+Esc` | `Ctrl+Shift+Esc` | Open new tab | +| **New conversation** | `Cmd+N` | `Ctrl+N` | Start fresh conversation | +| **Send message** | `Cmd+Enter` | `Ctrl+Enter` | Send your message | +| **Accept suggestion** | `Cmd+.` | `Ctrl+.` | Accept current code change | +| **Dismiss suggestion** | `Esc` | `Esc` | Reject current change | +| **Close tab** | `Cmd+W` | `Ctrl+W` | Close conversation tab | +| **Switch tabs** | `Cmd+Tab` | `Ctrl+Tab` | Navigate between tabs | + +### JetBrains (WebStorm, IntelliJ, etc.) + +| Action | Mac | Windows/Linux | Description | +|--------|-----|---------------|-------------| +| **Quick launch** | `Cmd+Esc` | `Ctrl+Esc` | Open Claude Code | +| **File reference** | `Cmd+Option+K` | `Alt+Ctrl+K` | Add file to context | + +## CLI Commands + +```bash +# Start Claude Code +claude + +# Start in specific directory +claude --dir /path/to/project + +# New conversation +claude new + +# List conversations +claude list + +# Resume conversation +claude resume + +# Clear history +claude clear + +# Show help +claude help +``` + +## Slash Commands in Conversation + +``` +/help - Show available commands +/clear - Clear conversation history +/new - Start new conversation +/save - Save conversation +/settings - Open settings +/mcp - Manage MCP servers +/skills - List available skills +``` + +## Custom Skills (WCC Project) + +``` +/review-html - Review HTML/Liquid templates +/optimize-assets - Analyze and optimize assets +/jekyll-build - Build and validate Jekyll site +/test-verification - Test certificate verification +/accessibility - Accessibility audit +``` + +## File Reference Syntax + +``` +# Reference entire file +@filename.ext + +# Reference specific lines +@filename.ext:10-20 + +# Reference multiple files +@file1.html @file2.js @file3.css + +# Reference directory +@directory/**/*.py +``` + +## Pro Tips + +### Quick File Operations +- `Cmd+P` / `Ctrl+P` - Quick open file, then use `@` to reference it +- `Cmd+Shift+F` / `Ctrl+Shift+F` - Search across all files +- `Cmd+Shift+E` / `Ctrl+Shift+E` - Focus on file explorer + +### Efficient Context Management +1. Use `@` for specific files rather than describing them +2. Reference line ranges for large files: `@file.py:100-150` +3. Close unused conversation tabs to maintain performance + +### Code Review Workflow +1. Open file: `Cmd+P` +2. Reference it: `@filename.ext` +3. Ask for review: "Review this file for [specific aspect]" +4. Review diff in inline viewer +5. Accept/reject changes individually + +### Batch Operations +``` +Update all Python files in tools/certificate_automation/src/ +to add type hints +``` + +## Cheat Sheet Print Version + +``` +┌─────────────────────────────────────────────────────┐ +│ Claude Code Quick Reference │ +├─────────────────────────────────────────────────────┤ +│ File Reference: Cmd+Opt+K (Alt+Ctrl+K) │ +│ Toggle Focus: Cmd+Esc (Ctrl+Esc) │ +│ New Tab: Cmd+Shift+Esc │ +│ Send Message: Cmd+Enter (Ctrl+Enter) │ +│ Accept Change: Cmd+. (Ctrl+.) │ +│ │ +│ In Conversation: │ +│ @file.ext - Reference file │ +│ @file.ext:10-20 - Reference lines │ +│ /help - Show help │ +│ /skills - List skills │ +│ │ +│ CLI: │ +│ claude - Start Claude Code │ +│ claude help - Show help │ +└─────────────────────────────────────────────────────┘ +``` + +## Customization + +### Add Your Own Shortcuts + +1. Open VS Code Command Palette: `Cmd+Shift+P` / `Ctrl+Shift+P` +2. Type "Preferences: Open Keyboard Shortcuts (JSON)" +3. Add custom keybindings: + +```json +{ + "key": "cmd+shift+c", + "command": "claude.openPanel", + "when": "editorTextFocus" +} +``` + +## Platform-Specific Notes + +### macOS +- Use `Cmd` key for most shortcuts +- `Option` = `Alt` on other platforms + +### Windows/Linux +- Use `Ctrl` key for most shortcuts +- Some shortcuts may conflict with system shortcuts + +### Web (if using Claude Code in browser) +- Some keyboard shortcuts may be handled by browser +- Use command palette as alternative: `Cmd/Ctrl+Shift+P` + +--- + +**Remember**: Most shortcuts mirror standard VS Code shortcuts with Claude-specific additions! \ No newline at end of file diff --git a/.claude/mcp-servers-guide.md b/.claude/mcp-servers-guide.md new file mode 100644 index 0000000..0600e81 --- /dev/null +++ b/.claude/mcp-servers-guide.md @@ -0,0 +1,117 @@ +# MCP Servers Setup Guide + +Model Context Protocol (MCP) servers extend Claude Code with external tool integrations. + +## Recommended MCP Servers for WCC Project + +### 1. GitHub MCP Server +**Purpose**: Manage PRs, issues, and repository operations + +**Installation**: +```bash +claude mcp add github +``` + +**Use cases**: +- Review pull requests +- Create issues for bugs/features +- Check repository status +- Manage branches +- Review code changes + +**Usage**: +``` +/mcp github list-prs +/mcp github create-issue "Bug in certificate verification" +``` + +### 2. Sentry MCP Server (Optional) +**Purpose**: Monitor errors and performance + +**Installation**: +```bash +claude mcp add --transport http sentry https://mcp.sentry.dev/mcp +``` + +**Use cases**: +- Monitor production errors +- Track certificate verification errors +- Performance monitoring + +### 3. PostgreSQL/Database MCP (If using database) +**Purpose**: Query and manage database + +**Installation**: +```bash +claude mcp add postgres +``` + +**Use cases**: +- Query certificate data +- Database migrations +- Data validation + +## How to Use MCP Servers + +1. **List available servers**: + ```bash + claude mcp list + ``` + +2. **Authenticate** (first time): + ``` + /mcp + ``` + Then follow authentication prompts + +3. **Use in conversations**: + ``` + /mcp github list-prs + /mcp github create-issue "title" "description" + ``` + +## Configuration File + +MCP servers are configured in: `~/.claude/settings.json` + +Example configuration: +```json +{ + "mcpServers": { + "github": { + "command": "npx", + "args": ["-y", "@modelcontextprotocol/server-github"], + "env": { + "GITHUB_TOKEN": "your-token-here" + } + } + } +} +``` + +## Security Note + +Store sensitive tokens in environment variables or use secure token management: +```bash +# In your shell profile (.bashrc, .zshrc): +export GITHUB_TOKEN="your_token_here" +``` + +## Troubleshooting + +**MCP server not working?** +1. Check installation: `claude mcp list` +2. Verify authentication: `/mcp` +3. Check logs: `claude mcp logs ` + +**Token issues?** +- Ensure tokens have proper scopes +- Verify environment variables are set +- Re-authenticate: `/mcp` + +## Next Steps + +1. Install GitHub MCP server (most useful for your project) +2. Authenticate with your GitHub account +3. Test with `/mcp github list-prs` +4. Add other servers as needed \ No newline at end of file diff --git a/.claude/settings.example.json b/.claude/settings.example.json new file mode 100644 index 0000000..9f6cfb7 --- /dev/null +++ b/.claude/settings.example.json @@ -0,0 +1,10 @@ +{ + "permissions": { + "allow": [ + "Bash(python -m py_compile:*)", + "Bash(python3 -m py_compile:*)", + "Bash(git checkout:*)", + "Bash(cat:*)" + ] + } +} diff --git a/.claude/skills/accessibility-audit.md b/.claude/skills/accessibility-audit.md new file mode 100644 index 0000000..1280ecc --- /dev/null +++ b/.claude/skills/accessibility-audit.md @@ -0,0 +1,53 @@ +# Accessibility Audit Skill + +Perform comprehensive accessibility (a11y) audits following WCAG 2.1 AA standards: +- Keyboard navigation +- Screen reader compatibility +- Color contrast +- ARIA attributes +- Form accessibility +- Focus management + +## Process + +1. Review HTML structure and semantics +2. Check keyboard navigation: + - Tab order logical + - All interactive elements accessible + - Focus indicators visible + - No keyboard traps +3. Validate ARIA usage: + - Proper roles, states, properties + - Label associations + - Live regions for dynamic content +4. Test color contrast (WCAG AA: 4.5:1 for normal text, 3:1 for large text) +5. Check form accessibility: + - Labels associated with inputs + - Error messages announced + - Required fields indicated +6. Verify image alt text +7. Check heading hierarchy (h1-h6) +8. Test with screen reader flow simulation + +## WCAG 2.1 AA Criteria + +- **Perceivable**: Text alternatives, captions, adaptable content +- **Operable**: Keyboard accessible, enough time, seizure-safe +- **Understandable**: Readable, predictable, input assistance +- **Robust**: Compatible with assistive technologies + +## Common Issues to Check + +- Missing alt text on images +- Poor color contrast +- Missing form labels +- Improper heading hierarchy +- Missing skip links +- Non-semantic HTML +- Missing ARIA labels on icon buttons +- Inactive focus indicators + +## Example Usage + +User: "Audit the verify page for accessibility" +Assistant: *Performs comprehensive a11y audit and provides improvement recommendations* \ No newline at end of file diff --git a/.claude/skills/jekyll-build.md b/.claude/skills/jekyll-build.md new file mode 100644 index 0000000..7f18c93 --- /dev/null +++ b/.claude/skills/jekyll-build.md @@ -0,0 +1,49 @@ +# Jekyll Build & Deploy Skill + +Manage Jekyll site building and deployment: +- Build the Jekyll site locally +- Check for build errors +- Validate configuration +- Preview changes +- Prepare for GitHub Pages deployment + +## Process + +1. Check Jekyll installation and dependencies +2. Review _config.yml for errors +3. Build the site with `bundle exec jekyll build` +4. Serve locally for preview if requested +5. Check for common issues: + - Missing front matter + - Broken links + - Invalid Liquid syntax + - Plugin compatibility with GitHub Pages +6. Validate deployment readiness + +## Commands + +```bash +# Build site +bundle exec jekyll build + +# Serve locally +bundle exec jekyll serve + +# Build for production +JEKYLL_ENV=production bundle exec jekyll build + +# Clean build +bundle exec jekyll clean +``` + +## GitHub Pages Considerations + +- Only GitHub Pages-approved plugins +- Proper baseurl configuration +- CNAME file for custom domain +- _config.yml compatibility + +## Example Usage + +User: "Build the Jekyll site and check for errors" +Assistant: *Uses this skill to build the site and report any issues* \ No newline at end of file diff --git a/.claude/skills/optimize-assets.md b/.claude/skills/optimize-assets.md new file mode 100644 index 0000000..cf976ec --- /dev/null +++ b/.claude/skills/optimize-assets.md @@ -0,0 +1,35 @@ +# Asset Optimization Skill + +Analyze and optimize website assets for performance: +- Image optimization (size, format, compression) +- CSS minification and organization +- JavaScript bundling and minification +- Font loading strategies +- Lazy loading implementation +- Caching strategies + +## Process + +1. Scan project for images, CSS, JS, and fonts +2. Analyze file sizes and formats +3. Check for optimization opportunities: + - Large uncompressed images + - Unminified CSS/JS + - Unused CSS/JS + - Missing lazy loading + - Inefficient font loading +4. Provide specific optimization recommendations +5. Generate optimized versions or suggest tools + +## Metrics to Check + +- Total page weight +- Number of HTTP requests +- Render-blocking resources +- Image formats (WebP, AVIF support) +- Font subsetting opportunities + +## Example Usage + +User: "Optimize the assets for the verify page" +Assistant: *Analyzes verify.html and related assets, provides optimization recommendations* diff --git a/.claude/skills/review-html.md b/.claude/skills/review-html.md new file mode 100644 index 0000000..2ef812e --- /dev/null +++ b/.claude/skills/review-html.md @@ -0,0 +1,24 @@ +# HTML/Liquid Template Review Skill + +Review HTML files and Jekyll Liquid templates for: +- Semantic HTML structure +- Accessibility (ARIA labels, alt text, keyboard navigation) +- SEO optimization (meta tags, headings hierarchy) +- Responsive design patterns +- Jekyll/Liquid syntax best practices +- Cross-browser compatibility + +## Process + +1. Read the HTML/template file(s) +2. Check accessibility compliance (WCAG 2.1 AA standards) +3. Verify semantic structure and proper heading hierarchy +4. Review meta tags and SEO elements +5. Check for responsive design patterns +6. Validate Liquid template syntax +7. Suggest improvements with code examples + +## Example Usage + +User: "Review the verify.html page" +Assistant: *Uses this skill to review the verification page for accessibility and best practices* \ No newline at end of file diff --git a/.claude/skills/test-verification.md b/.claude/skills/test-verification.md new file mode 100644 index 0000000..4c7a6b2 --- /dev/null +++ b/.claude/skills/test-verification.md @@ -0,0 +1,39 @@ +# Certificate Verification Testing Skill + +Test the certificate verification system end-to-end: +- QR code functionality +- Verification page interactions +- Registry lookup accuracy +- Error handling +- User experience flow + +## Process + +1. Check certificate registry JSON structure +2. Validate QR code generation +3. Test verification page JavaScript: + - URL parameter parsing + - Certificate lookup + - Valid certificate display + - Invalid certificate handling + - Error states +4. Check accessibility of verification UI +5. Test with sample certificate IDs +6. Verify mobile responsiveness +7. Check cross-browser compatibility + +## Test Cases + +- ✓ Valid certificate ID lookup +- ✓ Invalid certificate ID handling +- ✓ Empty input validation +- ✓ URL parameter auto-verification +- ✓ QR code scanning flow +- ✓ Registry file loading errors +- ✓ Network error handling +- ✓ Mobile device usability + +## Example Usage + +User: "Test the certificate verification system" +Assistant: *Uses this skill to comprehensively test the verification flow* \ No newline at end of file diff --git a/.claude/vscode-setup-guide.md b/.claude/vscode-setup-guide.md new file mode 100644 index 0000000..2854945 --- /dev/null +++ b/.claude/vscode-setup-guide.md @@ -0,0 +1,211 @@ +# VS Code Extension Setup Guide + +Complete guide to using Claude Code in Visual Studio Code for the WCC project. + +## Installation + +### Step 1: Install the Extension + +1. Open VS Code +2. Press `Cmd+Shift+X` (Mac) or `Ctrl+Shift+X` (Windows/Linux) +3. Search for "Claude Code" +4. Click "Install" + +**OR** install from terminal: +```bash +code --install-extension anthropic.claude-code +``` + +### Step 2: Sign In + +1. After installation, click the Claude icon in the activity bar +2. Sign in with your Anthropic account +3. Authorize VS Code access + +## Key Features for Frontend Development + +### 1. Inline Diff Viewer +- See proposed changes directly in your editor +- Accept/reject changes with one click +- Compare side-by-side + +### 2. File References with Line Numbers +**Keyboard shortcut**: `Cmd+Option+K` (Mac) or `Alt+Ctrl+K` (Windows/Linux) + +Example: +``` +Review verify.html:50-100 for accessibility issues +``` + +### 3. Multiple Conversation Tabs +- Work on different features simultaneously +- Keep context separated +- Switch between tabs easily + +### 4. Auto-Accept Mode +Enable in settings to automatically apply Claude's edits as they're generated. + +### 5. Drag-and-Drop Panels +Customize your layout: +- Move Claude panel to sidebar +- Create split views +- Dock as bottom panel + +## Essential Keyboard Shortcuts + +### File Operations +- `Cmd+Option+K` / `Alt+Ctrl+K` - Insert file reference with line numbers +- `Cmd+K` / `Ctrl+K` - Quick file mention + +### Navigation +- `Cmd+Esc` / `Ctrl+Esc` - Toggle focus between editor and Claude +- `Cmd+Shift+Esc` / `Ctrl+Shift+Esc` - New conversation tab + +### Conversation Management +- `Cmd+N` / `Ctrl+N` - New conversation +- `Cmd+W` / `Ctrl+W` - Close current tab +- `Cmd+Tab` / `Ctrl+Tab` - Switch tabs + +### Code Actions +- `Cmd+Enter` / `Ctrl+Enter` - Send message +- `Cmd+.` - Accept current suggestion +- `Esc` - Dismiss suggestion + +## Project-Specific Workflows + +### 1. Certificate Verification Development +``` +Open verify.html +@verify.html Review this page for accessibility issues +``` + +### 2. Python Certificate Automation +``` +@tools/certificate_automation/src/generate_certificates.py +Add error handling for missing template files +``` + +### 3. Jekyll Template Editing +``` +@_layouts/default.html +Update the navigation to include certificate verification link +``` + +### 4. Batch File Operations +``` +Update all files in assets/css/ to use CSS custom properties +``` + +## Settings Configuration + +Access Claude Code settings: +1. `Cmd+,` / `Ctrl+,` to open Settings +2. Search for "Claude Code" + +### Recommended Settings + +```json +{ + "claude.autoAccept": false, + "claude.inlineSuggestions": true, + "claude.contextLines": 3, + "claude.showDiff": true, + "claude.panelPosition": "sidebar" +} +``` + +## Integration with Your Workflow + +### Git Integration +Claude Code works seamlessly with VS Code's built-in Git: +1. Make changes with Claude +2. Review in Source Control panel +3. Commit with descriptive messages +4. Push to repository + +### Terminal Integration +Use VS Code's integrated terminal: +```bash +# Run certificate generation +cd tools/certificate_automation +python3 src/generate_certificates.py + +# Build Jekyll site +bundle exec jekyll serve +``` + +### Extension Compatibility + +Works well with: +- **GitLens** - Enhanced Git capabilities +- **Prettier** - Code formatting +- **ESLint** - JavaScript linting +- **Live Server** - Preview HTML changes +- **Path Intellisense** - File path autocompletion + +## Troubleshooting + +### Extension Not Loading +1. Reload VS Code window: `Cmd+Shift+P` → "Reload Window" +2. Check extension is enabled +3. Sign out and sign back in + +### Slow Performance +1. Close unused conversation tabs +2. Clear conversation history +3. Restart VS Code + +### Context Not Working +1. Ensure files are in workspace +2. Check file is saved +3. Try explicit file reference: `@filename.ext` + +## Tips for Maximum Productivity + +1. **Use File References**: Always reference specific files for focused help +2. **Break Down Tasks**: Create separate conversations for different features +3. **Review Before Accepting**: Always review suggested changes in diff view +4. **Save Frequently**: Claude works best with saved files +5. **Use Search**: `Cmd+P` to quickly open files, then reference them + +## Advanced Features + +### Custom Keybindings +Add to `keybindings.json`: +```json +{ + "key": "cmd+shift+c", + "command": "claude.openPanel" +} +``` + +### Workspace Settings +Create `.vscode/settings.json` in project: +```json +{ + "claude.contextFiles": [ + "tools/certificate_automation/**/*.py", + "verify.html", + "_config.yml" + ] +} +``` + +## Next Steps + +1. ✅ Install Claude Code extension +2. ✅ Learn keyboard shortcuts +3. ✅ Try file referencing +4. ✅ Explore inline diffs +5. ✅ Customize your layout +6. ✅ Set up project-specific settings + +## Resources + +- Official Docs: https://code.claude.com/docs/en/vs-code.md +- Keyboard Shortcuts: `Cmd+K Cmd+S` in VS Code +- Extension Marketplace: https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code + +--- + +**Pro Tip**: Use `@` to mention files and Claude will automatically include their content in context! \ No newline at end of file diff --git a/.claude/workflows-guide.md b/.claude/workflows-guide.md new file mode 100644 index 0000000..7a59a33 --- /dev/null +++ b/.claude/workflows-guide.md @@ -0,0 +1,408 @@ +# Claude Code Workflows for WCC Project + +Common workflows optimized for the Women Coding Community GitHub Pages site. + +## Frontend Development Workflows + +### 1. Create New Page + +**Objective**: Add a new page to the Jekyll site + +**Steps**: +``` +1. "Create a new page called team-profiles.html" +2. Review the generated HTML +3. "Add this page to the navigation in _includes/header.html" +4. "Update _config.yml with the new page" +5. Test locally: bundle exec jekyll serve +``` + +**Example Prompt**: +``` +Create a new Jekyll page for team profiles at /team-profiles.html. +Include: +- Front matter with layout: default +- Responsive grid layout for profile cards +- Accessibility features (ARIA labels, alt text) +- Match the style of existing pages + +Reference @_layouts/default.html for layout structure +``` + +### 2. Update Certificate Verification Page + +**Objective**: Enhance the verify.html page + +**Steps**: +``` +1. @verify.html Review this page for accessibility +2. Implement suggested improvements +3. "Test the verification flow with a sample certificate ID" +4. "Add loading states and better error messages" +5. Preview changes in browser +``` + +**Example Prompt**: +``` +@verify.html +Improve the user experience: +1. Add a loading spinner during verification +2. Show clearer success/error states +3. Make it mobile-responsive +4. Ensure WCAG 2.1 AA compliance +``` + +### 3. Optimize Website Performance + +**Objective**: Improve page load times + +**Steps**: +``` +1. "Analyze assets/css/ and assets/js/ for optimization" +2. "Identify large images in assets/images/" +3. "Suggest lazy loading for images" +4. "Recommend CSS minification strategy" +5. Implement optimizations +6. Test with Lighthouse +``` + +**Example Prompt**: +``` +Optimize website performance: +1. Find all images over 100KB +2. Suggest WebP conversion +3. Identify unused CSS +4. Recommend bundling strategy +``` + +### 4. Add New Feature Section + +**Objective**: Add a new section to the homepage + +**Steps**: +``` +1. @index.html Review current structure +2. "Add a 'Success Stories' section after the hero" +3. "Make it responsive with flexbox/grid" +4. "Include proper semantic HTML" +5. "Style it consistently with existing sections" +``` + +## Certificate Automation Workflows + +### 5. Generate Certificates + +**Objective**: Generate certificates for a new cohort + +**Steps**: +``` +1. "Update tools/certificate_automation/data/input/names/mentees.txt" +2. "Run the certificate generation script" +3. "Verify QR codes are embedded" +4. "Check the certificate registry" +5. "Preview generated certificates" +``` + +**Example Prompt**: +``` +Help me generate certificates: +1. Read names from mentees.txt +2. Run generate_certificates.py +3. Verify all QR codes link to correct URLs +4. Check certificate_registry.json for accuracy +``` + +### 6. Add New Certificate Type + +**Objective**: Create certificates for a new program + +**Steps**: +``` +1. @tools/certificate_automation/src/config.json +2. "Add a new certificate type configuration for 'speaker'" +3. "Create speaker.txt in data/input/names/" +4. "Update the documentation" +5. Test generation +``` + +**Example Prompt**: +``` +@tools/certificate_automation/src/config.json +Add a new certificate type for speakers: +- Template: speaker.pptx +- Names file: speakers.txt +- Output directories +- Same style as existing types +``` + +### 7. Test Certificate Verification + +**Objective**: Ensure verification system works + +**Steps**: +``` +1. "Generate a test certificate" +2. "Extract the certificate ID" +3. "Test verification at /verify" +4. "Verify QR code scanning works" +5. "Test error handling with invalid ID" +``` + +**Example Prompt**: +``` +Test the complete verification workflow: +1. Generate a certificate for "Test User" +2. Find the certificate ID in the registry +3. Test URL: /verify?cert=CERTIFICATE_ID +4. Verify correct information displays +5. Test with invalid ID "INVALID123" +``` + +## Content Management Workflows + +### 8. Add New Team Member + +**Objective**: Add a team member profile + +**Steps**: +``` +1. @_data/team.yml +2. "Add new team member entry" +3. "Add profile image to assets/images/team/" +4. "Ensure image is optimized (< 50KB)" +5. Preview on the team page +``` + +**Example Prompt**: +``` +@_data/team.yml +Add a new team member: +Name: Jane Smith +Role: Community Lead +Bio: [description] +Image: /assets/images/team/jane-smith.jpg +LinkedIn: [url] +GitHub: [url] +``` + +### 9. Create Blog Post + +**Objective**: Publish a new blog post + +**Steps**: +``` +1. "Create a new post in _posts/" +2. "Use YYYY-MM-DD-title.md naming" +3. "Add proper front matter" +4. "Include featured image" +5. "Add categories and tags" +6. Preview with Jekyll serve +``` + +**Example Prompt**: +``` +Create a blog post: +Title: "Women in Tech: Success Stories 2026" +Date: 2026-01-04 +Author: WCC Team +Categories: community, success-stories +Include: +- Front matter with layout: post +- Featured image +- SEO meta tags +- Share buttons +``` + +### 10. Update Navigation + +**Objective**: Add/update menu items + +**Steps**: +``` +1. @_includes/navigation.html +2. "Add 'Certificate Verification' link" +3. "Ensure mobile menu works" +4. "Test accessibility (keyboard navigation)" +5. "Update active state styling" +``` + +**Example Prompt**: +``` +@_includes/navigation.html +Add a new menu item: +- Label: "Verify Certificate" +- URL: /verify +- Icon: certificate icon +- Position: after "Programs" +- Accessible (ARIA labels) +``` + +## Testing & Quality Workflows + +### 11. Accessibility Audit + +**Objective**: Ensure WCAG 2.1 AA compliance + +**Steps**: +``` +1. @verify.html Run accessibility audit +2. "Check color contrast" +3. "Verify keyboard navigation" +4. "Test with screen reader simulation" +5. "Fix identified issues" +6. Re-audit +``` + +**Example Prompt**: +``` +@verify.html +Perform comprehensive accessibility audit: +- Color contrast (WCAG AA) +- Keyboard navigation +- ARIA labels +- Form accessibility +- Heading hierarchy +- Screen reader compatibility +``` + +### 12. Cross-Browser Testing + +**Objective**: Ensure compatibility + +**Steps**: +``` +1. "List potential browser compatibility issues" +2. "Check CSS for vendor prefixes" +3. "Review JavaScript for ES6+ features" +4. "Test flexbox/grid fallbacks" +5. "Verify on mobile browsers" +``` + +**Example Prompt**: +``` +Review for cross-browser compatibility: +- Chrome, Firefox, Safari, Edge +- Mobile Safari, Chrome Mobile +- Check CSS Grid fallbacks +- Verify ES6 transpilation +``` + +### 13. SEO Optimization + +**Objective**: Improve search engine ranking + +**Steps**: +``` +1. @_config.yml Review SEO settings +2. "Check meta tags on all pages" +3. "Verify Open Graph tags" +4. "Optimize heading hierarchy" +5. "Add structured data" +6. "Review sitemap.xml" +``` + +**Example Prompt**: +``` +Optimize SEO: +1. Review meta descriptions +2. Check title tags (< 60 chars) +3. Add Open Graph images +4. Verify canonical URLs +5. Check structured data markup +``` + +## Deployment Workflows + +### 14. Pre-Deployment Checklist + +**Objective**: Ensure ready for production + +**Steps**: +``` +1. "Run all tests" +2. "Build Jekyll site" +3. "Check for broken links" +4. "Verify certificate registry is updated" +5. "Review git diff" +6. "Create PR with description" +``` + +**Example Prompt**: +``` +Pre-deployment checklist: +1. Run: bundle exec jekyll build +2. Check build errors +3. Verify certificate registry +4. Test verification page +5. Check responsive design +6. Review all changes in git +``` + +### 15. Create Pull Request + +**Objective**: Submit changes for review + +**Steps**: +``` +1. "Review all modified files" +2. "Write PR description" +3. "Link related issues" +4. "Add screenshots if UI changes" +5. Submit PR +``` + +**Example Prompt**: +``` +Create a PR for certificate verification improvements: +1. Summarize changes made +2. List files modified +3. Include screenshots +4. Reference issue #123 +5. Add testing steps +``` + +## Quick Commands + +### Daily Tasks +```bash +# Start development +bundle exec jekyll serve + +# Generate certificates +cd tools/certificate_automation +python3 src/generate_certificates.py + +# Run tests +python3 run_tests.py + +# Check git status +git status +``` + +### With Claude Code +``` +# Review changes +"Show me what changed in the last commit" + +# Get help +"How do I add a new certificate type?" + +# Debug +"Why is the verification page not loading the registry?" + +# Optimize +"How can I improve the performance of this page?" +``` + +## Pro Tips + +1. **Start with File References**: Always use `@filename` for context +2. **Break Down Tasks**: One workflow step per conversation +3. **Test Incrementally**: Test after each major change +4. **Use Skills**: Leverage custom skills for common tasks +5. **Save Templates**: Keep successful prompts for reuse +6. **Review Before Deploy**: Always review changes before pushing + +--- + +**Remember**: Claude Code works best when you provide clear context and specific requirements! \ No newline at end of file diff --git a/.gitignore b/.gitignore index 029fbf2..3665bf6 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,6 @@ lib/ pyvenv.cfg tools/blog_automation/service_account_key.json tools/blog_automation/venv + +# Claude Code local settings (may contain personal preferences) +.claude/settings.local.json