Week 13 - Systems

App Development lifecycle

Continuous integration (CI)

Continuous Delivery (CD)

Packaging and Docker

Docker setup

Building an API server

Deployments

Intro to Cloud

Using local LLMs

Appendix 1 yaml syntax

Appendix 2 Docker commands

Practice

Assignment

Core program

Content

Let’s get practical

Exercise 1 - Github Actions

Complete the following tutorials in GitHub Learn:

Note: You need to copy the exercise to your GitHub account, wait a few seconds until it is prepared and refresh the page to see the new Readme file with exercise details.

Exercise 2 - Add CI to your week 7 project

  1. Add a GitHub Actions workflow to your Week 7 project repository that runs your unit tests on every push to main and whenever a new pull request is created. You can reuse the example from [name: Integration

on: push: branches: - main pull_request: branches: - main

jobs: test: runs-on: ubuntu-latest

steps:
  - name: Check out code
    uses: actions/checkout@v6

  - name: Set up Node.js
    uses: actions/setup-node@v6
    with:
      node-version: "24" # Can also use 'latest'

  - name: Install dependencies
    run: npm ci          # npm clean install

  - name: Run Unit Tests
    run: npm test        # Run vitest tests (defined in package.json](<https://hub.hackyourfuture.nl/name-Integration-on-push-branches-main-pull_request-branches-main-2d750f64ffc980fc90dcf32c61d733a8>).
  1. Test the workflow and make sure it passes.
  2. Create a new branch, change your code so that at least one unit test fails, push, and create a new PR.
  3. Verify that the CI runs when the PR is created and fails.
  4. Fix the failing test, push again, and verify that the workflow passes.

Exercise 3 - Build a compliments API

Build a simple Express API that returns a random compliment personalized with the user's name.

Requirements

A nice list of 100 AI generated compliments can be found here. Feel free to use it in your application.

Example response

Request:

GET /compliment/Alice

Response:

{
  "number": 14,
  "compliment": "Hey Alice, your variable names actually make sense."
}

The HackYourFuture curriculum is licensed under CC BY-NC-SA 4.0 *https://hackyourfuture.net/*

CC BY-NC-SA 4.0 Icons

Built with ❤️ by the HackYourFuture community · Thank you, contributors

Found a mistake or have a suggestion? Let us know in the feedback form.