This post implements Account Kit using Django. It can be considered as a python translation of Passwordless Login with Facebook Account Kit. The code for this blog post can be found here.


Passwordless login allows a user to log in to the application without having to enter and remember the password. It uses One Time Password called OTP which is delivered to the user via SMS or email.

Facebook provides a service called Account Kit which is used to implement passwordless authentication. …

Creating CRUD interfaces with DRY patterns in Django.

In this tutorial, we will learn how to use Class-based views to create CRUD interfaces for any model.

At the end of this tutorial, we will be able to add, list, view, update and delete a particular model(here Book and the project is based on library). This tutorial can be extended to create CRUD based interfaces for any model.

This blog post is about setting up a Django application which uses uWSGI as app server and Nginx as the web server.

We will assume the following dependencies about the environment.

  • Ubuntu 18.04
  • Python 3
  • Django > 2.0 (here Django 2.1)

For this project, we will use a Django application which shows the list of all marvel movies. It contains a single URL which looks like the following.

Django Movie App

The code for the project can be found here.

Let’s assume that we have just launched a new instance and there is nothing set up on the instance. …

Photo by Mikael Kristenson on Unsplash

It started at school when I was desperate to win TCS-IT Wiz. Why?

  • Because of the laptop.
  • Because of the fame when you get featured on the front page of all major newspaper’s city edition.

But I never won it. Days passed and I made it twice on the front page of the newspaper because of my good results in both Secondary education exams. Later on, I bought my own laptop as well.

The other desperation was for open source contribution. I tried many times in my college, but could never do my first open source contribution. I raised several…

Migrations in Django are a way of propagating changes made in the model into the database schema.

Official Django docs summarize Migration as

Migrations are Django’s way of propagating changes you make to your models (adding a field, deleting a model, etc.) into your database schema

Migrations were introduced as a built-in functionality in Django version 1.7. Migrations are created manually by running certain commands but they automate the task of applying changes to the database. We can create migration for any changes in the model, like

  • Add a new model.
  • Add a particular field in a model
  • Update field…

In an earlier post, we discussed various approaches to implement Autocomplete functionality. We came to a conclusion that Completion Suggester covers most of the cases required in implementing a fully functional and fast autocomplete. This post explains in detail about what is Completion Suggester and how to use them practically.

Completion Suggester

Completion Suggester is a type of suggester in Elasticsearch, which is used to implement autocomplete functionality. It uses an in-memory data structure called Finite State Transducer. Elasticsearch stores FST on a per segment basis, which means suggestions scale horizontally as more new nodes are added.


To use Completion Suggester, a…

What is Autocomplete ?

Let’s take a very common example. Whenever you go to google and start typing, a drop-down appears which lists the suggestions. Those suggestions are related to the query and help the user in completing his query.

Suggestions when typing on Google

Autocomplete as the wikipedia says

Autocomplete, or word completion, is a feature in which an application predicts the rest of a word a user is typing

It is also known as Search as you type or Type Ahead Search. It helps in navigating or guiding a user by prompting them with likely completions and alternatives to the text as they…

We recently organized one such internal hackathon namely Rockeathon at Gradeup. It was the first internal hackathon and everyone enjoyed a lot.

This blog post is about my experience and learnings for organizing an internal hackathon, particularly in an organization. It will cover various aspects ranging from designing a hackathon to its execution.


One of the most important thing while organizing a hackathon is its expectations. At the end of a hackathon, the value is being added to the organization. The value could be added in form of products or process setup or office renovation. …

EvalAI is a platform which helps AI researchers, students and data scientists to collaborate and participate in various AI challenges. The platform hosts various challenges, corresponding to which participants make their submission.


A submission is a prediction made against a Challenge Phase. It is processed using the evaluation script of a challenge, sometimes involving heavy computations.

Processing Submission

A submission can be processed either asynchronously or synchronously.

Processing a submission synchronously will defer the response for the request until the processing is not complete. …

Dynamic Formsets in Django

Django Forms

Forms in HTML are a collection of input elements that allows us to perform dynamic actions on a website. Django models these forms as an object of Form class. A form is responsible for taking input from a user, validating and cleaning data and taking necessary action as required.


A formset is a collection of Django Forms. Each formset has a management form which is used to manage the collection of forms contained in it.

Formset stores data like the total number of forms, the initial number of forms and the maximum number of forms in a management form. So…

Taranjeet Singh

Prev @paytm, @gradeupapp, @project_cloudcv. Open Source Developer. Quizzer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store