Skip to main content

Index

This page contains the list of almost all the projects built by me. All projects have a dedicated page about them, which contains other relevant details about the project.

In order to easily filter projects based on tech stack, please checkout the Filter page (under construction). If while opening the link of some project, you get a 404, it means that the codebase is private (mainly due to academic submissions). These are made public as soon as the semester in college ends.

Hentry#

Hentry, is a hackathon sentry that allows organizers to provide a fair competing platform in the online events. Since plagiarism and re-use are the major problems in such submissions which ruins the spirit of hackathons, It utilizes intelligent algorithms to calculate project entropy and snapshots of participants' projects in real-time and visualizes the same for the organizers as a live graph in a pleasant user interface.

A detailed documentation with video introduction on hentry-server

  • Hentry Server : web server written in TypeScript to act as the service to expose data for hentry-dashboards. Provides routes which utilize Redis-JSON and Redis-TimesSeries to return data for business logic. Handle user creation, team creation, initial dashboard data fetch and polling updates for live graphs.
  • Hentry Client : CLI written in Golang utilizing go-routines for performance โšก which calculates project entropy and snapshots and emits them to hentry-feeder
  • Hentry Feeder : micro service written in GoLang utilizing go-routines for performance, exposes a simple HTTP server to accept requests from henry-client instances running on participants' devices and write data to Redis TimeSeries Database.
  • Hentry Dashboard : a responsive and dynamic single page application build using React and TailWind CSS, designed in a monochrome and minimal UI to focus on important data. Also provisions realtime graphs which render live feed of project status.

UniAuth#

UniAuth is a super ambitious project written as an open source alternative of proprietary SSO services like Google/Facebook/Microsoft SignIn, built around the central idea of privacy, security and consent. It allows the users to maintain a profile with the details they wish, get them verified, completely isolated from their social accounts.

Applications can request specific information from the users while defining their applications, and customize the consent page as per their needs.

While users get security and privacy, developers get to utilize the client libraries written for more than half a dozen(and counting) frameworks across multiple languages. This allows anyone to integrate UniAuth into the project with minimal changes.

A detailed writeup about each of the component is out of scope of this page, please refer the github organization for more details.

Visit the github organization : UniAuth

Full Stack Applications#

  • Executely : full stack application build during the MLH Fellowship Orientation Hackathon, and bagged the first prize in the same. It allows users (mostly students) to upload picture of their hand-written code and execute without installing any application.

    • 0.4.1-Execute.ly-server : server that powers the project, handles data interaction with google cloud and cloud vision APIs, language detection, code execution and OCR processing of the data shared by the frontend.
    • 0.4.1-Execute.ly-frontend : allows the user to upload an image, crop the required portions of the image, and send data tot he server for processing. Once received, allows the user to edit the code and re-run as required.
  • ACM Reverse Coding : ReverseReverse Coding is ACM-VIT's premier event, not only by the number of participants, but also by the requirements of the infra to host the entire event.

    • rc-heimdall : Heimdall is the main micro-service that is responsible for user-management, ingestion of problems from endpoints, providing API endpoints for main user interface, interaction with task-runners, code submission and evaluation. Since this service basically handles all requests from the client and acts as a gate-keeper, it's named Heimdall.
    • https://github.com/YashKumarVerma/rc-broadcaster : Broadcaster is a serverless function written to run on the firebase cloud to generate download links of the questions uploaded by the problem setters in the firebase console. This eliminates firebase as a dependency from other services, and also automatically scales as per the traffic experienced by the system.
    • https://github.com/YashKumarVerma/rc-ide : Simple IDE built on ReactJS to act as an interface to rc-task-runner, and run programs on the task runner. This allows the participants to execute the binaries on the cloud and avoid downloading them on their local systems.
    • https://github.com/YashKumarVerma/rc-task-runner : A bare bone web server which utilizes go-routines and concurrency to execute binaries on the cloud and return the result to the user in realtime. These are written to be run in clusters/pods while sitting behind a load balancer to distribute the workload and give near-realtime results.
  • Coalaborate: since during the pandemic time, all activities have moved online, including team collaboration, academics, research and communication. Coalaborate allows people to use the internet as their notebook, and allows people in the same team to drop comments on any website. Teams can communicate, drop notes, questions and solve queries via the platform.

  • Coin360 : coin360 is a popular webapp which shows live data from various crypto currency feeds in realtime. It includes complex visualizations and realtime updates of bulky data. I wrote this simple prototype which demonstrated how a web application can visualize a large dataset (~25+ MB) in batches, by loading only a tiny subset of data on initial load (200-400KB) and polling for updates in batches. This allows the application to run smooth in systems with low resources.
    • https://github.com/YashKumarVerma/coin360-backend : the backend which uses redis to fetch the large dataset periodically and keep a local index of each of the entry. This allows the frontend to poll for most recent value from the key-value database, and individually update this after processing the bulky dataset. Since this is done on the backend, this does not impact the application's performance.
    • https://github.com/YashKumarVerma/coin360-frontend : single page application written in React to visualize the coin dashboard, showing currencies and their exchange rates. These are updated in batches, and works fluently on low-end systems.
  • Attendance Application : is a portal written for internal consumption at ACM-VIT that allows the club to quickly create events, sessions and slots for attendance. It provisions a rich REST API that can be used by other clients, like mobile applications or web pages to feed data into the system. All the details are then stored on a central server and used for analytics purposes.
    • attendance-frontend : first ReactJS project, consumes the API provided by attendance-backend to visualize a user interface with all features required to operate on the portal.
    • attendance-backend : first TypeScript project, exposes a REST API that is consumed by the frontend to operate on the data points.
  • Octave : Octave is a platform written on MERN stack to play the songs as decided by the attendees of an event. Provides a search feature that relies on the spotify API to search for songs, filter based on explicit tag and allows people to request and up-vote the songs. The song at the top of the chart keeps on playing one after the other.
  • Dolos : A project initiated during HacktoberFest to introduce people to the world of open source. Allows clients to request dummy data in any schema based on their requirements, via simple REST API.
  • ACM Recruitment: backend service to power the recruitment platform for ACM-VIT. Also facilitates viewing submission of each user and user management.

