Posted on

Twitter Backend Clone with Node + Express + MongoDB

Welcome to the Twitter clone course using Node.js + Express + MongoDB and TypeScript. In this course you will learn about Node’s fundamentals + how to set up a modern backend with Express and TSOA and deploy it to various cloud platforms such as Google Cloud Platform (GCP), Render, Heroku and AWS. Vandad Nahavandipoor is your instructor for this course.

Introduction

Goal of This Course

I can summarize the goal of this course in one sentence and that is: to increase one’s chances of employability in Europe and USA, by learning backend development using Node.js and Express together with TypeScript. The backend job-market in Europe and USA is dominated primarily by Node.js related tech, .NET or Java and learning one of these will help you learn the other ones much easier and faster.

What We Will Develop

In this course we will develop a clone of Twitter’s backend with many functionalities, including:

  • Authentication with JWT
  • Ability to post tweets, replies and retweets and even reactions (likes, etc)
  • Possibility to attach media to tweets
  • Search and querying functionalities
  • Follow and unfollow endpoints as well as user management
  • TSOA interface for easy client-code generation
  • And much more

What You’ll Learn

In this course:

  • You will learn about Node.js, a cross-platform and modern JavaScript runtime environment
  • We will get acquainted with both JavaScript and TypeScript
  • We will create modern REST APIs using Node + Express and TSOA (pronounced: So Uh)
  • We will also set up JWT-based authentication
  • You will learn about Express.js, a modern web-framework for Node.js
  • We will learn about MongoDB and its document-oriented design
  • You will also learn how to deploy your server to various cloud platforms such as Google Cloud Platform (GCP), Render, Heroku and Amazon AWS.

By the end of this course you will feel comfortable to spin up your own backend REST APIs using Node + Express and MongoDB. If you’re already familiar with a front-end framework such as SwiftUI, Flutter or React Native, by the end of this course you will become a full-stack developer who is comfortable writing his or her own backend and frontend code.

Discord Study Group

By purchasing this course, you will also get access to a dedicated Discord server. You can pair up with other students to enhance your learning journey, ask questions and even answer others’ questions in this server.

JavaScript and TypeScript

This course is based on TypeScript (TS); however, TypeScript translates to JavaScript (JS) under the hood and for many newcomers, TS could be a bit overwhelming specially when it comes to backend development so in this course I will teach you the basics of Node + Express using JS first and once we learn the basics and start actually working on the backend project itself, we will switch to TypeScript.

I will teach you JS and TS as we go on, so you don’t have to learn those separately.

Teaching Method

For those of you who know me (your instructor: Vandad Nahavandipoor), you know that I’m a big fan of video courses. I have produced a very big list of popular YouTube courses some with more than a million views, such as those listed on freeCodeCamp’s YouTube channel.

In this course, and all my other premium courses on Pixolity, I will be using a combination of text and videos, together with quizzes, in order to ensure a more holistic approach to my courses. Some users are comfortable with text and some with videos and some with both. Mixing text and videos ensures a wider range of audience can enjoy the material here.

Videos intrinsically are difficult to edit once a mistake has been made. Let’s say that a “.env” file in a video was created in the wrong path and for the entirety of the video (a few hours long) the file was shown to be at the wrong path. Once the server is deployed, we would notice the issue and would have to fix it. The problem is that the entire video before that is now showing the “.env” file at the wrong path, confusing students the entire time. Correcting such mistakes in a video is very difficult, meaning that the instructor would have to re-record the entire video from the beginning. Such mistakes are fixable within seconds in a course where instructions are written in text since mistakes like these are just a matter of fixing a few sentences, not an entire video. This improves the overall quality of text-based courses, and ensures that these courses are easily brought up to date with the latest technologies, while video IT courses need to be re-recorded entirely from the beginning every now and then to keep up with the latest tech. For this reason, I’ve chosen to provide all instructions for this course in text, and am utilizing videos just to give further information or instructions to students.

Certification

At the end of this course, you will receive an official Pixolity certificate on your efforts in becoming a backend developer with Node.js + Express + MongoDB. Acquiring this certificate will require your full attention to the course and reading and watching all the material and truly practicing it. At the end of every section, you will be presented with a quiz which you must score well in order to proceed with the next section. This ensures that only those who are serious about learning can proceed to the next sections and subsequently earn their certificates. The Pixolity certificate you’ll earn at the end of this course will be true evidence to the attention you’ve paid to this course and you should be proud to share your achievement with the world.

