All project content displayed throughout the Hector Portfolio site is centralised in a single module:Documentation Index
Fetch the complete documentation index at: https://mintlify.com/iwinser117/react-portafolio/llms.txt
Use this file to discover all available pages before exploring further.
src/utils/galerimages.js. The file imports every project screenshot or icon at the top level, organises them into named arrays, and re-exports them so that page components consume a single, predictable source of truth. Understanding this file is the first step for adding, removing, or rearranging portfolio entries.
Named Exports
The module exposes six named exports. Each one serves a different section of the portfolio UI.imagesData
Legacy array of 6 icon entries (JavaScript, Node.js, CSS, HTML, React icons). Not consumed by the projects page — kept for historical reference only.
secondImages
Main project array. Consumed by
aplicaciones.jsx to render the featured project cards grid. This is the array you edit to add or update showcase projects.imagesTodowebp
Plain object mapping short keys to imported
.webp / .png assets. Used by the vanilla mini-apps section of the portfolio.section1Projects
JavaScript category projects rendered in their own filtered section.
section2Projects
Node.js category projects rendered in their own filtered section.
section3Projects
CSS / HTML category projects rendered in their own filtered section.
Project Object Shape
Every entry insecondImages, section1Projects, section2Projects, and section3Projects follows the same object shape:
The
src field must be an imported asset, not a raw string path. Vite (or your bundler) resolves the import at build time and replaces it with the hashed output URL. Passing a plain string like "/assets/my-project.webp" will not be picked up by the asset pipeline.secondImages — Current Projects
secondImages is the array that powers the main /aplicaciones page. As of the current source, it contains six active entries (several others are commented out and can be re-enabled):
| # | alt (title) | subtitle (tech stack) | Live Demo |
|---|---|---|---|
| 1 | CRUD Lista tareas | NodeJs - React - MongoDB | crudlistatareas.netlify.app |
| 2 | Autenticación JWT | NodeJs - ExpressJs - oAuth | autenticate.vercel.app |
| 3 | Generador Contraseñas | Tailwind - NextJs | generatepassword-theta.vercel.app |
| 4 | TableExportJS | NodeJs | table-export-js-4zq5.vercel.app |
| 5 | CRUD SAP | NodeJs - Express - Odata - SAP | mega-crud-table-ui5.vercel.app |
| 6 | apk pdf | Visor PDF - Android | pdf-generator-nodejs.vercel.app |
Category Sections
The three category arrays each hold projects for a specific technology focus:section1Projects — JavaScript
alt | subtitle | Demo |
|---|---|---|
| Rick and Morty | Consumo API - Paginación | api-rick-and-morty-17j9.vercel.app |
section2Projects — Node.js
alt | subtitle | Demo |
|---|---|---|
| Autenticación JWT | Node.js - JWT - Express | autenticate.vercel.app |
| Generador Contraseñas | Tailwind - NextJs | generatepassword-theta.vercel.app |
| TableExportJS | Vanilla JS - CSV - XLSX | table-export-js-4zq5.vercel.app |
section3Projects — CSS
alt | subtitle | Demo |
|---|---|---|
| Galería de Arte | HTML - CSS - Lightbox | galery-art-rho.vercel.app |
| Animación Background | CSS - Animations - Responsive | iwinser117.github.io |
| Plantilla Responsive | HTML - CSS - Responsive | responsivetemplatecss.netlify.app |
imagesTodowebp Object Keys
imagesTodowebp is a plain object (not an array) used by the vanilla mini-apps section. Each key maps to an imported asset:
Category Derivation
Category filter buttons shown on the
/aplicaciones page are not stored inside galerimages.js. They are derived at render-time in aplicaciones.jsx by parsing each project’s subtitle string. This means the filter labels update automatically whenever you change a subtitle value — no separate category list to maintain.How to Add a New Project
Import the project image
Add an import statement at the top of
src/utils/galerimages.js, alongside the existing imports. Use the @assets alias that Vite resolves to src/assets/.Push an entry to secondImages
Add a new object to the
secondImages array. Fill in all required fields: src, alt, subtitle, demo, and repo.