Web Programming for Apps and Services

Schedule Notes Resources MyApps Instructions Graded Work Code examples

Developer tools used in this course

This document is a summary of the developer tools used in this course.

Web dev work is done on a Unix

We expect the student to do their work on a computer that runs macOS, Linux, or another Unix-like operating system. If a student has a Windows 10 computer, then plan to install an environment that enables the installation of Linux. The Windows Subsystem for Linux feature is recommended, along with a Windows Store version of Linux (e.g. Ubuntu).

Important - We expect you to do your work on macOS, Linux, or another Unix-like operating system.

Dev tools summary

Some of the dev tools will be graphical user interface (GUI) apps that run on the base (device/host) operating system (including web browsers). Some will be command line interface (CLI) apps.

The following table shows the tasks to be done, and the apps that enable you to do the tasks, on macOS or Windows.

Task macOS
Windows 10 + WSL
File system GUI Finder File Explorer
File system CLI Terminal Terminal on Ubuntu
Editor Visual Studio Code Visual Studio Code
installed on Windows
React tools
Angular tools
Install these on macOS Install these on Ubuntu
Web browser(s)
including dev tools,
HTTP inspector Visual Studio Code Extension:
Thunder Client (or)
REST Client (Huachao Mao)
Visual Studio Code Extension:
Thunder Client (or)
REST Client (Huachao Mao)
Data generator

Dev tools usage notes

As you can see from the summary, you will be using GUI versions of the following apps. Each is an app that is designed for the base operating system.

The dev tools (Node.js etc.) and the database engine and shell are installed on a Unix. DO NOT install these on Windows.

Using terminal windows

Do not hesitate to use multiple terminal windows. During development, your professor typically uses a minimum of three, but often about five are opened. Each is opened at a different folder, and therefore is used for different purposes:

If you’re hesitating because you’re uncomfortable with a Unix CLI, then get over it. You passed the BTI225, and BTI325 courses, so you are expected to know how to perform typical file system and app execution tasks. If your comfort level is low, then vow to improve your skillset in this area.

If you’re thinking that the terminal area of Visual Studio Code is enough for you, then that’s inefficient, confining, and often awkward, when compared to using real terminal windows.

Professional software developers use multiple terminal windows, and are comfortable and skilled doing so. Just do the right thing.

Creating folders on macOS

In your Documents folder, create a folder to hold your apps, maybe named dev. (Then inside that folder, each app will be in its own folder.)

Creating folders on Ubuntu on WSL on Windows 10

After Ubuntu (on WSL on Windows 10) is installed, a typical Unix-style file system is available. Whe you open a terminal, your present working directory (pwd) is your user’s home directory (e.g. /home/peter).

Where should you store the apps that you’re working on? In an area that’s visible from BOTH Ubuntu and the host operating system. Here’s our suggestions:

Using File Explorer, create a new folder (maybe named dev) in the root of drive C:. In other words, c:\dev. Inside that folder, we will be creating separate multiple apps (web APIs, React apps, Angular apps, etc.).

That c:\dev folder will be visible from Ubuntu as /mnt/c/dev.

Deleting old or unneeded app/project folders

As you know, when you delete a folder (using Finder or File Explorer), the folder is just “marked” as deleted, and is then managed by the operating system’s Trash folder (Unix) or Recycle Bin folder (Windows 10). Later, you can “empty” the Trash folder, which actually and permanently deletes the contents.

Why does this matter to us? Well, a typical Node.js + Express.js, or React, or Angular app has thousands of files and is hundreds of megabytes in size. If you create and then discard five (for example) apps per week, then a month later, you have a huge amount of wasted storage space, which takes a long time to actually delete (it can be minutes).

Therefore, if you want to immediately and permanently delete an old/dead/unneeded app folder: