Commit Graph

75 Commits

Author SHA1 Message Date
juanatsap 2ac4fbcd92 data: add GitHub badge to CDC Starter Kit project 2026-04-03 23:55:55 +01:00
juanatsap c4c52a68fa data: fix project dates to 2026 and move to top of list 2026-04-03 23:47:57 +01:00
juanatsap 61efe98240 feat: link projects to drolosoft.com pages and add GitHub badge
Main project URLs now point to drolosoft.com product pages with
language-aware links. GitHub repos are shown via a new badge next
to the existing LIVE badge.
2026-04-03 23:15:59 +01:00
juanatsap f54829cb28 data: add Immich Photo Manager project logo 2026-04-03 22:44:21 +01:00
juanatsap bbaf303e62 data: add Cmux Resurrect project logo (phoenix) 2026-04-02 23:37:38 +01:00
juanatsap b68eab10c2 data: add Immich Photo Manager open-source project to CV
Add MCP server for AI-powered Immich photo library management
to projects section in both English and Spanish.
2026-04-02 21:57:47 +01:00
juanatsap afe2ad5017 fix: capitalize Cmux Resurrect properly 2026-03-27 02:10:34 +00:00
juanatsap 5dd01461b3 fix: correct project name from CMAX to cmux Resurrect 2026-03-27 02:10:15 +00:00
juanatsap 623f3b2376 data: add CMAX Resurrect open-source project to CV
Add cmux-resurrect terminal session persistence tool to the
projects section in both English and Spanish CV data files.
2026-03-27 02:00:28 +00:00
juanatsap 019f610eb5 data: close LIV Golf position (ended Dec 2025) 2026-03-05 22:35:07 +00:00
juanatsap b5a50ca3ef feat: implement CSS sprite system for image optimization
Reduces HTTP requests from 44+ individual images to 3 sprite sheets
(~93% reduction). Includes Go sprite generator tool, CSS classes,
template integration, and E2E tests.

- Add cmd/sprites/main.go for sprite generation (60x60px + 120x120px @2x)
- Add _sprites.css with responsive sizing and retina support
- Update templates to use sprites with logoIndex fallback
- Add Makefile targets: sprites, sprites-clean
- Add 9-test E2E suite for sprite functionality
- Add doc/22-SPRITES.md with usage documentation
2025-12-04 11:38:36 +00:00
juanatsap a0bef45b0a fix: restore udemy.png course logo and enhance text justification
- Re-added courseLogo reference for Udemy certifications in both cv-en.json and cv-es.json
- Enhanced .intro-text CSS with full justification (text-align-last) and cross-browser hyphenation support
2025-12-02 18:15:50 +00:00
juanatsap c26cea3fd5 fix: remove missing udemy.png reference, improve text justification
- Remove courseLogo reference for Udemy courses (use fallback icon)
- Add text-justify: inter-word and hyphens: auto to intro-text
- Better text flow on iPad/tablet widths with narrow columns
2025-12-02 18:07:33 +00:00
juanatsap 9842f183ea ```
chore: remove local git repo path from laporra project

- Clear gitRepoUrl for laporra.club project in both EN/ES CV data
- Update validation doc example to use generic path instead of specific project
- Prevents exposing local filesystem paths in public CV data
```
2025-12-02 14:16:57 +00:00
juanatsap ff74946d2d feat: add Udemy courses and fix footer i18n + golangci-lint errors
- Add 5 Udemy courses with PDF certificate links (Go, Fyne, HTMX)
- Fix cv-footer.html to use CV data instead of hardcoded values
- Add i18n labels for footer (linkedin, github, domestika, email, phone)
- Fix 11 golangci-lint errors:
  - errcheck: proper Close() error handling in email/security/tests
  - staticcheck: simplify return and merge variable declaration
  - unused: remove legacy sendEmail and formatMessage functions
2025-12-02 14:11:36 +00:00
juanatsap 9a848e8c53 feat: Add CMD+K command palette with ninja-keys integration
Implement a command palette accessible via CMD+K/Ctrl+K using the ninja-keys
web component. Features include:

- New /api/cmd-k endpoint serving dynamic CV entries (experiences, projects, courses)
- Language-aware responses with 1-hour cache headers
- Scroll-to-section functionality for quick navigation
- Enhanced keyboard shortcuts modal with CMD+K documentation
- Comprehensive test coverage for API and UI interactions

Also includes cleanup of deprecated debug test files and various UI polish
improvements to contact form, themes, and action bar components.
2025-12-01 13:03:06 +00:00
juanatsap 9636b3659f refactor: Extract all hardcoded content to JSON files
- Move all bilingual text from templates to UI JSON (labels, buttons, modals)
- Move skills summary paragraph to CV JSON with HTML support
- Add new UI sections: navigation, viewControls, sections, footer, portfolio,
  pdfModal, shortcutsModal, infoModal, widgets
- Update Go structs to match expanded JSON structure
- Add template.HTML type for CV.SkillsSummary field
- Add JSON content validation test (70-json-content-validation.test.mjs)

Templates now contain only structural logic (CSS classes, HTML attributes)
while all user-visible text loads from JSON files for proper i18n support.
2025-11-30 10:13:37 +00:00
juanatsap 54cdb0cc19 refactor: PDF filenames with_skills → with-skills (cosmetic only)
Changed PDF filename format to use hyphens instead of underscores for
consistency with other filename components, while keeping API parameter
as `version=with_skills`.

## Changes

**Backend:**
- internal/handlers/cv.go: Add underscore-to-hyphen conversion in filename generation
  - New logic: `strings.ReplaceAll(version, "_", "-")` for filename only
  - API parameter unchanged: still accepts `version=with_skills`

**Tests:**
- internal/handlers/pdf_test.go: Update expected filenames to use hyphens
  - cv-*-with_skills-*.pdf → cv-*-with-skills-*.pdf

**Documentation:**
- Updated all PDF filename references to use hyphens
- PDF-EXPORT-FEATURE.md
- doc/LONG-PDF-GENERATION.md
- PDF-VALIDATION-REPORT.md (new validation report)

**PDFs:**
- Regenerated all 8 PDFs with new naming convention
- Old: cv-short-with_skills-jamr-2025-en.pdf
- New: cv-short-with-skills-jamr-2025-en.pdf

## Examples

API calls unchanged:
- GET /export/pdf?version=with_skills (still works)

Generated filenames:
- cv-short-with-skills-jamr-2025-en.pdf ✓
- cv-long-with-skills-jamr-2025-es.pdf ✓

**Tests:** All passing ✓
**API:** Backwards compatible ✓
2025-11-20 11:48:34 +00:00
juanatsap 27f5e8eb79 docs: Rename PDF length parameter from 'detailed' to 'short'
Changed PDF export naming convention from 'detailed' to 'short' for better clarity and contrast with 'extended'. Updated:

- Documentation: All references from 'detailed' → 'short'
- JSON data files: Static PDF URLs now use cv-short-jamr-{{YEAR}}-{lang}.pdf
- Frontend modal: Removed 'short' → 'detailed' mapping (now stays as 'short')
- Static PDFs: Renamed cv-detailed-* to cv-short-* (deleted old files)
- Backend validation: Change
2025-11-19 17:40:06 +00:00
juanatsap 43414b79ac fix: Override inline icon sizes to 1.2em across all sections
Problem: Inline icons embedded in responsibilities, courses, and
projects had explicit width='60' height='60' attributes that made
them too large (60px instead of ~16px).

Solution:
- Added CSS with !important to override inline width/height attributes
- Targeted inline icons in:
  * Course responsibilities and descriptions
  * Project descriptions and technologies
  * Experience responsibilities (within divs)
- Preserved large icons (80px) for main company/course/project logos

Changes:
- static/css/03-components/_courses.css: Override to 1.2em
- static/css/03-components/_projects.css: Override to 1.2em
- static/css/03-components/_cv-section.css: Override to 1.2em

Test Results:
 7 course inline icons: 16px × 16px
 Main company icons: 80px × 80px (preserved)
2025-11-19 16:30:18 +00:00
juanatsap e9d650d152 fix: update domain from morenoyrubio.com to morenorub.io
Updated personal website domain across all configuration files:
- Changed website URL in CV data (English and Spanish)
- Updated robots.txt domain reference and sitemap location
- Updated all sitemap.xml URLs (English, Spanish, default, health check)
- Removed obsolete test files (styling comparison, shortcuts button report)

Domain change: morenoyrubio.com → morenorub.io
2025-11-17 13:40:05 +00:00
juanatsap d9b909bd7e fix: restore rate limiting and fix language switch links
Security:
- Restore PDF endpoint rate limiting (3 requests/minute)
- Keep security headers middleware (CSP, HSTS, X-Frame-Options)
- Keep origin checker for PDF endpoint
- Restore recovery and logger middleware

Links:
- Fix 'CV in [language]' links to use relative URLs (/?lang=)
- Now correctly navigates to page instead of downloading
- PDF download links remain as full URLs for direct download

Simplifications:
- Remove unused advanced middleware (not yet implemented)
- Use simpler 2-parameter rate limiter constructor
- Remove unused strconv import
2025-11-12 09:51:38 +00:00
juanatsap 6332d82643 fix: render driver license as bold HTML instead of escaped text
- Move <strong> tags from data to template for proper HTML rendering
- Update both English and Spanish data files to use plain text
- Template now wraps license type in <strong> tags
2025-11-12 09:36:03 +00:00
juanatsap d20c7ec319 fix: replace relative URLs with production domain in references
- Changed /?lang=en and /?lang=es to full https://juan.andres.morenorub.io URLs
- Changed /static/pdf paths to absolute URLs with production domain
- Prevents localhost URLs from appearing in downloaded/shared CVs
- Affects both English and Spanish versions
2025-11-11 09:04:17 +00:00
juanatsap 89fa58e84c refactor: highlight SAP CDC expertise and use 'Olympic Games'
- Changed 'Olympic platforms' to 'Olympic Games platforms'
- Added 'Certified SAP Customer Data Cloud consultant' specialization
- Emphasized digital identity solutions for 35-40 international clients
- More specific positioning as CDC expert
2025-11-11 09:00:33 +00:00
juanatsap e2b5a7ae10 refactor: modernize CV content and professional positioning
- Update summary to be concise and focus on high-availability systems
- Replace technology-specific badges with professional role titles
- Add emphasis (bold) to key concepts in Skills section
- Update project metrics (20 websites, 35-40 consulting clients)
- Change "EN VIVO" to universal "LIVE" badge for consistency
- Improve professional positioning: Senior Consultant, Full-Stack Engineer, Authentication Specialist, Solution Architect
2025-11-10 18:54:50 +00:00
juanatsap 04fdae2347 feat: add collapsible accordion for sidebars on mobile
PROBLEM:
- Left and right sidebars occupy too much space on mobile
- User wants curriculum (main content) prioritized on mobile
- Sidebars should be collapsed by default, expand only on user interaction

SOLUTION:
HTML Changes (cv-content.html):
- Wrapped each sidebar in accordion structure
- Added .sidebar-accordion-header with brain icon, title, and chevron
  * Left sidebar: "Technical Skills" / "Competencias Técnicas"
  * Right sidebar: "More Skills" / "Más Competencias"
- Added .sidebar-accordion-content wrapper around sidebar sections
- Added onclick="toggleSidebar(this)" handler

CSS Changes (main.css):
Desktop (default):
- .sidebar-accordion-header: display: none (hidden on desktop)
- .sidebar-accordion-content: always visible (no restrictions)

