Skip to content

anderslatif/EK_DAT_Node.js_2025_Autumn

Repository files navigation

Full Stack Node.js Semester Plan

About the course

Taught on: Thursday

Semester Plan

Title Date Description Learning Goals Resources and Activities

01. Introduction

Aug. 28

  • Intro to the course. Information about the mandatories / exam expectations.

  • Intro to Node.js.

  • Variables, data types.

  • Intro Exercises.

  • Our REST API conventions vs. Richardson Maturity Model

  • Code conventions / Clean Code

  • Can work with Git in the terminal.

  • Understand and work with data types in JavaScript.

  • Can explain what Node.js is and how to run files with it.

  • Knows the existing data types in JavaScript and can work with them.

  • Understands type coercion and strategies to avoid it.

  • Can design a REST API.

  • Knows the three REST conventions we follow:

    1. Using the right HTTP verb,

    2. Ordering,

    3. Naming (noun, plural) that maps to collections in your system.

  • While using a linter is not a requirement, having clean code is.

02. First Server

Sept. 4th

  • Code conventions / Clean Code (Strict Mode - ESLint).

  • Variables and Functions.

  • Callback functions.

  • Build tools and package managers.

  • Package.json.

  • Express.

  • Sending data with GET requests.

  • Understand scoping in Javascript and know to always use const if you can get away with it otherwise let.

  • Understand advanced things about functions in JavaScript.

  • Can write callback functions with different syntax.

  • Understands the function of NPM and can compare it with other package managers.

  • Understands the different purposes of package.json and can set it up by hand.

  • Can create a server with Express from memory.

  • Understands how to send data with GET requests over HTTP and knows how to do it in Express.

  • Understands node_modules.

03. Loop methods

Sep. 11th

  • Nodemon

  • Loops and loop methods in JS.

  • CRUDable REST API - Part I.

  • Anatomy of an URL.

  • All the ways to send data from a client to a server.

  • Serving HTML with Express.

  • Understands the use case for Nodemon and its limitation for development.

  • Can use loop methods (+map, +filter, %reduce). Can choose the right one at the appropriate time:

    • We wish to use loop methods and in a functional manner (avoiding side effects).

    • Only use for loops in JavaScript when finger counting.

  • Understands why a functional approach to loops is to be preferred and how to implement it without side effects.

  • Can use the right terminology when it comes to the different parts of an URL.

  • Can make a POST request and parse the body in Express.

04. HTML / Time

Sep. 18th

  • CRUDable REST API - Part II.

  • Time.

  • Deployment.

  • Fetch.

  • Can create a full CRUDable REST API that follows conventions.

  • Can get the Date in Javascript.

  • Can write a fetch request without hesitation.

05. Export / Import

Sep. 25th

  • Serving static files in Express.

  • Exporting and importing in frontend (type="module" attribute).

  • Commonjs vs. ES Modules in Node.js.

  • Client-side redirection vs. server-side redirection.

  • npm init and meta data in package.json.

  • Can work with both types of import/export in HTML.

  • Can import/export in both ways in Node.js (CommonJS and ES Modules). Knows the pros of using ES Modules.

  • Understands the security need for serving static files and can do it in Express.

  • Can recount the number of ways and approaches to redirection.

  • Understands the difference between client-side redirection and server-side.

06. Client vs. Server / Environment Variables

Oct. 2nd

  • Package.json scripts.

  • Environment Variables.

  • Fetching in Node.js.

  • Semantic HTML: nav, main, footer.

  • Can define and run scripts with NPM.

  • Know how to define environment variables natively in Node.js (natively = not using any libraries).

  • Fetching in the client vs. fetching in the backend.

  • Structuring HTML with semantic HTML.

  • Can point out which files are client files and which are server files.

  • Knows at least one way to style a footer so that it appears at the bottom, always.

  • Can argue for a better way to structure the frontend (assets, pages).

Work on the mandatory: Set up pages. Add lots of documentation. Implement styling including how to display code snippets.

07. Server-side Rendering (SSR) / Routers

Oct. 9th

  • Server-side rendering vs. client-side rendering.

  • Reading files.

  • Nodemon ext.

  • Understands how code and its placement affects application memory and efficiency.

  • Understands the arguments for and against SSR vs. CSR when it comes to:

    1. Load time.

    2. Ressources spent (duration, when and where).

    3. SEO.

    4. Dealing with CORS (SSR has no CORS issues).

  • Can argue for better ways to structure the code and how to avoid files that are too long.

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •