Fictionally Irrelevant.

Side Projects 2023

Cover Image for Side Projects 2023
Harshit Singhai
Harshit Singhai

Over the years, I have worked on a variety of personal projects in my free time, ranging from web apps to machine learning to Data Engineering to Web3. In this collection, you will find a selection of my most interesting and successful projects, each with its own unique challenges and accomplishments. I hope you enjoy exploring them as much as I enjoyed creating them!

Nemo

https://nemo-landing-page.netlify.app/

Nemo is your little helper and companion no matter if you need to focus, tune out other noises or if you want to have a moment of calm and relaxation.

With Nemo you can mix and match different sounds to create your perfect environment. In places where it is either too loud or too quiet, Nemo helps to mask annoying noises and to create a pleasant environment in order to stay focused and relax.

Nemo analytics help you keep track of your productivity and focussed session with weekly insights and much more.

Get Started https://nemo-app.netlify.app/

Find out more:

  1. Be productive with Nemo
  2. Nemo - Your digital place for focus
  3. About us

Source code:

  1. Nemo Frontend (React)
  2. Nemo Backend (Python)
  3. Nemo Landing Page (Next JS)
  4. CI/CD (Github Actions)

Nemo Hirefolio

https://nemo-hirefolio.netlify.app/

Do you ever lose track of job applications, deadlines, and important contacts? If so, you're not alone. The job search can be a chaotic and overwhelming experience, but it doesn't have to be.

Nemo HireFolio is a new app that takes the stress out of your job search and helps you stay organized and efficient every step of the way.

With HireFolio, you can:

  1. Effortlessly track every detail: Create a custom grid to capture company names, job titles, application status, notes, contacts, and more.
  2. Stay organized, stay focused: Sort and filter information to identify leads, prioritize tasks, and stay on top of your job search progress.
  3. Work efficiently,save time: Say goodbye to tedious form-filling and manual saving. HireFolio's intuitive interface lets you make updates directly within the grid, instantly capturing every detail without disrupting your flow.
  4. Keep your information secure: Rest assured that your valuable job search data is protected with secure storage and password hashing.
  5. Enjoy a seamless experience: Benefit from a simple, intuitive interface that's easy to use and navigate.

Get Started https://nemo-hirefolio.netlify.app/

Find out more: Introducing Nemo Hirefolio

Source code: https://github.com/harshitsinghai77/nemo-hirefolio

Nemo Thread

https://nemothread-1-e7133226.deta.app/

DEPRECATED - Due to recent changes in Twitter's free tier API policy, we've reached a dead end. We regret to inform you that Nemo Threads can no longer fly.

Are you tired of losing track of those amazing Twitter threads you come across? Do you wish there was an easier way to save and organize them? Introducing Nemo Threads – the solution to all your Twitter thread woes.

With Nemo Threads, you can create your own wall of favorite threads, all in one convenient place. And if you want to see what threads your friends are saving, simply check out their public Nemo Threads wall with their Twitter handle.

But that's not all – Nemo Threads is completely free and doesn't even require a sign-up process. And, as a bonus, it's brought to you by the creators of Nemo – a helpful tool for increasing productivity, relaxation, and focus.

Saving Twitter threads have never been easier. No sign up required. Just tag @focus_with_nemo and you're done.

Get Started Nemo Threads

Find out more: Introducing Nemo Thread

Source Code https://github.com/harshitsinghai77/nemo-thread

Nemo Lofi

https://nemo-lofi.netlify.app/

DEPRECATED - Youtube policy changes broke music streaming, so we had to say goodbye.

Nemo Lofi is a lofi music player by Nemo that allows you to listen to lofi sounds to help you focus, be productive and get work done. Nemo makes it perfect for listening to while you work, study or simply want to unwind. With Nemo Lofi, you can choose from a variety of lofi tracks to suit your mood and needs.

Nemo lofi lets you choose from a variety of lofi tracks to suit your mood and needs. All you have to do is select the track you want to listen to and set a timer for how long you want to listen. Nemo Lofi will then play the track for the specified amount of time, allowing you to focus and get work done.

Get Started Nemo Lofi (DEPRECATED - Youtube policy changes broke music streaming, so we had to say goodbye. )

Find out more: Introducing Nemo Lofi

Source code: Nemo Lofi Frontend

WeBase

https://webaseai.netlify.app/

WeBase - Making AI Simple. WeBase aims to make advanced AI accessible for users with it’s simple to use interface.

