OTROS Proyectos
Sistema de Trazabilidad para Cadena de Suministro
Solidity - Foundry - Typescript - React - HTML - CSS - Tailwind - rainbowkit
Un prototipo funcional que usa tecnología blockchain para la trazabilidad de productos.
Desarrollada con
Solidity
Foundry
React
Typescript
Tailwind
Ethers.js
Rainbowkit
Solidity
Foundry
React
Typescript
Tailwind
Ethers.js
Rainbowkit
Para validar una solución de negocio, adapté un smart contract existente y construí esta interfaz funcional (MVP) en wave-labs.tech. El objetivo era testar la viabilidad de una herramienta blockchain para un caso de uso logístico muy concreto.
Posteriormente, mejoré el prototipo, añadiendo la capacidad de emitir un NFT al final del proceso para certificar la trazabilidad completa del producto.
Permite rastrear el movimiento de un producto a través de su cadena de suministro. Cada etapa, desde la fabricación hasta el cliente, queda registrada de forma inmutable en un smart contract, garantizando la transparencia y la integridad de los datos.
Garden Tech marketplace de nfts
Solidity - Foundry - React - Javascript - HTML - CSS - Ethers.js - IPFS
Puedes clickar en las imágenes para ampliarlas y ver su funcionamiento.
Descubre los puntos clave de la Dapp viendo la explicación

Se necesita una wallet Ethereum en Sepolia para interactuar con la Dapp.
1 of 4 End TourPuedes ir a tu perfil, a crear un NFT o volver al dashboard.
2 of 4 End TourClickando se accede a los detalles de cada NFT
3 of 4 End TourSe pueden comprar y vender pagando una pequeña comisión
4 of 4 End TourRETOS Y APRENDIZAJES
-
Proxy
He utilizado un proxy UUPS que permita realizar actualizaciones en el contrato sin perder los datos almacenados previamente, garantizando la modularidad y la capacidad de actualización. Ahora está apuntando a un contrato, pero podría apuntarse a otra implementación si fuese necesario, siempre teniendo cuidado de evitar conflictos entre variables y mantener la compatibilidad entre actualizaciones.
-
Lógica de compra
He creado una lógica para que se pueda comprar un NFT manteniéndolo a la venta o retirándolo en propiedad. Si el NFT es propio se puede retirar o editar el precio de venta. Esto requiere verificaciones de permisos directamente en el contrato inteligente y actualizar dinámicamente los estados en el frontend según la cuenta del usuario conectado, y tener en cuenta las acciones que podía realizar el propietario de un NFT (reclamar, modificar precio) y lo que podía hacer un comprador potencial (comprar, reclamar, o ambas).
-
Uso de IPFS para almacenaje de datos
Las imágenes y los metadatos se guardan de modo descentralizado en IPFS. A partir de los cids generados, y guardados en el contrato, se recuperan después los datos utilizando axios para mostrarlos en el frontend.
-
Test con covertura de más del 90%
Diseñé casos de prueba exhaustivos, verificando tanto los flujos básicos (creación, compra, reclamación) como escenarios límite (modificación de precios, roles no autorizados). Logré una cobertura de pruebas de más del 90%, con la parte más baja siendo un 88%, lo cual asegura la robustez del contrato ante diferentes casos de uso.
-
Varias páginas
Es una aplicación con varias pestañas que comienza a ganar en complejidad. He tenido que manejar el routing en React.
-
UX-UI
He teñido en cuenta la experiencia de usuario y, aunque podría pulirse, y mejorar el diseño, es algo que requiere mayor tiempo y atención.
App JAVA para gestión de tienda o almacén
Java - Spring Boot - Angular - Typescript - HTML - CSS - PostgreSQL
Para loguearte utiliza el siguiente usuario: user y el siguiente password: user123 (tarda alrededor de 1 minuto en levantarse el back alojado en la capa gratuita de render.com)
Puedes clickar en las imágenes para ampliarlas y ver su funcionamiento.
Descubre los puntos clave al pasar el ratón sobre los iconos
En la app, los gráficos dan aún más info al pasar el ratón sobre ellos

