CodeYourFuture / CodeYourFuture/curriculum
Thread understanding of how frontends are served through the courses
- 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
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