Easily use most common machine learning models with a simple API call.

  1. AI for All - Ready to use deployable models for various industries such as Healthcare, Entertainment, E-Commerce and many more
  2. Ease-of-use - Use WeBase’s simple graphical user interface to train, evaluate, improve, and deploy models based on your data. You’re only a few minutes away from your own custom deep learning model.
  3. Save time and Effort - AI as a service allows users to save both time and effort, so that they can focus on more important.things.
  4. Story so far - WeBase provides a wide array of models like NSFW classification, removing image background, colorize B/W image, gender classification, object detection, face recognition, neural style transfer, summarize text, sentiment analysis, and much more.





Get Started https://app-webase.netlify.app/

Check WeBase on Youtube https://www.youtube.com/watch?v=buU5tFiB_qQ&ab_channel=HarshitSinghai

For detailed architecture and ML used, check out https://fictionally-irrelevant.vercel.app/posts/introducing-webase

Source Code https://github.com/harshitsinghai77/webase

Test Credentials
Email - harshitsinghai77@gmail.com
Password - Pass@12345

Note: Some app features won't work because the hosting limit has been exceeded. ML models were initially deployed for free in gcp/aws. But due to free tier limit and unable to pay for the cloud bills (need 💰💰💰 for AWS/GCP bill), the backend serving the app has automatically been termnined. Some features might still work as different ML endpoint were hosted in different cloud providers.

AI Generated MessiNFT using Flow and Cadence

https://messi-nft.netlify.app/

As someone who is passionate about both art and technology, I am always looking for new ways to combine these two worlds. That's why I was excited to explore the world of NFTs and the potential they have for creating unique, digital art experiences.

Mint your own AI Generated MessiNFT 🐐 on Flow blockchain.

Experience the future of art with AI generated Messi NFTs on Flow.

AI images are generated using Stable Diffusion and Dreambooth.

Get Started https://messi-nft.netlify.app/

Read more about MessiNFT here https://fictionally-irrelevant.vercel.app/posts/ai-generated-messi-nft-on-flow-web3

Source Code https://github.com/harshitsinghai77/messi-ai-generated-nft-flow-cadence

SignatureDAO

https://signature-dao.netlify.app/

Your NFT Signature is an identity you can use in the Web3 world, any way you want!

Introducing the personalized Signature NFT - a unique and one-of-a-kind digital asset that is all your own. Type or draw your signature, and claim it to receive your very own NFT on your address. Use it as your digital identity, signature, or anything else you can imagine. With your personalized Signature NFT, the possibilities are endless. Claim your spot now and join the revolution!"

Be a part of the revolution, get the early mover advantage, and support and grow with the best decentralized communities as a core member of the incredible One Million Signature DAO.

Own a Signature NFT and gain access to a whole world of upcoming airdrops, reward NFTs, and much more!

Our vision is to creating a fair and transparent system to support artists, developers and community members of the emerging NFT, DeFi and metaverse space.

Get Started https://signature-dao.netlify.app/

Contract in Polygon Polygon Mumbai Test

NFT in Opensea Opensea Collection

Read more about SignatureDao here https://fictionally-irrelevant.vercel.app/posts/signature-dao

Source Code github.com/harshitsinghai77/signatureDao

Loop

https://loop-web3.netlify.app/ https://cautious-palm-tree.vercel.app/

Supporting creators 3.0. A platform that helps you support your favourite creators without draining your pockets.

A platform where people can support their favourite creators. To support creators they stake some amount in the creator's pool, this complete amount can be withdrawn and creators get the interest generated!

We're all familiar with how we support creators in the Web2 world. We have been picking our brains to figure out how we would make this a better experience on Web3. Loop is a content-creator-first platform built to address the needs of Creator 3.0.

Imagine if you could support your favorite creators without actually spending anything!

Behind the scenes, we're using the Aave protocol to stake user funds and generate interest. The users can get their funds back anytime and the creators can withdraw the interest generated on the pool.

With Loop, creators can also LIVE stream their content and do much more.

Get Started https://loop-web3.netlify.app/

ETH Global showcase.ethglobal.com/web3jam/loop

Loop on Youtube https://www.youtube.com/watch?v=rM7JOhKNZjY

Blog https://fictionally-irrelevant.vercel.app/posts/introducing-loop

Source Code github.com/harshitsinghai77/web3-loop

UbeGrants

https://ube-grants.vercel.app/

UbeGrants is a Hackathon project that allows for milestone-based payments using smart contracts.