Mobile @ 900px:
- .sidebar-accordion-header: display: flex, styled as clickable bar
  * Padding: 1rem 1.5rem
  * Background: var(--sidebar-gray) with hover effects
  * Font: 700 weight, 1.1rem size
  * Chevron rotates 180deg when active
- .sidebar-accordion-content: collapsed by default
  * max-height: 0 (collapsed)
  * max-height: 5000px when .active (expanded)
  * Smooth transitions: 0.3s ease-out (close) / 0.5s ease-in (open)
  * Padding: 0 when closed, 1.5rem when open
- .cv-sidebar: padding: 0 (accordion header handles padding)

JavaScript Changes (index.html):
- Added toggleSidebar(header) function
  * Toggles .active class on header and content
  * Smooth expand/collapse animation via CSS max-height transition

DATA Changes (cv-en.json, cv-es.json):
- Updated summary with more professional, experience-focused description
- Emphasizes 18+ years experience, international clients, practical solutions

BEHAVIOR:
- Desktop: Sidebars always visible, no accordion headers
- Mobile: Sidebars collapsed by default showing only header bar
- Click header: Expands sidebar with smooth animation
- Click again: Collapses sidebar
- Main content prioritized and always visible
- Each sidebar toggles independently
2025-11-10 18:16:54 +00:00
juanatsap 69ca8b77be feat: update CV with live project badges and PDF download links
- Changed project status badges from "CURRENT" to "LIVE" with wifi icon for active projects
- Updated CV reference links to direct PDF downloads instead of modal popups
- Marked SAP CDC Demo and Client Projects as currently live/maintained
2025-11-10 17:03:00 +00:00
juanatsap fc0eb8443a feat: update references section and fix experience logos in print
References section improvements:
- Remove TwenTIC recommendation letter
- Add Megabanner recommendations with author attribution (David Amorós)
- Update Presentation Letter URL to Domestika profile
- Update Chronological CV link to trigger PDF download modal
- Add 'action' field to Reference struct for custom behaviors

Print layout fixes:
- Show experience company logos in print view (40×40px)
- Remove print media query that was hiding .company-logo elements
- Maintain consistency with other logo types (courses, projects, awards)

Technical changes:
- Add Action field to Reference model with omitempty JSON tag
- Implement conditional rendering for downloadPDF action in template
- Links with action="downloadPDF" now call openPdfModal() function
2025-11-10 16:34:30 +00:00
juanatsap 91a73e27fb feat: update professional summary with modern tech stack
English summary:
- Remove outdated: J2EE, PHP, generic descriptions
- Add modern stack: Go, Node.js, React, HTMX
- Add infrastructure: VPS, CI/CD pipelines
- Highlight: AI methodologies in software engineering
- Emphasize: 40+ national and international clients
- Maintain: Frontend expertise, problem-solving, team collaboration

Spanish summary:
- Eliminar obsoleto: J2EE, PHP, descripciones genéricas
- Añadir stack moderno: Go, Node.js, React, HTMX
- Añadir infraestructura: VPS, pipelines CI/CD
- Destacar: Metodologías de IA en ingeniería de software
- Enfatizar: Más de 40 clientes nacionales e internacionales
- Mantener: Experiencia frontend, resolución de problemas, colaboración

Both summaries modernized to reflect current expertise and AI-assisted development practices.
2025-11-09 21:12:26 +00:00
juanatsap 13c59c3699 refactor: separate UI translations from CV data
- Created separate ui-en.json and ui-es.json files for UI strings
- Removed 'ui' section from cv-en.json and cv-es.json
- Added LoadUI() function to load UI translations separately
- Updated handlers to load UI data independently from CV data
- Updated template to use .UI instead of .CV.UI

This separation follows proper concerns:
- CV JSON files contain only professional CV content
- UI JSON files contain only application interface strings
- Each can be updated independently without affecting the other
2025-11-09 21:03:39 +00:00
juanatsap de0c443764 feat: add bilingual support to info modal
- Added 'ui' section to cv-en.json and cv-es.json with modal translations
- Updated Go models to include UI, InfoModal, and TechStack structs
- Modified template to use JSON data instead of inline if/else statements
- Used template.HTML for Description field to allow HTML rendering
- Modal now fully supports English and Spanish translations