NPM Packages#

  • http-exception-transformer : express.js middleware to handle all sorts of errors in the application and generate a suitable response codes alongwith messages for the client. Also allows users to run custom functions when error encountered. Read More ๐Ÿ”—
  • @uniauth/express-middleware : library to integrate UniAuth based OAuth servers with applications written in express.js.
  • @hackcode/file-preview-page : CLI to generate index page, listing all files and linking them to index.html recursively. Very handy when sharing files via cloud storages like surge.sh, firebase, netlify, vercel, etc.
  • @hackcode/env-example-generator : CLI to generate a .env.example file to list down all environment variables being used by the project. Feature to ignore the variable if variable is commented out as well.
  • @vitspot/vit-registration-number : A library intended to be used by communities in VIT University, to validate and extract meaningful information from student registration numbers.
  • javascript-templates: a CLI to quickly setup boilerplate for NodeJS Project.

CLI, Binaries and Libraries#

  • ARQ Simulators : Network Simulators written in C++ which demonstrate how the control protocols work in data transmission. Also include features to add noise to the channel and randomly eliminate packets from the medium, just like it happens in real-world.
  • Github Spy : is a CLI which allows a user to list down the organizations they are part of, and then further collect analytics about the same.
  • Go Do SQL : is a CLI written in GoLang to assist in database labs, when our team was working on separate languages. It was becoming difficult to convert one syntax to another (Oracle -> MySQL etc). This CLI provides an interactive interface with auto-complete feature to generate commands which define the schema of the table, and then feed data into it, without actually knowing the particular syntax.

  • bird-nest : is an interactive CLI written in GoLang with auto-complete feature that allows NestJS users to create a new module by defining the schema in a SQL-style format. The CLI converts the schema into classes and writes them to disk as a new nest-js module.

  • Bash Screenshot Manager : is a shell script that was written towards the early days of the pandemic, when online classes has just started, and it was being difficult to handle screenshots of class notes. I wrote this script to categorize the screenshots based on subjects and collected them in different folders.
  • COVID Chatbot : is a chatbot written in C++ as an academic project submitted for Object Oriented Programming Class. It fetches data from a remote JSON API, and then shows it to the user. The response and actions are mapped via regex.
  • COVID Chatbot Server: To avoid implementing a fully-functional JSON parser for COVID Chatbot (the above project), an intermediate site was published which parsed the JSON response of the API and converted it to ini format, which is comparatively easier to read.
  • Go Make COVID Graph : was one of my first GoLang projects. It fetches the COVID stats API in india and then visualizes the number of cases in the terminal itself.
  • go-short-cut-url : a learning project written in GoLang to short URLs. Built following a tutorial.

  • argument-parser-cpp : a library written for C++ projects to quickly check if given parameter has been passed to the CLI or not, and provide an easy method to parse the passed input.

  • MakeMake : is a makefile generator written in C++ which can automatically generate makefiles for a given project structure. This allows the developer to quickly prototype the project without worrying about defining strict build commands.
  • rainbowcpp : is a library written for C++ projects to format the output that is sent to the terminal. It provides functions like bold, italic, underline, alongwith a wide range of colors that can be used together.
  • Sahayak-BlogGen : is a learning project built in pre-university years which powered my personal blog at the time. Written in python and supports dynamic routing for blog posts via javascript.

