Open Source gives us a chance to leverage our creativity.

Open Source

In-house Contributions

Autoprototype

Rapid prototyping of models with data is commonly practiced in Data Science to find the best fit models. Autoprototype is a python library that helps a user automate rapid prototyping and select the model hyperparameters. The user needs to pass the data and a few other parameters, and this tool will suggest:
a. the model structure best suited for the data
b. and the best hyperparameters for the models

Contributor
Ankan Ghosh

Datascience Lab

ML Ops using SageMaker

This Experiment was carried out keeping in mind the complexity behind managing multiple ML Models in production, and a rationale behind how MLOps helps solve this problem. The code will help you to get started with implementing the MLOps process in AWS SageMaker. The implementation part can be done through the AWS console as well as the Jupyter Notebook inside a SageMaker Environment.

Contributors
Suresh Nakkiran, Karthik

CCAvenue for VirtueMart

VirtueMart is an open-source extension component provided in Joomla for e-Commerce solutions. It has a few built-in payment gateway integrations, but sorely misses one with CCAvenue. This plugin bridges that gap by enabling the CCAvenue payment gateway integration for VirtueMart.

Contributors
Madan, Vivek

Loopback for API + Isomorphic + React Router + Flux

Loopback by default comes with Angular. This is a Loopback starter app if you want to use React with it.

We have also added our usual tools-of-the-trade like ESLint as a linting tool for javascript and eslint-plugin-react for JSX.

Contributors
Rajesh, Dinesh, Vivek

CRA + Redux-Saga + TS

This is a boilerplate to create a new React Application with Create React App as a base, using Typescript. It provides integrations with Redux, Redux-Saga, React Router, and Material UI.

Contributors
Rajesh, Mukundhan, Srikanth

Expression Builder

Pretty much in every enterprise application we build, we find ourselves needing a query / expression builder with a nice modern UI. Since we didn’t find a good open source component for this, we decided to roll out our own.

To make it reusable, we designed it in a manner it can be easily bolted on any DB or for that matter on an entity model in any language.

The schema/entity definitions are read as JSONs and the generated expression is also written as a JSON.

Contributors
Rajasekar, Vivek

Hyperledger Fabric Bootstrap

This project gives you a framework for setting up a hyperledger fabric v1.1.0 network on multiple VMs. We are using Vagrant with libvirt/KVM to create VMs. Other setups will work too, with some changes to the Vagrantfile.

NebTest

NebTest will automate unit testing of Nebulas smart contracts. It enables you to:

  • Automate smart contract testing on both testnet and mainnet
  • Run test case with multiple test data sets at the same time
  • Run test cases in a clean state, by deploying a smart contract before each test case

Contributor
Siva

Mean Idea

Our opinionated take on a MEAN stack (MongoDB, Express, Angular, Node) – modeled on Mean.io. We added a few handy features that we found ourselves repeatedly using. This comes from our deep experience in Node.js and related server-side JS tech.

Mean Idea Rel

Very similar to our Mean Idea. The only difference is that we replaced MongoDB with a Relational Database. Again, this is something we found ourselves repeatedly using, so we thought others might find it useful.

Contributor
Vivek

ReactJS + Sails + Redis (RSR)

Sails and React.js are fast becoming popular alternates to Node.js and Angular.js. RSR is a start application that integrates React with Sails. As an added bonus, Redis is configured as the primary database.

Contributors
Nithyanandakumar, Mahesh

IdeaCrawler

IdeaCrawler is a blazing fast, highly effective, flexible client-server crawling framework written in Go. We built it to perform certain tasks better than existing crawlers. Based on the tests we conducted, we found that our crawler outperformed Scrapy and several other alternatives, many times over.

In addition to the features you would expect from a regular crawling library, IdeaCrawler makes it very easy to do things like scaling across machines, crawling through VPNs, using cookies, using Chrome as a crawling backend, etc. It was written to act as a layer on top of a regular crawling library, with a lot of pre-written glue code.

This framework also allows users to isolate crawling to a dedicated cluster, while still being controlled from a central location.

Contributor
Suresh Nakkiran

Cordova AES256 Encryption and Decryption

This Apache Cordova Ionic plugin allows you to perform AES 256 encryption and decryption on plain text. It’s a cross-platform plugin that supports both Android and iOS. The encryption and decryption are performed on the device’s native layer, so the performance is much better. The entire operation is performed in the background thread.

