Bootcamp
Search…
📅
Course Schedule
0: Language and Tooling Teaching Guide
1: Frontend Basics Teaching Guide
2: Backend Basics Teaching Guide
3: Backend Applications Teaching Guide
4: Backend Structure Teaching Guide
5: Full-Stack Applications Teaching Guide
6: Frontend Infrastructure Teaching Guide
7: React Teaching Guide
8: Advanced React Teaching Guide
9: Advanced Topics Teaching Guide
🧮
Algorithms Teaching Guide
💼
Interview Prep Teaching Guide
☺
User Experience Teaching Guide
2.0: Module 2 Overview

Backend Fundamentals

In RA's Bootcamp we will learn to build applications that interact with the Internet. To start, we will learn how these applications run and important fundamentals about the Internet.

What is a Backend?

The word backend defines the over-all architecture of a system. It can mean different things depending on the context, but for the context of this course it will always refer to the web server application. In Bootcamp this also means a JavaScript program. The word backend and frontend also distinguish the client and the server- that is, the part of the application doing the requesting (the client) and the part that listens for incoming requests (the server).
In this module "backend" also implies discussing the properties of an application that runs in a backend environment- an environment that has different properties to a frontend (browser) environment. In this environment we can write JavaScript that interacts more directly with important hardware representations of the computer, such as the hard drive and the networking card. Being in a backend coding context means dealing more directly with the machine that the code is running on. This is in contrast to running JavaScript in a browser environment, which is mostly agnostic to which operating system or browser brand it is running on.
This context means doing away with all of the GUI representations of the running code, like buttons, images and emojis. The transition to a backend environment means that all the code is run from the terminal- the environment where we can programmatically interface directly with the computer.
In addition, this backend context allows us to introduce and talk about the basics of how the internet works- a crucial piece of how all our applications behave.
Diagram of how the frontend communicates with the backend

Where We Are Going

This module is a transitional section that puts in place some fundamental concepts as we work our way towards the cornerstone application we'll be building upon: the backend web application. We'll begin working on that code starting in module 3.

Learning Objectives

  1. 1.
    Write JS code that permanently saves files and content on the hard drive.
  2. 2.
    Understand the fundamentals of how relevant data is sent through the internet (i.e., HTML)
  3. 3.
    Understand the basic workings of a real internet website- the domain name, IP address, ports, etc.
  4. 4.
    Put code onto the real internet using a real domain name using AWS EC2.
  5. 5.
    Write JS code that can listen, take in and respond to a request from the internet.

Module 2 Setup

Install Packages

Node.js

Mac

Install Node version 14 with the following command.
1
brew install [email protected]
Copied!

Windows

You should already have Node installed. Check by typing the following in the terminal, which will check the Node version.
1
node -v
Copied!

Ngrok

Install ngrok using the commands below. We will use ngrok for one of in-class exercises to expose our local servers to the Internet.

Mac

1
brew install --cask ngrok
Copied!

Ubuntu

1
sudo npm install -g ngrok
Copied!

New Online Accounts

AWS

Sign up for an AWS account if you don't have one already. We will use this to set up servers in the cloud to which we will deploy our code.

Namecheap

Sign up for a Namecheap account to buy a domain name.

WSL

For Windows, Module 2 marks a point that we will change the way files are stored and edited. From now on all files will be created and saved inside the Ubuntu / WSL part of the computer.

Working between WSL and Windows files

Get access to all the files in your WSL Ubuntu instance with this path:
1
\\$wsl\Ubuntu
Copied!

Opening a Windows file explorer from VSCode Terminal

Directly access files from a Windows file explorer window from the terminal by running explorer from within Ubuntu:
1
/mnt/c/windows/explorer.exe <SOME_UNIX_PATH_TO_FILE>
Copied!
Example: Open the current terminal directory:
1
/mnt/c/windows/explorer.exe .
Copied!
Open a new VSCode window for the current directory from the terminal:
1
code .
Copied!

Further Reference

Last modified 1mo ago