The GenericSuite software library

The GenericSuite software library

The GenericSuite software library

GenericSuite is a comprehensive software library designed for backend and frontend App development in Python and React.js, including AI features.

https://genericsuite.carlosjramirez.com/

 

What is the GenericSuite for?

The GenericSuite is a frontend and backend set of utilities made with ReactJS and Python to help develop Apps faster.

Features:

  • Generic CRUD database and endpoints: by having a core Create-Read-Update-Delete code that can be parametrized & extended, there’s no need to rewrite code for each table editor.
  • Generic menu and endpoints builder.
  • Database abstractor: The backend can use DynamoDB or MongoDB as the persistent storage, and some software design patterns have been used there (factory method, facade, iterator, template method, decorator). The most remarkable thing about it was to implement DynamoDB access by a MongoDB-styled syntax.
  • Framework abstractor: to develop Apps with FastAPI, Chalice or Flask seamlessly.

Click here to check the Repositories 

The GenericSuite AI

The GenericSuite AI is a frontend and backend set of utilities made with ReactJS and Python to help develop Apps that implements AI.

Features:

  • ai_chatbot endpoint to implement NLP conversations based on OpenAI or Langchain APIs.
  • OpenAI, Google Gemini, Anthropic, Ollama, and Hugging Face models handling.
  • Clarifai models and embeddings handling.
  • Computer vision (OpenAI GPT4 Vision, Google Gemini Vision, Clarifai Vision).
  • Speech-to-text processing (OpenAI Whisper, Clarifai Audio Models).
  • Text-to-speech (OpenAI TTS-1, Clarifai Audio Models).
  • Image generator (OpenAI DALL-E 3, Google Gemini Image, Clarifai Image Models).
  • Vector indexers (FAISS, Chroma, Clarifai, Vectara, Weaviate, MongoDBAtlasVectorSearch)
  • Embedders (OpenAI, Hugging Face, Clarifai, Bedrock, Cohere, Ollama)
  • Web search tool.
  • Webpage scrapping and analyzing tool.
  • JSON, PDF, Git and YouTube readers.
  • Language translation tools.
  • Chats stored in the Database.
  • User Plan, OpenAI API key and model name attributes in the user profile, to allow free plan users to use Models at their own expenses.

Click here to check the Repositories

History

I learned this idea of the generic CRUD editor and the other elements generated with generic programming from structured configurations in the mid-80s, working for a company that already handled this idea using the fashionable languages and databases of the time (Clipper and dBase III), with the configurations generated by a system called System Maker and stored in the database. A concept that, in my opinion, was way ahead of its time.

In 1999 and 2000 I made my own version of the generic CRUD editor in Microsoft ASP (Active Server Pages) for a CMS (Content Management System), something like what WordPress does.

During the pandemic of 2020, I came up with the idea of creating a new App (FynApp) and started the development of the generic editor for frontend in React.js based on Class Components, (more information here) and the backend in Python (more information here), with the configurations in structures specified in the same code.

At the beginning of 2023 I started converting the generic editor to React.js based on Functional Components and the configurations in JSON files.

During PyCon Colombia in June 2023, I had the idea of bringing generic programming to the backend. I started to code the CRUD handlers and the Menu and Endpoints automatic generation from the same configurations used by the frontend generic CRUD editor, using JSON files stored in a repository common to both frontend and backend.

The appearance of ChatGPT at the end of 2022 and the AI (Artificial Intelligence) boom, made me very curious and eager to include some of that in FynApp.

In July 2023 I participated in the lablab.ai Google Vertex AI Hackathon and that gave me the ideas to create FynBot: the artificial intelligence assistant for FynApp, based on OpenAI APIs and later GPT Functions.

Between August and November 2023 I explored and included AI image and audio generation in the App.

In December 2023 I decided to implement generic programming using Langchain for Python, to use any LLM / NLP / Embeddings models  and avoid being tied to a single AI provider.

In February 2024 I started extracting all the generic programming from FynApp and there The GenericSuite was born. The first version was published at the beginning of March 2024 and the ready betty libraries were published in NPMJS and Pypi at the beginning of April 2024.

