Inspiration
I have personally talked with many of the small vendors, artists and shopkeepers and almost all of them were sad by the fact that they were not able to make any impact and their customer-engagement and retrieval ratios are very bad and that is why they are not able to properly utilize their talent into a fully-fledged flourishing business. I thought about the same and realized that something has to be done regarding this and the bridge between the right customers and the right, potential brands (sellers) is the need of the hour and that is how I started working on the project: Openshift Hub.
I chose the name Openshift Hub because it is deployed on the Openshift platform and acts as the hub/bridge between the two very important entities of the real market- Customers and sellers
I have used Data Science Hub, Service Binding, Templates, Build Configuration Webhooks, Intel OpenVINO model, Code Dev Spaces and much more to make the project alive. Not only the services, I used various languages in my project, like Python, PHP, Vanilla JS, & Node js
What it does
The project comprises of 3-distinct services, that are: A website (solely for the sellers), a Browser Extension (for customers/buyers) and a WhatsApp bot (that provides a unique way for buyers to interact with the project even if they are not using any PC/laptop). All three of them combined together make a lethal and technologically advanced project that is trying to make some positive change in the world.
Website functionalities:
The website can be found as the openshift-app container and the same can be accessed by going to this PHP-based route.
1) The brands can maintain a digital inventory of their items and can easily delete them whenever they feel the need.
2) They can leverage the Flask-based ML algorithm: Zero Shot Image Classification, that can use a set of labels and test each of them against the image to return the labels with the highest probability of having each of them.
Why I use CLIP Zero-Shot Image Classification?
The reason behind this is I wanted to use an algorithm that can actually look after a certain number of input labels that are of concern. So, with CLIP, I can rest assured that the processing will be done against those product labels that are already present on the application and if somehow a new product comes in, then the brand can add the new tag and thus the INFERENCE & LEARNING phase of the model doesn't end ever and continues forever making the model very effective in my case.
3) They can use the ANALYTICS page to view important data points related to the demographics of the application and thus can strategize their next marketing plan and can even send promotional emails to filtered customers so that they are targeting the right audience without any third-party tool at the right time.
Extension's functionalities
The extension can be found in the testing instructions and you can access the same by following them.
1) Customers can use it to get personalized recommendations that will be tailor-made according to their information (age, gender and interest of companies). So, it is very different from the age-old way of recommendation where other people can also shape the items that you will be seeing in the recommendations section. So, it is see what you like, not others.
2) The products can be looped in/seen by the customers through the Brands section, from where they can either break their query with certain parameters, or can use the text to SQL AI functionality to actually return data points after writing a textual query, or even using the CLIP Zero Model right into the small extension window to get valuable results in return.
How does the CLIP Zero Model work here? So, when an image is uploaded to the extension, it runs the ML algorithm and returns with the TOP 4 labels of products that are actually in the frame. Isn't that great? It is because you can just provide it with a picture of a room (for example) and it can return all of the product information that is present both in the ROOM and in the project inventory.
3) Can use the Reward section to see how many digital accolades they have gathered as of now.
4) Feedback section can be used to communicate directly with one of the brand's representatives and send them your query via email. This not only is great, but this section uses AI text-to-text generation so that you get the maximum output by writing the minimum.
Enclose your input text prompt into asterisks (*) and hit Enter to get a text output for your written query.

Wait for a couple of seconds, and then the feedback text input will be populated by the AI output
5) Not only they can view the products, but can also place orders from the extension. There is a dedicated checkout page that can be accessed to complete the purchase via Square Web Payments SDK and this makes an entire circle for the customers.
They can also use WhatsApp integration to chat with the project even when they can't use the extension.

🟡 Start the conversation: The buyer can actually type in any phrase and if the phrase is not according to the expected inputs, then the above-shown output will be provided by the Chatbot. It will guide you about the various keywords that can be used to get some meaningful results back and is a great way to recapitulate the same.

🟢 Brands endpoint: When you type the Brands keyword, the bot will provide you with the brand names that are registered with the project (on the website to be specific)

🟠 Products of a brand: If one has to fetch the products for a particular brand, then it can be done using the keyword brands/{brandName} and the response will be syntactically tailored according to the WhatsApp markup and will display all of the important stuff about the product

🟢 About a brand: This endpoint will give a small description/summary about the requested brand so that the buyer can have a look at it

🟣 Buyer Details: If the buyer wants to see his/her registered details, then this endpoint can be used. It basically contains a great field, NOTIFICATIONS and the buyer can toggle it via the nudge command

🔴 Nudge: For a buyer, it is not possible to always be online and thus it may be hard to track the newly added products by a brand. So, through this nudge endpoint, the user can turn on/off the new products' addition notification for the brands of his/her interests. Say, the buyer is interested in clothing brands and Adidas is a registered company that deals in the clothing space. So, when Adidas will add a product, then the buyer will be sent a notification. Isn't that great, because it lets the user be notified about the products of his/her interest and thus the buyer will always be informed about the latest updates within the project.
The below image shows the notification that is dropped for the same in the buyers' WhatsApp account:

How I built it
Have a look at the last section of my GitHub repo's README, I have mentioned this there.
Challenges I ran into
- I was working with the Data Science Hub all the time to get my Zeo-shot image classification model up and running and after 4 days of hard work I finalized the ipynb notebook and wanted to serve the model by converting it into OpenVINO IR format and then serving it via MODEL SERVER. However, after having a meeting with RedHat's Senior SDEs and Intel's Senior Cloud Architect, I got to know that I will not be able to serve the model due to Sandbox's limitations and the higher dependencies requirement of the model
I was completely shattered after learning the fact, but I gathered hope and served the model via a Flask-based application. Even there, after many attempts, I got to know that I had to tweak the memory resource limits to get it working.
Making a service binding for the database connection was extremely difficult.
From not knowing anything about Kubernetes to deploying a fully functional app was challenging.
Accomplishments that I'm proud of
Learning Kubernetes, knowing about YAML and their structures (use-cases)
Mastering the OC CLI and knowing about many commands that others might not be even aware of.
Integrating 3 languages into a single project.
Integrating one of the latest ML models into the application
What I learnt
Each and everything about Openshift and Kubernetes, Intel OpenVINO
Log in or sign up for Devpost to join the conversation.