Creating a simple to-do app with authentication — Queries and mutations

Image for post
Image for post
Photo by Ilya Pavlov on Unsplash

In the first article of this series, we talked about the proper way to start a Django and Graphene project from scratch. Today, we will focus on creating GraphQL endpoints. This article assumes you have a basic application up and running. If not, feel free to check out the first article.

GraphQL is a powerful language for querying the exact data you need from your back end. Unlike with its predecessor REST, with GraphQL APIs you end up with a single endpoint (commonly called /api/graphql/ or simply /graphql/), to query the needed data by the client in bulk. Similarly, one…


Creating a simple to-do app with authentication — Basic setup

Image for post
Image for post
Photo by Chris Ried on Unsplash

The first in a series of articles in which we’ll be creating a modern web application, serving a simple to-do app with authentication, complete with a Django back end exposing a GraphQL API endpoint, and a Next.js, React, and Material UI front end with progressive web app capabilities.

Today we’re going to create a basic Django application that exposes a GraphQL endpoint. Before we dive into the details, let’s go over a couple of concepts:

  • Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design — djangoproject.com
  • GraphQL is a query language for APIs and…


A step towards progressive web apps

Image for post
Image for post

Google’s Workbox is a set of libraries and Node modules that make it easy to cache assets and take full advantage of features used to build progressive web apps (PWAs).

Notably, Workbox provides two webpack plugins: one that generates a complete service worker for you and one that produces a list of assets to precache that’s injected into a service worker file through the workbox-webpack-plugin library.

These plugins come in handy when you want to integrate Next.js with Workbox. Although the integration can be considered easy, there are specific configuration values any Next.js project would benefit from.

Introducing next-with-workbox

next-with-workbox is a…


Image for post
Image for post

I was surprised to realize Next.js does not have an out of the box tool for generating a sitemap.xml. During my research, I’ve stumbled upon a library, but I was not impressed with the interface they provided. So, I’ve decided to take it into my own hands and come up with a higher-order Next.js config. Let’s talk it over so that you can also create a higher-order config when you need it down the line.

TL;DR — Visit https://github.com/cansin/next-with-sitemap


A critique

Image for post
Image for post
Photo by Lenin Estrada on Unsplash

Summary

Captchas (an acronym for Completely Automated Public Turing Test to Tell Computers and Humans Apart) are a widely used security mechanism to identify non-human intruders. The recent captcha attacks are scheme-specific, making them unstable when the captcha security features change. Unlike those previous attempts, in this paper, Ye and her colleagues introduce a generic, yet practical approach to solving a captcha. Their work heavily relies on a new deep neural net architecture called generative adversarial network (GAN) and its sub-flavor Pix2Pix. Their approach has four steps. They first generate captchas using a GAN-based generator. They then rely on a Pix2Pix…


Image for post
Image for post
Photo by Ante Hamersmit on Unsplash

Summary

As Hyper Text Transfer Protocol Secure (HTTPS) becomes the new normal for The World Wide Web (WWW), Deep Packet Inspection (DPI) of encrypted streams become crucial than ever. Sherry and her colleagues claim to introduce the first system that simultaneously provides the functionality of middleboxes and the privacy of encryption: BlindBox [4]. This system performs the deep-packet inspection directly on the encrypted traffic, which makes it practical for real-world applications that use long-lived HTTPS connections.

Strengths

The BlindBox System is the first-ever system that enables DPI over encrypted traffic without decrypting the underlying data. That, in itself, is a remarkable strength…


Image for post
Image for post
Photo by Taylor Vick on Unsplash

Summary

Outsourcing non-core competencies through cloud services is a common practice for most successful tech companies to decrease costs, ease management, and provide scalability. So does deploying middlebox services to improve security and performance in their networks. The current middlebox processing schemes involve setting up and managing the infrastructure locally within the network. In their paper, Sherry et al. argue that the same advantages of a cloud service can be utilized for a cloud-based middlebox solution. For that objective, they implement APLOMB, “a practical service for outsourcing enterprise middlebox processing to the cloud.”

Strengths

The paper is the first of its kind…


Image for post
Image for post
Disclaimer: This is a summary of the original piece by Thomas R. Eisenmann, as referenced below.

Dropbox was founded by Drew Houston, at the age of 24. As everyone knows, it is a downloadable application that allows users to sync their local files to the cloud and other devices in a relaxed and straightforward manner.

Dropbox overall had an excellent track record, and one of the typical Silicon Valley stories. Therefore studying it should give insights about most successful startups.

Drew Houston

Houston started coding at a very early age; he even ended up scoring professional software work as early as 14 years old as a security tester for an online game. …


Image for post
Image for post
Photo by Markus Spiske on Unsplash

The Definition of Reproducibility

The reproducibility of research is an outsider’s ability to reproduce the presented results of that research with reasonably small effort. According to a highly cited paper by Roger D. Peng, “the standard of reproducibility calls for the data and the computer code used to analyze the data be made available to others.” Peng suggests this standard is just the bare minimum needed and claims that reproducibility is a spectrum.


Image for post
Image for post
Photo by Allie on Unsplash

E-learning is any learning conducted via electronic media, typically on the Internet. The startup companies in the e-learning sector usually focus on Massive Online Courses (MOCs), which is a superset of better know Massively Open Online Courses (a.k.a. MOOCs). The main difference between the two is the attached cost of MOCs.

This investigation tries to rank well-known MOC startups according to a subjective success rating. Unlike an established company, the number one goal of a startup should be to get as many regular users as possible and grow the market share. …

Cansın Yıldız

Software Architect/Consultant/Advisor at Various Startups. Was a Founding Engineer @Udemy.

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