CodeYourFuture / CodeYourFuture/curriculum

Thread understanding of how frontends are served through the courses

Open
#1,941 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
HTML
Stars
76
Forks
135
Avg merge
1d 3h
Merged PRs (30d)
20

Description

In ITP we don't really explain that there's a difference between serving over `file://` scheme and serving with a static file host like `python3 -m http.server`. We basically [just tell people to do this in the last week of ITP](https://curriculum.codeyourfuture.io/itp/data-flows/sprints/3/prep/#using-.fetch).

Then in SDC [we introduce the idea of a backend](https://curriculum.codeyourfuture.io/sdc/decomposition/sprints/1/prep/) and that frontends and backends talk to each other.

We've been noticing in mock interviews that almost no trainees have a good mental model for what happens when you open a page in a browser. The idea that first you're making an HTTP GET for a file which is of content-type `text/html` and then that may trigger other loads, and the JS there may trigger a request of content-type `application/json` is completely lost on people. They often think _all_ requests to _any_ server must be of content-type `application/json`.

We probably want to expand the ITP content on "what happens when you load a page" and "why do we need an HTTP server for static frontend files" a little, and then in SDC Decomposition when we introduce backends, add some coverage of what the set of exchanges to load a page actually look like.

Contributor guide

Open the contributing guide

Research direction

Start by reading the ITP data-flows/sprints/3/prep/#using-.fetch section and the SDC decomposition/sprints/1/prep/ section linked in the issue. Update the curriculum so ITP explains file:// versus an HTTP server and the sequence of page-load exchanges, then ensure SDC introduces the frontend/backend exchanges and content types described here.

Written by the indexing model from the issue text.

Assessment

Tech stack
html, javascript, python
Domain
documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.