Click here to check the NPM / Pypi Libraries

This is my first contribution to the open source community.

 

FynApp: an App to achieve Calorie Deficit

FynApp: an App to achieve Calorie Deficit

FynApp: an App to achieve Calorie Deficit

FynApp is nutrition in your pocket. An App to achieve Calorie Deficit, weight loss goals and maintain a better lifestyle, based on proper nutrition.

Technical Specs

Frontend: has the remarkable Generic CRUD Editor [GCE], a React component to help develop back-office apps faster.

By having a core Create-Read-Update-Delete code that can be parametrized & extended, there’s no need to rewrite code for each table editor.

I did before in other programming languages over the years, like Microsoft ASP in the early Y20K.

The intention is to transform it into an NPM package.

Backend: can use DynamoDB or MongoDB as the persistent storage.

Some software design patterns have been used, like factory method, facade, iterator, template method, decorator.

The most remarkable thing about it was to implement DynamoDB access by a MongoDB-styled syntax.

Gitops/Devops: scripts and configurations necessary to carry out deployments on different platforms (local development servers and VPS), with orchestration technologies such as Kubernetes, artifacts & repository management with Jfrog, Docker, Gitlab, and Gitlab Runners

Tools

This application was built using:

 

Frontend

Backend

  • Python 3, Chalice, JWT
  • MongoDB Atlas, AWS DynamoDB
  • GenericSuite

GitOps / DevOps

  • AWS
  • Kubernetes, Docker
  • Github
  • Jfrog
  • Linux, Bash

Mobile (about to come)

  • Flutter

Live Demo

🔗 Link to the live Demo:

https://app-demo.fynapp.com/

Dynamic NFT Dapp with Chainlink Keeper and IPFS

Dynamic NFT Dapp with Chainlink Keeper and IPFS

Dynamic NFT Dapp with Chainlink Keeper and IPFS

Dynamic NFT Dapp with Chainlink Keeper and IPFS: App create a dynamic Ethereum NFT which changes its metadata depending on certain defined conditions, in this case a time lapse.

It uses Keeper service from Chainlink, IPFS, Hardhat, React, Goerli Faucet and Solidity programming language.

This projec is based on the Dinamic NFT master class by Camilo Molano during the Platzi’s 2022 Ethereum Developer Program de Plazi.

https://platzi.com/clases/3235-ethereum-dev-program/52575-08_220712_eth/

It belongs to my Development Portfolio.

What is Solidity?

Solidity is a high-level contract-oriented language.

Its syntax is like JavaScript and it’s specifically focused on the Ethereum Virtual Machine (EVM).

Solidity is statically typed and accepts, among other things, inheritances, libraries, and complex user-defined types.

What is Chainlink’s Automation

Chainlink’s Automation (previously named “Chainlink Keepers”) is a decentralized off-chain computing layer to automate smart contract functions and introduce new features to dApp.

Developers no longer must carry out processes manually, rely on centralized servers, or make changes to their protocol in order to automate on-chain functions when certain conditions are met. Instead, they can delegate that task to Chainlink Keepers.

Website link: https://chain.link/automation 

What is IPFS

IPFS or Interplanetary File System, is a decentralized file system that seeks to guarantee the security, privacy, and resistance to censorship of your data.

It is the mechanism used in Web3 and Blockchain to allow file persistence without having to use centralized services such as AWS S3 Buckets.

Github

The source code link is:

https://github.com/tomkat-cr/platziretoDNFT

Pokémon Factory Ethereum smart contract

Pokémon Factory Ethereum smart contract

Pokémon Factory Ethereum smart contract

Pokémon Factory: Ethereum smart contract to generate Pokemons, with their skills, types, and weaknesses. Developed using the Solidity language.

It was the first Smart Contract I deployed, as part of Platzi’s Ethereum Developer Program.

It is part of my Development Portfolio.

What is Solidity?

Solidity is a high-level contract-oriented language.

Its syntax is like JavaScript and it’s specifically focused on the Ethereum Virtual Machine (EVM).

Solidity is statically typed and accepts, among other things, inheritances, libraries, and complex user-defined types.