> For the complete documentation index, see [llms.txt](https://founders-and-coders.gitbook.io/coursebook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://founders-and-coders.gitbook.io/coursebook/src/course/syllabus/developer/app/learning-outcomes.md).

# learning-outcomes

### Single-page app

#### Client rendering

* [ ] Make `fetch` requests to our own server for JSON data
* [ ] Render elements in the DOM based on the server data
* [ ] Submit data to our own server, then update the DOM based on the response

#### Error handling

* [ ] Respond with useful error information to the client
* [ ] Throw errors when our server hits a problem
* [ ] Catch errors and log them correctly
* [ ] Handle errors that occur in async code
* [ ] Show the user useful messages based on server errors

### Design (UI/UX)

* [ ] Account for all possible states of a network request
* [ ] Design and create an accessible loading spinner

### Testing

* [ ] Mock `fetch` calls in our tests to avoid hitting our real API
* [ ] Test dynamic client-side interactions to ensure they behave as we expect
* [ ] Test all of our error handling
