Photo by Bench Accounting on Unsplash is a global on-demand gifting service that provides customized gifting experiences to its customers in 3 hours worldwide. The website was launched along with the foundation of Giftpack back in 2017, and has grown in size as more features were brought in. As time goes by, the application starts to slow down, shows poor performance, and now became extremely hard to maintain or even introduce new features. Many of the dependencies and packages used in the project were outdated, and upgrading each and every one of them one by one would cost way too much time and effort. That…


My university department gives their students the opportunity to perform internship for an entire semester (in my case, between February and May) during their third year. For that reason, I started actively looking for companies that offer long-term internships since the end of summer 2019.

I was indeed very lucky to discover Giftpack as soon as they opened a long-term internship position on Cakeresume.

According to their job posting, here were the internship positions available:

  • Digital Marketing Giftern
  • Business Developer Giftern
  • Operation Giftern
  • UI / UX Designer Giftern
  • Frontend Engineer Giftern

They have offices located in New York (main office)…

In the first part of this tutorial, we have implemented the server-side of this application using Express.js, Mongoose and GraphQL and it is capable of performing login, sign up and verify with our defined queries and mutations.

What we need now is to have a user interface that allows us to use those queries and mutations and display the necessary components depending on the user’s authentication status. Let’s first plan on the different routes and components that will be displayed in those routes:

/ : the main entry of the website. …

Photo by Kevin Ku on Unsplash

In this tutorial, we will be building a simple web application from scratch that allows users to perform actions including sign up, login and logout using JWT authentication. In order to understand what JSON Web Tokens are and how they work, I suggest you to read this Medium blog post before starting this tutorial.

As for the technologies, we will be using React, Redux, React-Router v4, Node.js, Express.js, Mongoose, and GraphQL. It might be a bit difficult to follow up this tutorial if you haven’t yet used any of these technologies, so I would assume that you have some extent…

Ping Cheng

Frontend Engineer @Giftpack. Senior student at Bilkent University. Big fan of React.

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