juanatsap
0e33d7c886
docs: Phase 2 - Add Skeleton Loaders and Color Theme System sections
...
MAJOR FEATURES DOCUMENTED:
### Section 11: Skeleton Loaders (lines 1638-1764)
Component-level content placeholders for smooth loading transitions
KEY FEATURES:
- Pixel-perfect skeleton matching (header, photo, sections, experience)
- GPU-accelerated shimmer animation (1.8s ease-in-out infinite)
- Component-wrapper architecture (dual-state: actual + skeleton)
- HTMX event integration (beforeSwap → show, afterSettle → hide)
- Zero layout shift during transitions
- Accessibility: Respects prefers-reduced-motion
- Print-friendly: Skeletons hidden in @media print
IMPLEMENTATION:
- static/css/skeleton.css (341 lines)
- templates/partials/skeleton-loader.html
- HTMX event listeners in main.js
- tests/mjs/12-skeleton-language-transitions.test.mjs
BENEFITS:
- Professional UX like modern SPAs (LinkedIn, Facebook)
- Smooth 250ms fade transitions
- Reusable for any HTMX swap operation
- Independent component loading states
### Section 12: Color Theme System (lines 1767-1939)
Dynamic light/dark/auto theme switching with CSS custom properties
KEY FEATURES:
- Three theme modes: Auto (system), Light, Dark
- CSS custom properties for instant switching
- localStorage persistence across sessions
- System integration via prefers-color-scheme
- Dynamic button colors per theme mode:
* Auto: Purple (#9b59b6)
* Light: Orange/Yellow (#f39c12)
* Dark: Blue (#3498db)
- Dual-theme architecture (Color + Layout independent)
IMPLEMENTATION:
- static/css/color-theme.css (258 lines)
- static/hyperscript/color-theme._hs (59 lines)
- setColorTheme(), initColorTheme() functions
- Fixed floating button with theme cycling
- tests/mjs/13-color-theme-switcher.test.mjs
BENEFITS:
- User comfort (choose preference or follow system)
- Instant switching (CSS custom properties, no reflow)
- Accessible (WCAG AA contrast compliance)
- Zero JavaScript for theme application
- Separation of concerns (color vs. layout)
DOCUMENTATION QUALITY:
- Complete before/after code examples
- Architecture pattern breakdowns
- Comprehensive benefits lists
- Testing information included
- Pixel-perfect matching tables (skeletons)
- CSS custom properties reference (theme)
IMPACT: +306 lines comprehensive documentation
TIME: ~90 minutes (partial Phase 2 complete)
REMAINING: HTMX patterns enhancement, hover sync documentation
2025-11-18 17:07:13 +00:00
juanatsap
6893716231
docs: Phase 1 - Fix critical documentation inaccuracies
...
CRITICAL FIXES:
1. JavaScript Line Counts (239 → 679)
- Updated progress table to show current state: 679 lines
- Recalculated reduction: 28.8% (not 74.9%)
- Added explanation for increase since Phase 6:
* color-theme.js: 97 lines (theme system)
* main.js enhancements: 488 lines (zoom, skeletons)
* cv-functions.js: 94 lines (toggle coordination)
2. Hyperscript File Structure (1 file → 4 files)
- Fixed documentation showing single functions._hs
- Updated to show actual modular architecture:
* utils._hs: 133 lines (print, scroll)
* toggles._hs: 73 lines (length, icons, theme)
* hover-sync._hs: 57 lines (menu sync)
* color-theme._hs: 59 lines (theme cycling)
- Total: 322 lines organized hyperscript
3. Phase 8 Toggle Implementation (inline → external)
- Fixed examples showing 18+ lines inline hyperscript
- Updated to show actual external function calls:
_="on change call toggleCVLength(my.checked)"
- Documented modular architecture with DRY principles
IMPROVEMENTS:
- Added "Current State" row in progress metrics
- Clarified historical vs. current implementation
- Updated organization comparison table
- Enhanced benefits list with modularity advantages
- Updated architecture pattern description
- Corrected final stats section
IMPACT: Documentation now accurately reflects production codebase
TIME: ~65 minutes (Phase 1 complete)
GRADE: Moved from C+ to B+ accuracy
2025-11-18 17:00:47 +00:00
juanatsap
54e2684127
docs: add HTMX loading indicators as technique #10
...
Complete documentation of HTMX loading indicators implementation:
- Added comprehensive section matching style of other 9 techniques
- Documented external indicator pattern to avoid swap-target destruction
- Included root cause analysis of initial bug (indicators destroyed mid-animation)
- Detailed CSS implementation with GPU-accelerated animations
- Implementation locations: language selector, toggle controls, hamburger menu
- Benefits: zero JavaScript, automatic lifecycle, accessibility support
- Testing: automated tests in 4-htmx.test.mjs
Updated:
- Technique count: 8 → 10 major optimizations
- Final stats: now lists all 10 techniques
- Last updated date: 2025-11-18
2025-11-18 16:24:28 +00:00
juanatsap
52e85a5359
chore: remove redundant implementation documentation files
...
Deleted two obsolete documentation files that are no longer needed:
- COLOR-THEME-IMPLEMENTATION.md (204 lines) - Feature complete and documented in code
- prompts/003-implement-htmx-indicators.md (427 lines) - Implementation prompt no longer relevant
These files served their purpose during development but are now redundant with:
- Inline code documentation
- TEST-SUMMARY.md for test coverage
- README.md for user-facing features
- Git history for implementation
2025-11-18 15:53:37 +00:00
juanatsap
5d5b050029
feat: confirm no hyperscript def limit + update documentation
...
MAJOR FINDING: Latest hyperscript version has NO 3 def statement limit!
Test Results (tests/mjs/9-hyperscript-def-limit.test.mjs):
✅ 1 def statement - PASS
✅ 2 def statements - PASS
✅ 3 def statements - PASS
✅ 4 def statements - PASS (beyond historical limit)
✅ 5 def statements - PASS (well beyond limit)
Changes:
1. Created comprehensive def limit test
- tests/mjs/9-hyperscript-def-limit.test.mjs
- Tests 1, 2, 3, 4, 5 def statements
- Verifies both parsing and function execution
- Provides detailed analysis and recommendations
2. Updated PROJECT-MEMORY.md
- Section 2: Changed from "NEEDS RETESTING" to "REMOVED IN LATEST VERSION"
- Documented test findings and historical context
- Added migration plan for hyperscript file organization
- Updated test count to 10 systematic tests
3. Updated doc/HYPERSCRIPT-RULES.md
- Rule 2: Removed 3 def limit warning
- Documented historical context (Hyperscript 0.9.12 had limit)
- New best practice: Organize by category in separate files
- Added recommended file structure
Impact:
- Can now use unlimited def statements in hyperscript
- Enables cleaner architecture with category-based organization
- Allows migration from cv-functions.js back to hyperscript
- Better alignment with hypermedia/server-driven pattern
Next Steps:
- Create organized hyperscript file structure
- Migrate toggle functions from JavaScript to hyperscript
- Migrate hover sync functions to hyperscript
- Test each migration thoroughly
2025-11-17 15:02:30 +00:00
juanatsap
d97d3567a3
docs: move HYPERSCRIPT-RULES.md and MODERN-WEB-TECHNIQUES.md to doc/ folder
2025-11-17 14:23:13 +00:00
juanatsap
ac0cf15eb9
added zoom in buttons
2025-11-16 12:48:12 +00:00
juanatsap
211fd05462
feat: simplify architecture by removing cache layer and centralizing routes
...
- Removed over-engineered cache system for static CV data that only changes on deployment
- Extracted all route configuration to internal/routes/routes.go for better organization
- Implemented rate limiting and cache control middleware for PDF endpoint protection
2025-11-12 17:53:24 +00:00
juanatsap
927d257f2c
docs: add comprehensive zoom implementation technical documentation
...
- Document CSS zoom vs transform scale decision
- Explain inverse zoom technique for fixed elements
- Detail viewport expansion strategy
- Cover edge cases, constraints, and browser compatibility
- Include testing checklist and future considerations
2025-11-12 17:04:45 +00:00
juanatsap
f211d40803
docs: consolidate and sanitize documentation for public release
...
**Changes Summary:**
**Files Deleted (6 files):**
- doc/HTMX-PRODUCTION-RECOMMENDATIONS.md (implementation notes)
- doc/SEO-OPTIMIZATION-COMPLETE.md (implementation artifact)
- doc/PROJECT-DOCUMENTATION-SUMMARY.md (meta-documentation)
- doc/PROJECT_STATUS.md (internal roadmap)
- doc/API-QUICK-REFERENCE.md (consolidated into API.md)
- doc/API-PROTECTION.md (consolidated into API.md and SECURITY.md)
**API Documentation Enhanced:**
- Added Quick Reference section to API.md (from API-QUICK-REFERENCE.md)
- Added Security & Protection section to API.md (from API-PROTECTION.md)
- Updated Rate Limiting section to reflect actual implementation
- Added Origin Checking documentation with examples
**SECURITY.md Enhanced:**
- Added comprehensive API Protection Features section
- Updated Rate Limiting section (was marked "Not implemented", now shows it IS implemented)
- Added Origin Checking configuration and examples
- Added Combined Protection flow documentation
- Added Testing Protection section with curl examples
- Added Production Deployment Checklist
- Added Troubleshooting section
**Private Information Removed:**
- README.md: Removed matomo.drolo.club and site ID references
- PRIVACY.md: Replaced specific Matomo server with generic template
- CUSTOMIZATION.md: Replaced Analytics Configuration with generic guide
- All Matomo-specific details replaced with placeholders
**Documentation Navigation:**
- README.md: Enhanced Documentation section with organized categories
- Getting Started (README, DEPLOYMENT, CUSTOMIZATION)
- Technical Reference (ARCHITECTURE, API)
- Policies & Standards (SECURITY, PRIVACY, CODE_OF_CONDUCT, CONTRIBUTING)
- License
**Broken Links Fixed:**
- Removed reference to non-existent CHANGELOG.md in API.md
- Fixed relative paths for cross-document references
- Verified all internal documentation links
**Result:**
- Documentation reduced from 16 files to 10 core files (37.5% reduction)
- No private information exposed (all Matomo details sanitized)
- No implementation artifacts remaining
- Clear, professional structure suitable for public instructive project
- Comprehensive API and security documentation
- All essential content preserved and enhanced
This documentation now represents a professional, instructive open-source project suitable for public consumption and learning purposes.
2025-11-12 16:04:43 +00:00
juanatsap
6eee66e3e2
refactor: simplify middleware chain and update documentation
...
- Remove unused rate limiting and security validation middleware
- Rename improvement summary to aspirational goals
- Add current project status documentation
2025-11-12 09:42:46 +00:00
juanatsap
92dffe8c60
feat: add comprehensive testing infrastructure and security hardening
...
- Enhanced CI/CD pipeline with coverage reporting, benchmarks, and artifact uploads
- Implemented rate limiter IP validation with proxy support and spoofing protection
- Added extensive Makefile test targets for coverage, benchmarks, and continuous testing
- Expanded middleware chain with request validation, size limits, and suspicious activity logging
2025-11-11 21:43:12 +00:00
juanatsap
0e52d625a1
refactor: remove API documentation files and add binary to gitignore
...
- Removed redundant API documentation (API.md and API-QUICK-REFERENCE.md)
- Added cv-app binary to gitignore to prevent committing build artifacts
2025-11-09 20:48:24 +00:00
juanatsap
ea6ccf9cdd
feat: add origin validation and rate limiting for PDF endpoint
...
Security enhancements:
- Implement origin/referer validation middleware
- Add rate limiting (3 requests/min per IP)
- Default to production domain (juan.andres.morenorub.io)
- Verify all protection mechanisms working correctly
Documentation updates:
- Update README to reflect personal portfolio nature
- Remove template encouragement from README
- Add verification status to API-PROTECTION.md
- Document ALLOWED_ORIGINS configuration in .env.example
Cleanup:
- Remove templates.backup/ folder
- Remove old test screenshots
2025-11-09 14:13:22 +00:00
juanatsap
24b2401519
feat: add origin validation and rate limiting for PDF endpoint
...
- Implemented origin checker middleware to prevent external sites from hotlinking the PDF generation endpoint
- Added rate limiter (3 requests per minute per IP) to protect resource-intensive PDF operations
- Configured allowed origins via ALLOWED_ORIGINS environment variable with localhost defaults for development
2025-11-09 14:00:10 +00:00
juanatsap
584cfe05b1
refactor: consolidate documentation into main README
...
- Removed redundant documentation files (ADDING-YOUR-PHOTO.md, ARCHITECTURE.md, DEPLOYMENT_SETUP.md)
- Moved essential information into the primary README for better discoverability
- Streamlined documentation structure to reduce maintenance overhead
2025-11-08 10:34:43 +00:00