Translations include:
- Modal title
- Description text
- Tech stack labels (HTML5 Semántico vs Semantic HTML5, etc.)
- View source button text
2025-11-09 20:59:10 +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 31dae9fa19 Add collapsible sections, restructure menu, and refine sidebar layouts
- Wrapped all CV sections and sidebar sections in <details> tags for collapsibility
- Added Expand All/Collapse All menu options with CV Sections submenu
- Implemented smooth CSS animations for section expansion/collapse using max-height transitions
- Fixed menu item alignment issues (removed extra padding)
- Added dash between company name and duration in experience section
- Moved SAP Technologies and AI-Assisted Development to bottom of right sidebar
- Reordered JavaScript Ecosystem above Go Ecosystem in left sidebar
- Implemented different layouts for left vs right sidebars:
  - Left sidebar: title left-aligned, triangle on right
  - Right sidebar: title right-aligned, triangle on left
- Adjusted sidebar spacing for better visual hierarchy when sections are open/closed
2025-11-09 13:43:29 +00:00
juanatsap 2ce13481d0 feat: enhance CV with project title links, experience durations, certifications, and improved navigation
## Project Title Links
- Add projectName and projectDesc fields to Project struct
- Split project titles to make only project name clickable
- Update template logic for conditional title rendering
- Apply changes to both English and Spanish versions

