Skip to content

💻 Projects

Network Parameters Signer🔗

AgTrace (Web page)

October 2021 - November 2021

It is very difficult to create a blockchain project with Corda Open Source blockchain due that some crypto artifacts are very difficult to create. One of the most important artifacts are the network parameters. The Network Parameters is a crypto artifact that established the value of some network parameters, this crypto artifact should be accepted by all the nodes on a Corda Network, creating a consensus about the proposed parameters. The Network Parameters file should be signed by the network administrator and spread across all nodes. The R3 team was developing an experimental tool to create and sign this artifact but this tool was incomplete. I fixed some bugs and completed the most important functionalities of this tool and now it is completely functional. The Corda Network Parameters Signer is a tool that can be used for create the network parameter. This tool automates the creation of this artifact using a simple command line where you can pass the configuration.

  • Extended the commands of the command line adding more options to create a more personalized artifact.
  • JSON format was used to obtain a standardized input format for the artifact options.
  • Created the necessaries modifications to edit the fields of the artifact that could not be edited previously.
  • Implemented the functionalities to sign the artifact data structure using X509 certificates.
Stack:
Corda, Kotlin
keywords:
Blockchain, Cryptography, Public Key Infrastructure, Cryptographic Certificates, Asymmetric Cryptography, X509 Certificates, Command Line Application.

RainyelLedger🔗

April 2021 - November 2021

RainyelLedger is a permissioned blockchain platform that is capable of execute smart contracts programmed with ink!. The request to the contract storage is made via RPC and authorization of administrators is necessary to join the network. Instantiation of the smart contracts on the network is only authorized to administrators.

  • Created a Docker image for Substrate node template with only 3 GB, half of Docker image used by Substrate.
  • Added and configured contract pallet to the node to execute smart contracts using ink!.
  • Added and configured node authorization pallet to give access to the network to specific nodes creating a permissioned network.
  • Implemented RPC calls to contracts adding the functionality of query the contract storage.
  • Added and configured a custom pallet that use the sudo pallet and the contract pallet to give access to sudo origin for contract instantiation.
  • Modified the contract pallet to create feeless smart contract execution.
Stack:
Rust, Substrate, ink!, Docker, Polkadot
keywords:
Blockchain, Cryptography, Distributed Systems, Smart Contracts.

GoLittlePorjects🔗

February 2021 - Ongoing

Little Go projects for training. The idea of this repo is to solved exercises using Go. You can find here solved exercises using heap, red black trees, bfs, dfs, trie, etc. using Go.

Stack:
Go (Golang)
keywords:
Data Structures, Algorithms, Design and Analisys of Algorithms, Recursivity, Backtracking, Graphs, Graphs Algorithms.

RayTok🔗

January 2021 - January 2021

RayTok is a simple smart contract implemented using Solidity that follow the ERC721 token (Non Fungible Token, NFT) interface. It has the special capability to store the hash of the NFT data, this avoid modification of the data on the offchain storage.

  • Tested the smart contract using Ganache to find bugs prior to instantiation on the network.
  • Deployed the smart contract on Ropsten testnet to test it on a realistic environment.
  • Used OpenZeppelin contracts to create a more secure and error prune implementation.
  • Modified the mint function to store the hash of the data onchain for avoid modifications of the NFT offchain.
Stack:
Truffle, Solidity, Ganache, OpenZeppelin, Metamask, NodeJS, Geth, Etherscan.
keywords:
Blockchain, Cryptography, Asymmetric Cryptography, Hash, Asymetric Encryption.

Blockchain system for medical records storage.🔗

Undergraduate thesis project

March 2020 - August 2020

Cuban health care system work with physical health records, some efforts for digitalize health records has been realized but using centralized databases. In this project is implemented a functional prototype for electronic health record storage using Hyerledger Fabric.

  • Designed and implemented a Hyperledger Fabric network.
  • Designed digital medical records using the Observational Medical Outcomes Partnership (OMOP) standard as assets to be saved on a blockchain.
  • Designed and implemented a smart contract (chaincode) to save, list and modify digital medical records on a Hyperledger Fabric network.
  • Designed and implemented a web server to communicate with the blockchain network.
  • Designed and implemented a web application to interact with the blockchain network.
Stack:
Node.js, Hyperledger Fabric, Adminbro, Docker, Docker Compose, Convector, TypeScript, Hurley, Express.js.
keywords:
Blockchain, eHealth, Healthcare, Cryptography, Distributed Systems, Smart Contracts, Electronic Health Records.

Automatic Advertisement Classifier🔗

December 2019 - January 2020

An automated advertisement classifier for www.revolico.com (biggest classified advertisement website in Cuba).

  • Improved classifier model accuracy to 82%.
  • Realized the preprocessing of the data set using techniques like lemmatizing, word substitution and others to improve results.
  • Implemented different data representation like word frequency matrix, idf tf matrix, n-gram representation matrix and others to analize performance of the model.
  • Compared Naive Bayes, Decision Trees, KNN, Random Forest, Support Vector Machine and Neural Networks using different criteria like accuracy and others.
  • Plot learning curves to analyze overfitting, underfitting, model accuracy, and others metrics to improve the model.

Others creators:

  • Frank Elier
  • Alejandro Ramirez Comezañas
  • Luis Alberto Díaz Borge