Ubeswap is in the process of transitioning platform decision making to the Ubeswap DAO (composed of all UBE holders). In order to facilitate contracts and grants fulfillment by the DAO, we have developed a set of smart contracts with the following functions:

  1. Milestone-based payments: The DAO can transfer a grant lump sum to the contract, which will then disburse the grant according to pre-determined milestone completion dates and amounts.
  2. Milestone payment approval and cancellation: A DAO Agent multisig wallet has the ability to approve or cancel milestone payments. If a grant's milestones are not met, the funds will be returned to the DAO. These contracts are written in Solidity and are built using the Hardhat Ethereum development environment.

Gitcoin

Here's the problem statement: https://gitcoin.co/issue/29600

Live URLs

  1. Subgraph: https://thegraph.com/hosted-service/subgraph/shreyaspapi/ubegrants
  2. Frontend: http://ube-grants.vercel.app/

Installation

To use these contracts, you will need to have the following installed:

  1. Solidity
  2. Hardhat

Once these dependencies are installed, you can clone this repository and install the remaining dependencies by running npm install in the project directory.

Backend

The contracts are written in solidity and are deployed on the Goerli and CELO alfregos testnets. You can view the contract on the Goerli etherscan here: goerli.etherscan.io/address/

Contracts: contracts/UbeMilestones.sol

Frontend

Frontend is written in react and allows users to interact with the contracts on the blockchain.

Web3 Build

Opensea NFT

Here are my buildspace cohort NFT's

Created and deployed multiple web3 projects as part of Buildspace builds.

Noiist

https://noiist.netlify.app/

  1. Start your morning with Noiist - Get personalized spotify music recommendation directly to your inbox every day based on what you listened the previous day. Make your morning better with ☕ and Noiist.
  2. Recommendation Engine - We built our own in-house recommender system to give you the best recommendations. It will only become better and more robust with time.
  3. Recommendations who catch upto you - We only take into account what you listened the previous day and not your historical data. This ensures our recommender system banks on what you're listening at the moment and recommend music based on your latest trend.
  4. It will only get better - We plan to give help you get more insights on the type of music you listen, your personality based on what you're listening, your music taste changed over months and much more.

Get Started https://noiist.netlify.app/get-started

Source Code https://github.com/harshitsinghai77/noiist-airflow

Note: The architecture is based on Airflow. The main idea was to learn and create a project using Airflow. Using Airflow was definitely a overkill and the architecture could have been made much better without it. But the purpose was to get hands-on with Airflow.

As I cannot host airflow in cloud (need 💰💰💰 for AWS bill), the project needs manual run at midnight. I use to religiously run the airflow docker container locally on my system at midnight, but I've deserted the project recently (not worth the manual effort just to serve 5 customers).

Pluto AI

https://plutoai.netlify.app/

Convert your favorite shot into any famous artistic painting using Pluto AI.

Pluto uses a TensorFlow implementation of Neural Style Transfer wrapped as a REST API. We also have a custom neural style transfer model https://tinyurl.com/muhz56m8. Using Flask to serve the model. ReactJs to serve frontend. We use Firebase to store user images. Another parameter we record is the user rating of the image. This is for future optimization of our model.

Get Started https://plutoai.netlify.app/




Result

Source Code

  1. https://github.com/harshitsinghai77/pluto
  2. ML Model: https://tinyurl.com/588a8pjc
  3. Custom ML Model: https://tinyurl.com/muhz56m8

Note: Might not work as of now, Heroku Free Dynamo shut down the python app serving the ML model.

ToDoBase

https://todobase.netlify.app/

Todobase is your glorified little helper and companion to keep track of your daily and weekly tasks.

Todobase is just another simpled to-do list glorified to sound cool. It helps you keep track of your tasks and to-do list (just like any other todo app).

I made it during college, so it was kinda big deal back than (not really).

With Nemo you can mix and match different sounds in order to create your perfect environment. Todobase helps you stay on top of your work routine, tasks and todolist.

Source Code github.com/harshitsinghai77/todobase

Peach Pixel

https://peach-pixel.netlify.app

Turn Design Mockups into HTML Code using Deep Learning

Why Peach Pixel?

  1. Difficulty faced by small businesses, local traders and inviduals with no technical background to create a website to showcase their product or service that looks similar or exactly like their requirement - More than 50% of small/medium-sized businesses in India do not have their own website

We use deep learning algorithms for front-end automation. We’ll teach a neural network how to code a basic HTML and CSS website based on a picture of a design mockup.

With Peach Pixel every user (regardless of the amount of technical knowledge they possess) right from a ten year old to sixty five year old can create and deploy a website - which looks exactly like they envisioned it to be - in matter of minutes. The same would be achieved using the following following 5 steps:

Source Code github.com/harshitsinghai77/peach-pixel

EthereumETL

github.com/harshitsinghai77/ethereum-etl