Gráficos con información detallada acerca de los productores
1 of 15Gráficos con información detallada acerca de los productos
2 of 15Solo podrá acceder a la app alguien con permisos
3 of 15Puedes acceder al listado de productores y de productos organizados por categorías y niveles de color
4 of 15Productores y número de productos por productor
5 of 15Stock por cada uno de los productores
6 of 15Procedencia de los productores
7 of 15Porcentaje de cada producto sobre el stock de cada productor
8 of 15Numero de productos por cada productor
9 of 15Stock por cada uno de los productos
10 of 15Rangos de precios de todos los productos
11 of 15Estados del total de productos: activo o inactivo
12 of 15Estados del total del stock: activo o inactivo
13 of 15Alta de productos por meses
14 of 15Precios de los productos agrupados por categoría
15 of 15
Posibilidad de añadir un nuevo producto o productor
1 of 4 End TourPosibilidad de editar o eliminar cualquier producto o productor
2 of 4 End TourLos productos están agrupados por categoría y orden alfabético dentro de ellas
3 of 4 End TourLas categorías se separan visualmente por niveles de color
4 of 4 End TourRETOS Y APRENDIZAJES
Es una aplicación que inicié durante el Bootcamp Full stack del Campus Dual del Cluster Tic Galicia, al que he añadido las siguientes mejoras por mi cuenta una vez finalizado
-
Migración a Postgre SQL
Inicialmente, la aplicación utilizaba HSQLDB en local, lo que limitaba la escalabilidad y accesibilidad de los datos. Llevé la base de datos a PostgreSQL en Supabase, aprendiendo a configurar conexiones remotas seguras y a optimizar consultas.
-
Conexión producto-productor
Diseñé nuevas relaciones entre tablas para vincular productos con contactos/productores, asociando cada producto con un productor y simulando un entorno de gestión real, y ofreciendo una visión más completa de los datos. Además, desarrollé nuevos endpoints en Spring Boot y actualicé el frontend en Angular para manejar estas relaciones.
-
Visualización de datos ampliado
Creé un conjunto de gráficos para mostrar visualmente información relacionada con los contactos/productores, equilibrando así la funcionalidad con la parte destinada a la gestión de productos, ya que solo se mostraba información referente al stock de estos. Expandir las capacidades de visualización, creando nuevas gráficas, me ayudó a familiarizarme con el uso de librerías de gráficos en Angular de forma eficiente.
-
Despliegue con Docker en Render
Desplegué el backend en Render.com, un entorno accesible desde cualquier lugar, garantizando estabilidad y continuidad del servicio. Utilicé Docker para contenerizar la aplicación para el despliegue. Esto incluyó la configuración de variables de entorno y la gestión de imágenes Docker para integrar PostgreSQL con la aplicación Spring Boot.
-
Capa de autenticación con JWT
Añadi una capa de control de acceso, pensando el que solo un propietario pudiera acceder a la aplicación. Implementé un sistema de login basado en JWT, integrando una nueva tabla users en la base de datos para gestionar credenciales. Esto me permitió mejorar la seguridad y garantizar que solo usuarios autorizados interactuaran con la app.
Super Pioneros Innovators Community DAO
Aplicacion web
Desarrollada con
Solidity
Foundry
React
Next
Javascript
HTML
CSS
Wagmi/Viem/RainbowKit
Solidity
Foundry
React
Next
Javascript
HTML
CSS
Wagmi/Viem/RainbowKit
Solidity
Foundry
React
Next
Javascript
HTML
CSS
Wagmi/Viem/RainbowKit
Solidity
Foundry
React
Next
Javascript
HTML
CSS
Wagmi/Viem/RainbowKit
Solidity
Foundry
React
Next
Javascript
HTML
CSS
Wagmi/Viem/RainbowKit
Solidity
Foundry
React
Next
Javascript
HTML
CSS
Wagmi/Viem/RainbowKit
Solidity - Foundry - React - Next - Javascript - HTML - CSS - Wagmi/Viem/RainbowKit
Dapp web – Gestiona la DAO de la comunidad de innovadores WEB3 Super Pioneros
Conecta con un smart contract alojado en la Blockchain (actualmente en Sepolia)
Necesitarás una wallet y, para participar activamente, un token SuperPioneros. Te permitiría crear, visualizar y votar propuestas dentro de la DAO.
Puedes clickar en las imágenes para ampliarlas y ver su funcionamiento.
Descubre los puntos clave al pasar el ratón sobre los iconos