## Experience Duration Display
- Restore duration calculation display in experience section
- Move duration from date line to after company name
- Style duration in light gray (#999) for subtle appearance
- Calculate durations dynamically (e.g., "4 years 10 months")

## Certifications Section Enhancement
- Add Codecademy Certifications (2022-2024) with AI Transformers and React courses
- Add LinkedIn Learning Certifications (2019-2020) with 5 professional courses
- Implement colored icon system with brand colors (purple, cyan, green, etc.)
- Use responsibilities format matching Third Party Contributions layout
- Reorder courses chronologically (most recent first)

## localStorage Improvements
- Save CV length preference (short/long)
- Save logos visibility preference (show/hide)
- Save theme preference (default/clean)
- Restore all preferences on page load

## Navigation UX Enhancements
- Fix scroll positioning to show sections below action bar
- Add keepHeaderVisible flag to maintain header visibility after navigation
- Ensure smooth scrolling with proper offset calculations
- Reset flag on scroll up to restore normal hide/show behavior

## Files Modified
- internal/models/cv.go: Add ProjectName, ProjectDesc fields
- templates/cv-content.html: Update project and experience rendering
- static/css/main.css: Add duration-text styling
- templates/index.html: Enhance scroll behavior and localStorage
- data/cv-*.json: Add certifications, split project titles, reorder courses
- static/images/courses/: Add codecademy.png, linkedin.png
2025-11-09 11:42:52 +00:00
juanatsap 7e9bc2df99 feat: add UEX logo to last two University of Extremadura courses
- Add uex.png logo to '1st Extremadura Conference on Software Industry'
- Add uex.png logo to 'Web Application Development: Apache, PHP and MySQL'
- Both courses in English and Spanish versions now display University logo
- Total: 5 out of 10 courses now have logos (servoy, forem, camaracomercio, uex×2)
2025-11-09 03:30:08 +00:00
juanatsap 740c435d1e feat: add course logo support with servoy, forem, and camaracomercio logos
- Add courseLogo field to Course struct in Go
- Update template to display course logos with fallback to school icon
- Add CSS styling for course logo images (80x80px, contained, bordered)
- Add logos to three courses in both English and Spanish:
  * Servoy World 2011 (servoy.png)
  * Train the Trainers / Formador de Formadores (forem.png)
  * Windows 2003 Server (camaracomercio.png)
- Course logos stored in /static/images/courses/ folder
- Similar implementation to project logos with error handling
2025-11-09 03:21:48 +00:00
juanatsap 3b5256b1ad feat: add Affinity and Excalidraw to Design Tools 2025-11-09 02:46:09 +00:00
juanatsap e572af0771 feat: implement dynamic date calculation for projects
- Remove hardcoded startDate from La Porra project
- Add gitRepoUrl field to Project struct for dynamic date fetching
- Implement backend logic to fetch first commit date from git repositories
- Add processProjectDates function to calculate dates dynamically
- Update template to display computed dates and dynamic "Present/Presente"
- Add support for both static and git-based project start dates

When a project has a gitRepoUrl, the system automatically fetches the first
commit date from the repository. For current projects, it displays
"Present" (English) or "Presente" (Spanish) dynamically from the backend.

The La Porra project now uses git repository path for date calculation
instead of hardcoded JSON values.
2025-11-09 02:43:40 +00:00
juanatsap a6783da1f6 feat: add bold project links and fix language selector spacing
- Wrap project name links (Lidering, Jorpack, Delivery Bikes BCN, Mobbeel) with <strong> tags in shortDescription for both EN and ES
- Add padding-left: 3rem to .language-selector to prevent overlap with adjacent elements
2025-11-08 16:37:14 +00:00
juanatsap 286d0d0e3e feat: add explicit sidebar placement control and responsive design (1024-1280px)
- Add sidebar field to SkillCategory model for explicit left/right control
- Update splitSkills to respect sidebar field instead of automatic splitting
- Add responsive CSS for 1024-1280px: collapse labels, icons-only buttons, EN/ES language selector
- Remove language switcher animations
- Ensure desktop view (>1280px) always shows full sidebar content
- Move Databases and Infrastructure to right sidebar
- Reduce font sizes in responsive range
- Update project logos (Lidering, Jorpack, Delivery Bikes)
2025-11-08 15:05:54 +00:00
juanatsap 4761145ad8 refactor: reorganize skills sidebar layout (7 left, 6 right)
- Update splitSkills logic to put 7 categories on left sidebar, 6 on right
- Reorder skills: Frontend Technologies now at position 5, Legacy Enterprise Technologies at position 6 (last on left)
- Apply changes to both English and Spanish CV data
- Clean up unused enhanced template and CSS files

Left sidebar (Page 1):
1. AI-Assisted Development
2. SAP Technologies
3. Programming Languages
4. Go Ecosystem
5. JavaScript Ecosystem
6. Frontend Technologies
7. Legacy Enterprise Technologies

Right sidebar (Page 2):
8. Backend Technologies
9. Databases
10. Infrastructure & Servers
11. DevOps & CI/CD
12. Team Management
13. Design Tools
2025-11-08 14:33:55 +00:00
juanatsap 435ab7ae70 feat: add "Maintained by SAP" badge to CDC Starter Kit project
Added visual badge to show CDC Starter Kit is now maintained by SAP:

1. Go struct changes:
   - Added MaintainedBy field to Project struct (cv.go:108)

2. Data updates:
   - Added "maintainedBy": "SAP" to CDC Starter Kit in cv-en.json
   - Added "maintainedBy": "SAP" to CDC Starter Kit in cv-es.json

3. Template changes:
   - Added maintained-badge display in project header (cv-content.html:226-228)
   - Shows "MAINTAINED BY SAP" (EN) or "MANTENIDO POR SAP" (ES)

4. CSS styling:
   - Added .maintained-badge style with blue background (#3498db)
   - Matches current-badge and expired-badge styling

Badge appears next to project title to highlight SAP's ongoing maintenance.
2025-11-08 12:35:46 +00:00
juanatsap 01ab281c33 refactor: reorder Personal Projects - Somos Una Ola and Herrumbre Vivo first
Moved projects to prioritize environmental/volunteer work:

New project order:
1. Somos Una Ola (2023, current) - Beach cleaning volunteer project
2. Herrumbre Vivo Arte (2024, current) - Recycled art portfolio
3. La Porra.club (2024, current) - Football prediction platform
4. CDC Starter Kit (2018, maintained by SAP)
5. Third Party Contributions (2015, collection)
2025-11-08 12:33:09 +00:00
juanatsap 00a1f7c479 feat: update CDC Starter Kit status - now maintained by SAP
Updated CDC Starter Kit project to reflect current status:
- Changed current: false (no longer actively developed by me)
- Added "Now maintained by SAP" to shortDescription
- Emphasized 100% independent creation as public GitHub resource
- Added final responsibility: "Project now maintained by SAP as official public resource"

This highlights the professional achievement of creating an official SAP resource independently that SAP now maintains.
2025-11-08 12:28:25 +00:00
juanatsap 184339f123 refactor: reorder Personal Projects - La Porra and Herrumbre Vivo first
Moved Herrumbre Vivo Arte to position 2 (right after La Porra) as requested.

New project order:
1. La Porra.club (2024, current)
2. Herrumbre Vivo Arte (2024, current)
3. CDC Starter Kit (2018, current)
4. Third Party Contributions (2015, collection)
5. Somos Una Ola (2023, current)
2025-11-08 12:25:38 +00:00
juanatsap e66338a02e feat: add CDC Starter Kit and Third Party Contributions projects
Added two new project entries to Personal Projects section:

1. CDC Starter Kit (individual project, 100% created independently)
   - SAP Customer Data Cloud comprehensive demo and starter kit
   - Started 2018, currently maintained
   - Technologies: SAP CDC, JavaScript, React, API Integration
   - Full implementation showcase with authentication and user management

2. Third Party Contributions (collection of client projects)
   - Lidering (via Twentic): Real estate platform
   - Jorpack (via Twentic): Industrial packaging website
   - Delivery Bikes BCN: Bicycle delivery service
   - Mobbeel: Biometric authentication solutions
   - Structured similar to Drolosoft experience with embedded logos

Also added project logos: sap.png, twentic.png, and existing personal project logos (laporra.png, somosunaola.png, herrumbre-vivo.png)
2025-11-08 12:08:05 +00:00
juanatsap 1817f4d8af feat: add La Porra.club football prediction platform to Personal Projects
Added La Porra.club as newest project entry with full bilingual support. Private invitation-only platform for football predictions built with Node.js, Hono, HTMX, and Panini templates.
2025-11-08 11:55:38 +00:00
juanatsap 2c963ebcc7 feat: add project logo support and rename to Personal Projects
Changes:
- Created /static/images/projects/ folder for project logos
- Added ProjectLogo field to Project struct
- Updated cv-en.json and cv-es.json with projectLogo fields:
  - somosunaola.png for Somos Una Ola
  - herrumbre-vivo.png for Herrumbre Vivo Arte
- Updated template to display project logos with fallback to web icon
- Added CSS styling for project logo images (80×80px)
- Renamed section from "Projects" to "Personal Projects"

Logo images will display when PNG files are added to /static/images/projects/
2025-11-08 11:36:11 +00:00
juanatsap fa4996709d feat: add Projects section between Courses and Awards
Added new Projects section with two initial projects:
- Somos Una Ola - Beach cleaning initiative website (Node.js/Express/HTMX)
- Herrumbre Vivo Arte - Artist portfolio for recycled art

Changes:
- Added projects data to cv-en.json and cv-es.json
- Updated Project struct in models/cv.go with all required fields
- Added Projects section CSS matching Awards/Courses styling (80×80px icons)
- Added Projects template with icons, current badges, and Domestika link
- Reordered sections: Courses → Projects → Awards (as requested)

Features:
- Clickable project titles linking to websites
- Current badge for ongoing projects
- Period and location display
- Short descriptions (always visible)
- Responsibilities list (long version only)
- Technologies list (long version only)
- Footer with link to Domestika portfolio
2025-11-08 10:52:06 +00:00