Bots and Automation#

  • FormatCodeBot : is a telegram bot which can style javascript code sent by users. Built as a requirement for reviewing code being shared over messaging applications.
  • ensure-compliance-instagram : a browser automation bot that has the ability to download instagram stories put by people and save them locally to disk.
  • yashkumarverma-assistant : personal github assistant implemented as a github bot that greets new contributors, and drops messages when issues and pull requests change their status. i.e. opened, closed, merged etc.

WebApps and PWAs#

  • All Covid Info : a gatsby single page application, which has the ability to install as a PWA and run even without active internet connection to list resources for COVID care.
  • Snake-Game : A browser game written in high school which resembles the popular snake game. Written in pure HTML, CSS and vanilla JavaScript.

AI and Machine Learning#

  • Wumpus World Simulation : a command line simulator of the famous wumpus world problem which demonstrates how a partially informed agent behaves as obstructions and challenges are presented in random intervals. Written in python, uses unicode emojis to visualize the world.
  • news-vocabulary-dataset : data harvested from top news sites in India. It's a dataset of words and article URLS available in a sql format for quick imports.

Tooling, DevEX, Research#

  • project-os-healing-os : is a prototype process runner which has the ability to relaunch itself when process crashes. It also keeps in sync with other nodes running in the cluster to ensure that all the machines running on the cluster are always in sync with each other. A component needs to be setup on client machines, called self-healing-remote which essentially makes any unix device a part of the cluster. It used public github repositories as a central config storage.
  • go-lib-ui : is a handy terminal output library written in GoLang to enforce a structure in the data printed by the terminal. Used in other golang projects.
  • rainbow-java : JAVA port of rainbow-cpp, provides similar functionality like text formatting and support for colors in the terminal itself.
  • react-native-shots : is a shell script written during the MLH fellowship to setup react native development environment on a local machine. This was created to handle the long sequence of commands that were confusing to operating as minor misses caused the build to fail.
  • Shatabdi : Shatabdi.js is a prototype phase nodejs framework, which has syntax similar to express.js re-written from the ground up. It is built for performance, and beats express.js in performance tests.
    • shatabdi-express : main codebase of the framework, supports basic HTTP requests and limited middleware support.
    • shatabdi-express-performance : shows off the performance comparison of express.js and shatabdi.js applications which implement the same functionality using the npm artillery module.
    • shatabdi-express-rewrites : ๐Ÿšง under process. An example to demonstrate how express applications can be directly ported to shatabdi applications.
  • Blazing : Blazing is a PHP MVC framework written keeping in mind the challenges that beginners face in using large frameworks like Laravel, CodeIgniter, CakePHP etc. This framework was written in my high school days, and later an ERP (private codebase) for a C.B.S.E. school was also written on it.
  • Path-Finder : Path finder was an interactive UI written in JavaScript which allows the user to find a path from the starting node to final node by drawing custom boundaries in the canvas, and then run a time-based bot for the same. Build this around high school.
  • Clean-Deploy : is a CI script intended written during the time of Google CodeIn to delete all unwanted files dynamically during deployment. This made the deployments considerably fast and allowed us to save server space.
  • simple-rbs : is a prototype that demonstrates how a simple RBAC authorization can be setup in NodeJS. The roles are defined using the concept of inheritance, as it commonly observed in organizations. Higher order roles automatically get the rights of lower order roles. It also demonstrates how a caching layer can be added to any function by adding just a single line.

Mobile Apps#

  • Weather Application : a mobile application developed during a hackathon named "Apptitude". The restrictions were well defined and the main challenge was the time frame of the delivery.