Solo los poseedores del token pueden participar
1 of 6 End TourNúmero de propuestas creadas
2 of 6 End TourPosibilidad de crear, ver y votar propuestas
3 of 6 End TourOpción de crear propuestas por parte de un integrante
4 of 6 End TourPosibilidad de retirar fondos, solo por parte del administrador.
5 of 6 End TourMinteo de nuevos tokens a los miembros de Super Pioneros
6 of 6 End Tour
Los miembros pueden votar propuestas no concluidas
1 of 5 End TourEl administrador puede ejecutar propuestas concluidas
2 of 5 End TourEsto solo es visible para el administrador
3 of 5 End TourNúmero total de propuestas creadas
4 of 5 End TourDescripción, fecha límite y votos acumulados
5 of 5 End TourRETOS Y APRENDIZAJES
Es una DAO desarrollada para la Comunidad de innovadores Super Pioneros (a la cual pertenezco), pensada para que sirva como punto neurálgico donde debatir y compartir.
-
Token Super Pioneros
EL token se Super Pioneros es el que da acceso a los miembros de la DAO. Desde la misma Dapp, el administrador, o persona que posea una determinada cuenta, puede emitir el token a la que cuenta que introduzca en el campo correspondiente.
-
Validación de accesos
Aseguro que solo el administrador pueda retirar los fondos, mintear los tokens y ejecutar propuestas tras el deadline. Asimismo los miembros no pueden acceder a la DAO y crear o votar transacciones si no son poseedores del token de Super Pioneros
-
Votaciones controladas
La lógica del smart contract permite la creación y votación de propuestas, asegurando que un usuario no pueda votar más de una vez en la misma propuesta. Para optimizar la experiencia del usuario, esta información se sincroniza con el localStorage, donde se registra si el usuario ya ha votado. Esto permite mostrar u ocultar dinámicamente los botones de votación en la interfaz. Además, estas entradas almacenadas se eliminan automáticamente una vez que la propuesta alcanza su fecha límite.
-
RainbowKit y Wagmi
La conexión de wallets se implementó utilizando RainbowKit y Wagmi/Viem, lo que permitió gestionar de forma eficiente los flujos de autenticación de usuarios en la Dapp. También se configuraron botones de conexión personalizados, asegurando una experiencia fluida y adaptada a las necesidades del proyecto
Dapp for management of crypto assets in solana
Aplicacion web
Desarrollada con
Angular
Javascript
Tailwind
Shyft
Nx
Angular
Javascript
Tailwind
Shyft
Nx
solana - Angular - Javascript - HTML - CSS - Tailwind - Shyft - Nx
Puedes conocer tu balance de tokens en Solana o tu balance de Sol,
hacer transferencias a cualquier dirección de Solana
o revisar tu historial de transacciones,
conectándote a esta app con una wallet de Solana.
Speed Run Ethereum Projects
Puedes experimentar y mintear tokens o NFTs de modo fácil y divertido en estas dApps si posees una wallet. ¡Pruébalas!
Haz click en las imágenes para verlas con más detalle
dApp Speed Run Ethereum Project 3 - Token Vendor
dApp Speed Run Ethereum Project 2 - Staking App
dApp Speed Run Ethereum Project 1 - Simple NFT
AI-Enhanced Weather Forecasting Tool
Aplicacion web
Desarrollada con
REACT
HTML
CSS
Javascript
AI OpenAI
OpenMeteo
REACT
HTML
CSS
Javascript
AI OpenAI
OpenMeteo
Javascript - REACT - HTML- CSS - Open_AI - Open_meteo
Proporciona el pronóstico del tiempo de cualquier lugar del mundo, utilizando inteligencia artificial.
Introduciendo una localidad (utiliza tildes para minimizar confusiones), o un código postal. Te devuelve una respuesta generada con inteligencia artificial del estado del tiempo de hoy y la previsión para los próximos días.
Utiliza datos meteorológicos oficiales y puedes obtener el pronóstico de cualquier ciudad del mundo. También puedes afinar la búsqueda para el lugar en que te encuentres o quieras localizar usando el código postal (solo España).
Simplemente introduce la localidad o el código postal y pulsa enter, o el botón consultar, para obtener la respuesta
Astronomical Calendar: Sun & Moon Phases
Aplicacion web
Javascript - REACT - HTML- CSS - Open_AI - Open_meteo
Desarrollada con
REACT
HTML
CSS
Javascript
OpenMeteo
REACT
HTML
CSS
Javascript
OpenMeteo
Proporciona el horario de inicio del amanecer y del anochecer para un ubicación determinada, además de la fase lunar actual y la próxima luna llena, en cualquier lugar del mundo.
Introduciendo una localidad (utiliza tildes para minimizar errores), o un código postal, te devuelve el horario del amanecer y del anochecer adaptados a cualquier ciudad, además de la fase lunar actual y la fecha de la próxima luna llena.
Utiliza los horarios recibidos de datos meteorológicos oficiales. También puedes afinar la búsqueda para el lugar en que te encuentres o quieras localizar usando el código postal (solo España). Evita confusiones con otras ciudades mundiales con el mismo nombre (Sudamérica).
Simplemente introduce la localidad o el código postal y pulsa enter, o el botón consultar, para obtener la respuest
App De Gestión de Proyectos
Aplicacion web
Desarrollada con
HTML
CSS
Javascript
HTML
CSS
Javascript
HTML
CSS
Javascript
Javascript - HTML- CSS
Una aplicación destinada a la gestión y seguimiento de las tareas de un proyecto.
Las tareas se pueden crear, eliminar y pasar a cualquiera de los estados disponibles, ya sea hacia la derecha como la izquierda(de iniciadas a completadas o viceversa).
Se pueden mover entre los diferentes estados usando las flechas disponibles o arrastrando y soltando.
Se guardan automáticamente en la memoria del navegador, asegurando que estén disponibles la próxima vez que utilices la aplicación.
Desarrollada durante el bootcamp Full Stack de Campus Dual del Cluster Tic Galicia
App Para el minteo de nft
Aplicacion web
Desarrollada con
SOLIDITY
NEXT
Javascript
CSS
Ethers.js
IPFS
SOLIDITY
NEXT
Javascript
CSS
Ethers.js
IPFS
SOLIDITY - FOUNDRY - Javascript - REACT - Next - HTML- CSS - Ethers - IPFS
Desarrollada durante el bootcamp Blockchain
Puedes mintear uno de los NFT con fantásticas imágenes de planetas del Sistema Solar creadas por la NASA
Hay 20 diferentes, puedes descubrir cual es siguiente minteándolo para ti.
Los NFT que ya hayan sido emitidos se irán mostrando en la Dapp.
Tienen un coste simbólico de 0,01 ether (ether de pruebas).
Una vez que lo hayas minteado puedes agregarlo a tu wallet utilizando su ID.