arrow-left

All pages
gitbookPowered by GitBook
1 of 5

Loading...

Loading...

Loading...

Loading...

Loading...

app

schedule

hashtag
Day 1

Time
Activity
Learning outcomes

09:45

Check-in

hashtag
Day 2

Time
Activity
Learning outcomes

hashtag
Day 3

Time
Activity
Learning outcomes

hashtag
Day 4

Time
Activity

hashtag
Day 5

Time
Activity

learning-outcomes

hashtag
Single-page app

hashtag
Client rendering

spikes

hashtag
ES Modules

How can we modularise our client-side JavaScript?

hashtag
Questions to consider

project

Your project this week is to build a frontend for one of the APIs from REST API week. It should be a single-page app rendered with client-side JavaScript.

If your team don't have a finished API, or don't want to use it, you can use the from the workshops. The readme contains documentation of all the endpoints.

hashtag
User stories

  • hashtag
    Error handling

    hashtag
    Design (UI/UX)

    hashtag
    Testing

    • What are the different ways we can import/export code? What does "dynamic import" do?

    • Why might using hundreds of small modules in the browser cause performance problems?

    hashtag
    Useful resources

    • Modules | JavaScript for impatient programmersarrow-up-right

    • ES modules: A cartoon deep-divearrow-up-right

    hashtag
    Browser rendering

    What is the "critical rendering path" in browsers?

    hashtag
    Questions to consider

    • How does the browser render an HTML page containing links to CSS and JavaScript files?

    • What does "render blocking" mean?

    • What do the async and defer keywords do?

    hashtag
    Useful resources

    • Understanding the Critical Rendering Patharrow-up-right

    • Efficiently load JavaScript with defer and asyncarrow-up-right

    hashtag
    Browser caching

    How can we avoid unnecessary network requests?

    hashtag
    Questions to consider

    • What is HTTP caching?

    • How can our server tell browsers to cache our responses?

    hashtag
    Useful resources

    • HTTP Caching | Web Fundamentalsarrow-up-right

    • The HTTP cache: your first line of defensearrow-up-right

    hashtag
    Image performance

    How we can efficiently serve image assets?

    hashtag
    Questions to consider

    • How can we optimise image file size?

    • How can we render different images at different viewport sizes?

    hashtag
    Useful resources

    • Image Optimization | Web Fundamentalsarrow-up-right

    • Responsive Images: If you’re just changing resolutions, use srcsetarrow-up-right

    • Native lazy-loading for the webarrow-up-right

    hashtag
    Core
    • As a user, I want to: see all the resources

    • As a user, I want to: sign up for an account

    • As a user, I want to: log in to my account

    • As a user, I want to: add my own resources

    hashtag
    Stretch

    • As a user, I want to: update my own resources

    • As a user, I want to: delete my own resources

    Since this project is open-ended you'll need to write your own more specific user stories once you know what you want to build.

    hashtag
    Acceptance Criteria

    hashtag
    Stretch criteria

    Dogs APIarrow-up-right

    localStorage, token auth

    13:00

    Lunch

    14:00

    Student project session

    14:30

    live regions, status updates

    16:00

    Tech for Better

    17:00

    Speaker

    17:45

    Check out

    Role circles

    13:00

    Lunch

    16:30

    17:00

    Tech for Better

    17:45

    Check out

    Presentation prep

    13:00

    Lunch

    14:00

    Presentations

    15:15

    Cohort SGC

    16:00

    Team SGC

    16:45

    Update user manuals

    17:00

    Speaker

    17:45

    Check out

    10:00

    Intro presentationarrow-up-right

    10:30

    Intro to ES Modulesarrow-up-right

    Native JS modules

    11:00

    Client-side renderingarrow-up-right

    innerHTML, Template element

    13:00

    Lunch

    14:00

    Component architecturearrow-up-right

    Components, Stateful rendering

    16:00

    Projectarrow-up-right and spikesarrow-up-right intro

    16:15

    Technical spikesarrow-up-right

    17:15

    Spike presentation prep

    17:45

    Checkout

    09:45

    Check-in

    10:00

    Spike presentation prep

    10:10

    Spike presentations

    09:45

    Check-in

    10:00

    Pseudo-elements challengearrow-up-right

    CSS pseudo-elements

    11:00

    Project

    09:45

    Check-in

    10:00

    Project

    13:00

    Lunch

    14:00

    Project

    17:45

    Check out

    09:45

    Check-in

    10:00

    Team code review

    10:45

    Expert Feedback - Live code review

    11:15

    Respond to issues

    12:00

    Role circles

    11:00

    12:45

    12:15

    Token authenticationarrow-up-right
    Accessible status messagesarrow-up-right
    Employment: Portfolio sitearrow-up-right