Overview
The project schema defines the structure for portfolio projects displayed on the site. All projects are stored in/src/data/projects.js as an array of project objects.
Project Object Structure
Each project in theprojects array follows this schema:
Unique identifier for the project. Used for routing and references.Example:
"chatverde", "allegra"Display title of the project in uppercase.Example:
"CHAT VERDE", "ALLEGRA E-COMMERCE"Short category or type descriptor for the project.Example:
"CONVERSATIONAL APP", "E-COMMERCE"Tech stack as a formatted string with bullet separators.Example:
"F# • .NET • NLP • C#", "React • Vite • Tailwind CSS"Array of individual technologies used in the project.Example:
["F#", ".NET", "NLP", "C#", "Windows Forms"]Optional badge text to highlight special status.Example:
"" (empty string for no badge)Short description highlighting the main achievement or feature (1-2 sentences).Example:
"Optimized search performance handling natural language queries with under 100ms response times."Extended description providing comprehensive project overview (2-3 sentences).Example:
"A conversational console application developed in F# on .NET to query the 'Medicina Verde 100% Natural' product catalog using natural language. It features advanced search capabilities with exact tokenization and intent recognition."Description of the problem or challenge the project addressed.Example:
"Finding products in a catalog of 500 items was difficult due to strict spelling requirements and lack of natural language understanding, causing a high match loss for common spelling variations."Detailed explanation of how the challenge was solved.Example:
"I developed a search engine prioritizing specific fields with tokenization and stopword removal, improving precision by over 10%. I implemented case and accent-insensitive text normalization ending in 0% match loss, and integrated intent recognition to list full categories (e.g., 'shampoos')."Project metadata containing role, timeline, and team information.
Your role in the project.Example:
"Software Engineer", "Full Stack Engineer"When the project was completed.Example:
"November 2025", "July 2025"Team size or location information.Example:
"Estelí, Nicaragua", "4 Developers"Path to the project image (relative to public directory).Example:
"/ChatVerde.webp", "/TiendaDeRopaAllegra.webp"Accessibility text describing the image.Example:
"Console conversational interface", "E-commerce dashboard interface"Complete Example
Here’s a real project from the portfolio:TypeScript Type Definition
For TypeScript users, here’s the complete type definition:Usage
Import and use projects in your components:Adding New Projects
- Open
/src/data/projects.js - Add a new object to the
projectsarray following the schema above - Ensure all required fields are filled
- Add the project image to the
/publicdirectory - Use WebP format for images for optimal performance
Best Practices
- Keep
descconcise and achievement-focused - Use metrics in descriptions when possible (e.g., “60% faster”, “reduced by 40%”)
- Ensure
imgAltis descriptive for accessibility - Use consistent capitalization (UPPERCASE for titles)
- Place newest projects first in the array