Cetl is a short ETL pipeline that does the following:

  1. Download a fixed set of ethereum blocks (lets say around 20K latest blocks, which should cover ~3 days) as CSV files
  2. Convert into a better format that optimises for storage and retrieval
  3. Load into Kafka for real-time analytics
  4. Load into a columnar store (like Clickhouse) for ad-hoc analysis

Real-time analytics

  1. The moving average of the number of transactions in a block (for a window of 5 blocks)
  2. Total value of gas every hour
  3. Running count of number of transfers sent and received by addresses

Ad-hoc analysis

  1. How many ERC-20 token contracts were found? (token_address gives the address of the ERC-20 contract)
  2. Current balance for any token address (difference between value in transfers involving the address in to_address and from_address)
  3. Highest transaction in a block

Download Blocks using https://github.com/blockchain-etl/ethereum-etl.

Source Code github.com/harshitsinghai77/ethereum-etl

Vocabby

https://gre-word-meaning.vercel.app/

Copy word in clipboard, hover to the website and get word meaning instantly.

Source Code https://github.com/harshitsinghai77/gre-word-meaning

Streek

github.com/harshitsinghai77/streek-data-etl

Boilerplate code to create a REST API using Python, FastAPI, and Postgres.. Includes Pytest, CI/CD pipeline using Github Actions. Using docker-compose to automatically set Docker Posgtres Container and App on a seperate container. CI/CD pipeline will automatically push the most recent build to Docker Hub. Automatic test case -> dump the csv data to Posgtres docker container while running test cases in CI/CD Github Action container to mimic test data.

Source Code https://github.com/harshitsinghai77/streek-data-etl

deployFlag

github.com/harshitsinghai77/deployFlag

deployFlag is boilercode for training machine learning algorithms asynchronous using process or threads using Celery's distributed task queue.

Ocave and deployFlag are distributed services which communicate on a producer consumer system pattern. They both run on seperate machines and interact with each other via a broker service (RabbitMQ).

This can be used for usecases where you want to train a unique machine learning model for each unique user. The model should be lightweighted and minimal. This approach won't be able to train large ML models, might run into memory error.

Source Code github.com/harshitsinghai77/deployFlag

Certility - Fetal Health Classifier using MLOps

https://github.com/harshitsinghai77/mlops-fetal-health-classifier

Boilerplate code to containerized FastAPI Application to classify the health of a fetus as Normal, Suspect or Pathological using Cardiotocograms CTG data.

This dataset contains 2126 records of features extracted from Cardiotocogram exams, which were then classified by three expert obstetritians into 3 classes:

  1. Normal
  2. Suspect
  3. Pathological

Using various classifers to train the dataset and comparing model performance to chose the best model out of all the classifiers. The output is the Accuracy, Recall, Precision, F1 Score of the chosen classifier. Saved the model as .joblib and output the name of the saved model along with the accuracy.

Model deployed in Azure using Azure Machine Learning Studio.

Stackup

github.com/harshitsinghai77/schedule-long-task-using-python-node-go

Boilerplate code to implemented long running task using Node.js+Bull, Python+Celery, and Go.

Long-running tasks usually require time and resources on the servers. For instance, when user trigger off a long running task, there is no way to tap into it and pause/stop/terminate the task, upon realizing that an erroneous request went through from one of the clients (mostly web or pipeline).

Solution:

  1. User can now stop the long-running task at any given point in time, and can choose to resume or terminate it.
  2. This will ensure that the resources like compute/memory/storage/time are used efficiently at our end, and do not go into processing tasks that have already been stopped.

Implemented the REST API in Node, Python and Go to pause/stop/terminate the long running task.

Features:

  1. Schedule a new task
  2. Check progress and status of the task
  3. Pause/Resume the task
  4. Terminate the task
  5. Deploy the container
  6. Increase the sleep time to mimick long-running task.

Running it Locally Go to the specific branch to find out specific language implementation.

  1. Python: /schedule-long-task-using-python-node-go/tree/python-celery
  2. Node: /schedule-long-task-using-python-node-go/tree/node_bull
  3. Go: /schedule-long-task-using-python-node-go/tree/go

Source Code /schedule-long-task-using-python-node-go

Conclusion

That's it, all the side projects that I'm little proud of. Lot of them sounds basic but at the time they were a good learning experience. A lot of the projects are broken because of excessive AWS/GCP bills. I tried to maintain them until a certain point, but eventually gave up. No one really uses the project so It's fruitless to spend time supporting and maintaining them.

I'll be building more projects (hopefully meaningful) in the future. Feel free to reach out to me for collaboration.

That’s it for today, see you soon. :)