Stack:
Scikit-learn, Keras, Python, Numpy, Matplotlib, Scrapy, NLTK.
keywords:
Artificial Intelligence, Machine Learning, Support Vector Machine, Random Forest, Naive Bayes, Text Classification.

Recognition Cuban Entities System🔗

November 2019 - December 2019

Implemented a recognition cuban entities system using neural networks and conditional random fields (CRF) in a small dataset.

Others creators:

Stack:
Python, Keras, Scikit-learn, Numpy, Pandas, Matplotlib.
keywords:
Artificial Intelligence, Deep Learning, Neural Networks, Text Classification.

COOL Interpreter🔗

July 2019 - August 2019

Implemented a COOL (Classroom Object Oriented Language) interpreter with type inference functionality.

  • Created the regular expressions used by the lexer to tokenize (parse) the program string.
  • Implemented functions to analyse the token priority to help to the lexer to disambiguate the program string.
  • Designed and implemented the nodes of the Abstract Syntax Tree (AST) and the hierarchy between them.
  • Designed the Attributed Grammar and its methods to parse the program string and create the AST.
  • Designed and implemented the semantic checker to check the correctness of the semantic in the AST.
  • Used the visitor pattern to move between the nodes of the AST and apply the necessary functions to analyse the program string.
  • Designed and implemented an object that can be used to define the differents scopes inside the program string, helping to keep the necessary data in a structured and organized way while visiting the nodes of the AST.
  • Designed and implemented an object that using a mixture of top down and bottom up approach and some heuristics it can infer the static type of variables, methods, parameters, etc. in the AST of COOL.
  • Designed and implemented an object to execute the COOL program using Python instructions and expressions.
Stack:
Python, PLY
keywords:
Compiler Theory, Compiler, Code Generation, Parser, Lexer, Interpreter, Type Inference, Abstract Syntax Tree, Attributed Grammar.

GrammarAnalyzer🔗

July 2019 - August 2019

Created a website for show analysis for grammars and words.

Stack:
Python, PLY, Pydot, Graphviz, Docker, Flask
keywords:
Compiler Theory, Parser, Lexer, Abstract Syntax Tree, Attributed Grammar.

COOL Compiler🔗

November 2018 - June 2019

Created a COOL (Classroom Object Oriented Language) compiler for MIPS.

Others creators:

Stack:
Python, PLY, SPIM (MIPS Simulator).
keywords:
Compiler Theory, Compiler, Code Generation, Parser, Lexer, Abstract Syntax Tree, Attributed Grammar.

Algorithm Visualization Website🔗

March 2019 - May 2019

Implemented a website for algorithm visualization.

Others creators:

Stack:
Python, Bokeh, HTML
keywords:
Web Development, Newton Algorithm, Bisection Algorithm.

BabySitter Robots🔗

March 2019 - April 2019

Funny simulation project about babysitter robots living in a matrix.

Others creators:

Stack:
Prolog
keywords:
Simulation, Logical Programming, Declarative Programming, Breadth-First Search (BFS)

Distributed Content Management System🔗

October 2018 - December 2018

Implemented a Chord DHT (distributed hash table) adding crash fault tolerance (CFT) functionality to a Distributed CMS (Content Management System).

  • Created Ansible roles and playbook to automate the creation of the test network.
  • Modified and implemented the Chord algorithms to get a crash fault tolerant network.
  • Implemented a simple website used to interact with the system.
  • Developed a node discovery system, using broadcast, to automatically find all nodes on a local network.
  • Used multiprocessing and multithreading to parallelize services execution inside a single node, speeding up the program execution.
  • Implemented a cache service inside the node to improve the time of data delivered and decreased the network traffic.
  • Implemented a service that connect to the node database and can be used to avoid the direct manipulation of the database decreasing the amount of errors related to direct manipulation.
  • Used Python type hints to decreased the runtime errors in the program related to dynamic typing.

Others creators:

Stack:
Jinja2, Pyro4, Python, Flask, Docker, Docker-Compose, Ansible, SQLite3
keywords:
Distributed Systems, Chord, Distributed Hash Tables, Distributed Apps, Networking.

Database Management System🔗

February 2018 - June 2018

Implemented a database management system.

Stack:
Python, SQLite, Django, HTML, Docker
keywords:
Database Design, Database Management, Web Development.

Real Estate Website🔗

December 2017 - June 2018

Implemented a real estate rental website.

Others creators:

Stack:
C#, ASP.NET, HTML, TypeScript, Razor, Entity Framework, SQL Server
keywords:
Web Development, Backend Development, Database Design, Database Management, Software Engineering, Pair Programming, Agile Methodologies, UI/UX Design.

C Web Server🔗

November 2017 - November 2017

  • Used fork function for create new process.
  • Used send function to send files.
  • Used socket to communicate with browser.

Others creators:

Stack:
C
keywords:
Web Server, Low-Level Programming.

SnakASM🔗

November 2016 - December 2016

Implemented a very funny snake game in x86 assembly.

Stack:
Assembly (x86), SASM, NASM, Quemu
keywords:
Low Level Programming, Snake Game, Games, Ascii Art, Virtualization, Assembler.

C# Little Projects🔗

September 2015 - July 2016

TODO - Write description

Stack:
C# (C Sharp)
keywords:
Programming, Algorithms, Object Oriented Programming (OOP), Backtracking, Recursivity.

Last update: October 18, 2023