Contributor
Praveen Raj

Community Contributions

MLFlow - Torchserve Deployment Plugin

We worked on an experimental version of the MLflow-TorchServe deployment plugin (MLflow-TorchServe 0.0.1.dev0), which would enable developers to use MLflow to deploy models built and trained in the MLflow pipeline into TorchServe without any additional effort.

Contributors
Karthik Sundararaman, Shrinath Suresh, Ankan Ghosh, Sampath Kumaran Ganesan

Enhanced MLFlow - Pytorch Integration

MLflow is a popular MLOps tool to manage a machine learning lifecycle but lacked support for Autologging parameters, metrics, and artifacts related to a PyTorch deep learning workflow. We worked closely with the Facebook AI Research (FAIR) team to add Autologging and provided support to load the native TorchScript models. We thereby enabled the saving of extra files and additional artifacts. These features were released in MLFlow version 1.12.0.

Contributors
Karthik Sundararaman, Shrinath Suresh, Ankan Ghosh, Sampath Kumaran Ganesan

ModelMapper

The goal of ModelMapper is to make object mapping easy, by automatically determining how one object model maps to another. In the same way a human would, while providing a simple, refactoring-safe API for handling specific use cases.

The existing model mapper did not support “java.util.Date” conversion. We fixed this, so the conversion worked for the date datatype too.

Contributor
Vignesh Kumar

FormIO

We used the open-source FormIO plugin for dynamically generating forms in an application. While using FormIO for file uploads, we faced a limitation; we were unable to send in custom headers as part of the request URL.

There were hacky workarounds to solve this issue in the backend. But, the ability to use custom headers is a common use case. So we requested FormIO to have an optional configuration wherein custom headers could be keyed in as a JSON. We also raised a Pull Request with changes and it was accepted and merged by the FormIO team. Thanks to this, coders can now add custom headers to URL requests in FormIO, using this new optional configuration.

Contributors
Srikanth, Rahul Ravi

Feathers-Mongoose

MongoDB is a widely used database. In a project, we used Feathers-Mongoose, an Object Document Mapper (ODM) for MongoDB. In the second quarter of 2018, MongoDB added support for database transactions. However, this new feature could not be leveraged using Feathers-Mongoose. So, we made the necessary code changes and raised a Pull Request. After a review process, it was accepted and merged to the codebase. It was later released as v7.1.0.

Contributors
Jaiyashree, Sharveshkumar

CASL

CASL is an isomorphic authorization JavaScript library which restricts what resources a user is allowed to access. All permissions are defined in a single location, without being duplicated across UI components, API services, and database queries.

Contributor
Gowthaman

Generator Feathers Plus

We use Feathers+ in projects for developing the API layer. It provides a system-agnostic way of interacting with various databases by representing them as JSONs. The JSONs are validated using a JSON Schema. We noticed that the JSON Schema was not updated recently and it was preventing us from using some new features. We raised a Pull Request amending the JSON Schema to support new features and it was immediately accepted.

Contributor
Gowthaman

Our Contributors, or should we say Committers

Ideas2IT-Ankan
Ankan

Active committer for
MLFlow – Pytorch Integration, MLFlow – Torchserve Plugin

GOWTHAMAN-1
Gowthaman

Active committer for
Generator Feathers Plus, CASL

jaishree-1
Jaiyashree

Active committer for
Feathers-Mongoose

Ideas2IT-Karthik
Karthik

Active committer for
MLFlow – Pytorch Integration, MLFlow – Torchserve Plugin

madan-1
Madan

Active committer for
CCAvenue for Virtuemart

Nithyanandakumar
Nithyanandakumar

Active committer for
ReactJS + Sails + Redis

Praveen-RaJ
Praveen

Active committer for
Cordova AES256

rajesh
Rajesh

Active committer for
Loopback Isomorphic React Flux, Loopback for API, CRA + Redux-Saga + TS

Ideas2IT-Sampath
Sampath

Active committer for
MLFlow – Pytorch Integration, MLFlow – Torchserve Plugin

Sharveshkumar
Sharveshkumar

Active committer for
Feathers-Mongoose

Ideas2IT-Shrinath
Shrinath

Active committer for
MLFlow – Pytorch Integration, MLFlow – Torchserve Plugin

suresh-1
Suresh

Active committer for
Datascience Lab

Vignesh-kumar-1
Vignesh

Active committer for
Model Mapper