Once you receive your certificate, you will be able to view it on this website and you’ll also be able to download it as PDF file in order to share on websites such as LinkedIn. Please read our Course Certification Integrity for more information.

Frequently Asked Questions (FAQ)

Here is a list of common questions for this course. If you have other questions which are not answered here, don’t hesitate to contact us at courses@pixolity.com

Who is This Course For?

This course is for software developers who are already really comfortable with another programming language. If your answer to all following questions is “yes”, then this course is for you:

  • Do you know what async/await are and how to use them?
  • Do you know what functions, classes, variables and arguments are?
  • Are you already comfortable with one or more modern programming languages, such as Dart, Swift, Rust, JavaScript or TypeScript, Ruby, Python, PHP, C# or Java?
  • Do you know what a dependency and dependency managers are?
  • Have you heard of JWT and token-based authentication systems before?
  • Do you have a GitHub account and know how to create/manage repositories?
  • Are you already comfortable with one text editor / IDE such as Visual Studio Code?

If you answered “yes” to all the above questions then this course is for you. If you are a complete beginner to programming, this course might and will almost certainly be overwhelming to you as I will assume you are already familiar with at least one modern programming language and modern software development paradigms. In that case it might be best to contact me and put forward your wishes for some other courses to get you started with programming.

Do I need to know JavaScript or TypeScript before taking this course?

No, this course is for complete beginners to JavaScript and TypeScript and backend development in general. As mentioned in one of the previous sections in this page, you need to be comfortable with at least one other programming language / framework before taking this course, but no prior knowledge of JS/TS is required.

Is this course text-only?

No. This course is a hybrid of text and video material. While the majority of the content is written in text in order to ensure they can easily be updated and kept up-to-date with the latest tech, video material are used as well to ensure a more holistic approach to teaching. Please read the Teaching Method section for more information.

Will this course teach me Flutter?

This is a backend course where you will learn about creating a modern backend in Node.js + Express and MongoDB. The goal of this course is to create a backend that is easily consumable by various clients such as those written in Flutter and SwiftUI. I am working on courses for SwiftUI and Flutter that connect to this backend so if you want to learn the full-stack, this course is a great starting point.

Why do I need to provide my GitHub username during checkout?

All code that is taught in this course is saved in various GitHub repositories, depending on the section of the course. They are marked appropriately in the course with various tags. If you ever get stuck, you might want to check the original code and compare with the code you’ve written. These repositories on GitHub are private and once you purchase this course, you will be added as a member of these repositories; for this, we ask you to provide your GitHub username when signing up for this course.

If you don’t have a GitHub account, you can create one by going to GitHub’s sign-up page.

What is TSOA and why is it included in this course?

TSOA will allow us to create a specification of our final product in form JSON. This JSON can then be used by various clients such as those in Flutter and SwiftUI to automatically create the entire network and API layer for free for the clients. It will also provide you with a GUI to check and test your APIs as shown here:

Where will I study the course?

Once you’ve made your purchase, you will be able to log into your account using the Account page and from there you can see your purchases and enrolled courses. From there you will be able to attend the course and start studying. This course is entirely hosted on our own website Pixolity.com.

Do videos in this course have captions?

All videos are supplementary material in this course and they are hosted on YouTube for the time being. By clicking on the title of each video you will be headed to YouTube to have the full YouTube experience, with captions, playback speed settings and more.

Buy

Twitter Backend with Node + Express + MongoDB – 3 Months Access
$79 for 3 Months
Access to all course material (3 months)
Discord support and study group (3 months)
Pixolity support (3 months)
Twitter Backend with Node + Express + MongoDB – 6 Months Access
$99 for 6 Months
Access to all course material (6 months)
Discord support and study group (6 months)
Pixolity support (6 months)
Twitter Backend with Node + Express + MongoDB – 9 Months Access
$129 for 9 Months
Access to all course material (9 months)
Discord support and study group (9 months)
Pixolity support (9 months)
Twitter Backend with Node + Express + MongoDB – Lifetime Access
$159
Access to all course material (lifetime)
Discord support and study group (lifetime)
Pixolity support (lifetime)

If you’ve already purchased this course, you can view it and all other purchased courses in your account page.