Skip to content

Commit

Permalink
Merge branch 'main' into resourse
Browse files Browse the repository at this point in the history
  • Loading branch information
Yosolita1978 authored Jul 27, 2022
2 parents 55c7bb1 + ab78b88 commit 591267c
Show file tree
Hide file tree
Showing 291 changed files with 109,962 additions and 1,766 deletions.
94 changes: 51 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,12 @@ The following is the approximate sequence of the topics during the program but i
- [Week 1 - Onboarding & Developer Tools](#week-1---onboarding--developer-tools)
- [Week 2 - Webpages: HTML & CSS](#week-2---webpages-html--css)
- [Week 3 - JavaScript Fundamentals](#week-3---javascript-fundamentals)
- [Week 4 - Intermediate JavaScript](#week-4---intermediate-javascript)
- [Week 5 - Eventonica & Advanced JavaScript](#week-5---eventonica--advanced-javascript)
- [Week 6 - Web API's](#week-6---web-apis)
- [Week 7 - Databases](#week-7---databases)
- [Week 8 - Eventonica with React](#week-8---eventonica-with-react)
- [Week 9 - PERN Mini-Project (Postgres Express React Node)](#week-9---pern-mini-project-postgresexpressreactnode)
- [Week 4 - Intermediate JavaScript and React](#week-4---intermediate-javascript-and-React)
- [Week 5 - Web APIs](#week-5---web-apis)
- [Week 6 - Databases](#week-6---databases)
- [Week 7 - Advanced JS and React](#week-7---Advanced-JS-and-React)
- [Week 8 - Testing](#week-8---Testing)
- [Week 9 - Eventonica Project](#week-9---eventonica)
- [Week 10 - More PERN & Review](#week-10---more-pern--assessments)
- [Week 11 - Data Structures & Algorithms](#week-11---data-structures--algorithms)
- [Data Structures](#data-structures)
Expand Down Expand Up @@ -83,22 +83,26 @@ Participants should memorize [common JavaScript built-in functions](/javascript/
1. [Ergonomics](/onboarding/ergonomics.md)
1. [Growth Mindset](/onboarding/YCLA_LessonPlan_v10.pdf)
1. [Asking Good Questions](/onboarding/asking-good-questions.md)
1. [Local Development with VS Code](/dev-tools/vscode.md)
1. [Networking (Career)](/career/networking-career.md)
1. [How the Internet Works (The Other Kind of Networking)](/networking-computing/README.md)
1. [Intro to DNS](/networking-computing/intro-to-dns-ip.md)
1. [Chrome Developer Tools: Setup](/chrome-developer-tools/chrome-developer-tools.md)
1. One of either: [Living in Open Workspaces](onboarding/living-in-open-workspaces.md) or [Working Remotely](career/working-and-collaborating-remotely.md) depending on program status. 😷
1. [HTML](/web/html.md)
1. [Intro to CSS](/web/css.md)
1. [JS HTML DOM Methods](/web/js-dom-methods.md)
1. [Debugging](/debugging/debugging.md)
1. [Recipe Page Project: HTML](/projects/recipe-page/phase-1-html-prompt.md)

### Week 2 - Webpages: HTML & CSS

1. [Git Version Control](/git/git-version-control.md)
1. [Recipe Page Project: HTML](/projects/recipe-page/phase-1-html-prompt.md)
1. [.gitignore](/git/gitignore.md)
1. [Using GitHub for Code Storage](/git/github-storage.md)
1. [CSS](/web/css.md)
1. [GitHub Collaboration](/git/github-collaboration.md)
1. [Operating Systems](/dev-tools/operating-systems.md)
1. [Local Development with VS Code](/dev-tools/vscode.md)
1. [Article: What Exactly is the DOM?](https://bitsofco.de/what-exactly-is-the-dom/)
1. [Chrome Developer Tools: Setup](/chrome-developer-tools/chrome-developer-tools.md)
1. [How the Internet Works (The Other Kind of Networking)](/networking-computing/README.md)
1. [Intro to DNS](/networking-computing/intro-to-dns-ip.md)
1. [Recipe Page Project: CSS](/projects/recipe-page/phase-2-css-prompt.md)
1. [Media Queries](/web/media-queries.md)
1. [UI/UX](/ui-ux-design/ui-ux-design.md)
Expand All @@ -114,7 +118,6 @@ Participants should memorize [common JavaScript built-in functions](/javascript/
1. [Writing Readable Code](/writing-readable-code/writing-readable-code.md)
1. [Deploy your Portfolio Project: Deploying Client-Side Apps with Netlify](/deploying/deploying-1-personal-site.md)
1. [Portfolio Project: Collaboration and Review](/projects/portfolio/portfolio-webpage-3.md)
1. [Debugging](/debugging/debugging.md)

### Week 3 - JavaScript Fundamentals

Expand All @@ -129,65 +132,70 @@ Participants should memorize [common JavaScript built-in functions](/javascript/
1. [Testing & TDD](/testing-and-tdd/testing-and-tdd.md)
1. [Assigned Reading - Eloquent JavaScript](https://eloquentjavascript.net/Eloquent_JavaScript.pdf)

### Week 4 - Intermediate JavaScript
### Week 4 - Intermediate JavaScript and React

1. [JavaScript DOM Manipulation](/web/js-dom-methods.md) - _formerly jQuery_
1. [HTML/JS Game Project](/projects/js-html-games.md)
1. [a11y: Accessibility](/web/accessibility.md)
1. [Portfolio Project: Incorporating a11y](/projects/portfolio/portfolio-webpage-2.md)
1. [SEO](/seo/seo.md)
1. [Portfolio Project: Incorporate SEO & a11y](/projects/portfolio/portfolio-webpage-2.md)
1. [JavaScript 7 - Object-Oriented Programming](/javascript/javascript-7-oop.md)
1. [Mini Project: Object Oriented Programming in JS](/javascript/first-js-oop-project.md)
1. [Adding Jest Tests to your project](/testing-and-tdd/jest.md)
1. [Functional Programming](/functional-programming/FP.md)
1. [All React Lessons](/react-js)

### Week 5 - Eventonica & Advanced JavaScript
### Week 5 - Web APIs

1. [Eventonica Project](/projects/eventonica-react)
1. [Node](/node-js/node-js.md)
1. [JavaScript 8 - Regular Expressions / RegEx](/javascript/javascript-8-regex.md)
1. [JavaScript 9 - Async, Callbacks, Promises](/javascript/javascript-9-async.md)
1. [Runtime Complexity](/runtime-complexity/runtime-complexity.md)
1. [Functional Programming](/functional-programming/FP.md)

### Week 6 - Web API's

1. [Intro to HTTP](/api/intro-to-http.md)
1. [HTTP Requests Practice](/api/http-request-practice.md)
1. [Intro to JSON](https://www.digitalocean.com/community/tutorials/an-introduction-to-json) (DigitalOcean)
1. [APIs & JSON](/api/apis-and-json.md)
1. [TwilioQuest Exercise](/api/twilio-api.md)
1. [REST APIs](/api/REST-API.md)
1. [Eventonica Part 4 - REST API](/projects/eventonica/eventonica-part4-apis.md)
1. [Node](/node-js/node-js.md)
1. [import & require](/javascript/require-and-import-mini-lesson.md)
1. [HTTP Requests Practice](/api/http-request-practice.md)
1. [Express](/express-js/express.md)
1. [REST APIs](/api/REST-API.md)

### Week 7 - Databases
### Week 6 - Databases

1. [JavaScript 9 - Async, Callbacks, Promises](/javascript/javascript-9-async.md)
1. [Intro to JSON](https://www.digitalocean.com/community/tutorials/an-introduction-to-json) (DigitalOcean)
1. [AJAX](/web/ajax.md)
1. [.env & config files](/command-line/env.md)
1. [TwilioQuest Exercise](/api/twilio-api.md)
1. [import & require](/javascript/require-and-import-mini-lesson.md)
1. [Install Postgres](/databases/installing-postgresql.md)
1. [Intro to Databases](/databases/database-intro.md)
1. [Data Modeling 1 (Single tables)](/databases/data-modeling-1.md)
1. [Install Postgres](/databases/installing-postgresql.md)
1. [SQL 1 (Single tables)](/databases/sql-1.md)
1. [Data Modeling 2 (Multiple tables)](/databases/data-modeling-2.md)
1. [SQL 2 (Multiple tables)](/databases/sql-2.md)
1. [Intro to Docker](/docker/intro-docker.md)
1. [Install and Run PostgreSQL using Docker](/databases/install-postgres-with-docker.md)

### Week 7 - Advanced JS and React

1. [Full-Stack Web App Using React and Express](/pair-programming/week-7/react-express-app/react-expressjs.md)
1. [Recursion](/recursion/recursion.md)
1. [JavaScript Set object](https://www.javascripttutorial.net/es6/javascript-set/)

### Week 8 - Testing

1. [Adding Tests to your NodeJS project](/testing-and-tdd/integration-testing.md)
1. [Testing with Jest](/testing-and-tdd/jest.md)
1. [Rithm School- Testing with Jest](https://www.rithmschool.com/courses/intermediate-react/testing-with-jest)
1. [API testing with Jest](https://jestjs.io/docs/tutorial-async)
1. [Testing React Components with Jest and React Testing Library](/testing-and-tdd/react-testing-jest-and-RTL.md)

### Week 8 - Eventonica with React
### Week 9 - Eventonica

1. [Eventonica Project](/projects/eventonica/eventonica-project.md)
1. [All React Lessons](/react-js)
1. [Eventonica Project](/project-example/week-9/eventonica)

### Week 9 - PERN Mini-Project (Postgres+Express+React+Node)
### Week 10 - Full Stack Practice

1. [Deploying to Heroku with React and Node](/deploying/deploying-to-heroku.md)
1. [Optimizing your React/NodeJS Project](/electives/optimization/optimizing-your-react-node-project.md)
1. [Enzyme Testing](/testing-and-tdd/enzyme-testing.md)

### Week 10 - More PERN & Review

1. Finishing PERN Mini-Project
1. Coding assessment
1. App development assessment
1. [Recursion](/recursion/recursion.md)

### Week 11 - Data Structures & Algorithms

#### Data Structures
Expand Down
107 changes: 97 additions & 10 deletions api/REST-API.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,7 @@ Moreover, `What's an API?` and `Can you explain to me what is REST?` are two ver

[PART II: Guided Practice](#part-ii-guided-practice)

- [Planning](#planning)
- [Building the API](#building-the-api):
- [Build the server](#build-the-server)
- [Build the API](#build-the-api)
- [Call REST APIs Using POSTMAN Client](#call-rest-apis-using-postman-client)

[PART III: Reference, Practice and Supplemental Materials](#part-iii-reference-practice-and-supplemental-materials)

Expand Down Expand Up @@ -143,11 +140,102 @@ DELETE /customers/{id} : Delete customer with "id"

## PART II: Guided Practice

### Call REST APIs Using POSTMAN Client

**Postman** is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster.

Before working with the testing of API using POSTMAN, install the application from this [link](https://www.postman.com/downloads/).

In POSTMAN, there are many methods but we use only GET, PUT, POST and DELETE

![](screenshot-restapi/postman-methods.png)

#### Working with GET Requests

**Sends the request and receives the response.**

_Steps to Execute_:

1. Select a `GET` from the dropdown.
2. In the Request Builder, specify the URL of the resource that you want to access. In this example, the URL to access the activity resource is `https://reqres.in/api/users`.
3. Click on `Send` button
4. You will see Status code 200 OK Message
5. There should be 12 user results in the body which indicates that your test has run successfully.

![](screenshot-restapi/get.png)

If data is not available against our search, we get blank JSON and 404 status message.

![](screenshot-restapi/get404.png)

#### Working with POST Requests

**Create a new user or an entity.**

_Steps to Execute:_

1. Select a `POST` from the dropdown.
2. In the Request Builder, specify the URL of the resource that you want to access. In this example, the URL to access the activity resource is `https://reqres.in/api/users`.
3. Click the `Body` tab
4. Select `raw` as the body type.
5. Select `JSON` as the format.

- Pass this payload

```json
{
"email": "[email protected]",
"first_name": "Abc",
"last_name": "Xyz",
"avatar": "https://reqres.in/img/faces/1-image.jpg"
}
```

6. Click Send.
7. On successful creation of the activity, Postman returns the response body.

![](screenshot-restapi/post.png)

#### Working with PUT Requests

**Updates or creates a new entity.**

_Steps to Execute:_

1. Select a `PUT` from the dropdown.
2. In the Request Builder, specify the URL of the resource that you want to access. In this example, the URL to access the activity resource is `https://reqres.in/api/users/13`.
3. Click the `Body` tab
4. Select `raw` as the body type.
5. Select `JSON` as the format.
- Pass json payload you want to update
6. Click on `Send` button
7. You will see Status code 200 OK Message and updated user data

![](screenshot-restapi/put.png)

#### Working with DELETE Requests

**Deletes the user or entity**

_Steps to Execute:_

1. Select a `DELETE` from the dropdown.
2. In the Request Builder, specify the URL of the resource that you want to access. In this example, the URL to access the activity resource is `https://reqres.in/api/users/13`.
3. Click on `Send` button
4. You will see Status code 204 - No Content, and Deletes user id =13 if available in the system

![](screenshot-restapi/delete.png)

> Note: You can revisit this section once you have completed [Express JS](../express-js/express.md)
<details>
<summary>Building a simple REST API with NodeJS and Express.</summary>

Now for the good part! Let's code together and build a small RESTful API, which will store and change data which is hard-coded within the project file. This will mimic changes that would normally occur in a database, should the API be used in a real application.

### Planning

The first thing I like to do when builing an API is to plan it out. This helps me to consider what routes I will need in terms of resources, nouns, etc.
The first thing I like to do when building an API is to plan it out. This helps me to consider what routes I will need in terms of resources, nouns, etc.

The API we will build is a simple customer management tool where we have customers and invoices resources.

Expand Down Expand Up @@ -344,7 +432,9 @@ app.route('/customers').get((req, res) => {
});
```

Now, if you test your route with Postman or by opening a browser and going to `http://localhost:3000/customers`, you should see:
Now kill the server by pressing `Ctrl`+`C` and restart the server by running `node server.js`.

Now if you test your route with Postman or by opening a browser and going to `http://localhost:3000/customers`, you should see:

```json
[
Expand Down Expand Up @@ -545,7 +635,7 @@ Finally, for the `DELETE` method:

And there you go! You now have a complete functioning RESTful API with full CRUD functionality!

---
</details>

## PART III: Reference, Practice and Supplemental Materials

Expand Down Expand Up @@ -614,6 +704,3 @@ Because practice makes perfect, especially with REST APIs, work with you pair on
- [Future Vision on Medium](https://medium.com/future-vision/what-are-the-constraints-of-rest-and-how-they-saved-the-internet-6fb8503138ab)
- [A visual blog post](https://blog.appscrip.com/what-is-restful-api-key-constraints-use-cases/)




Binary file added api/apirequest.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 7 additions & 7 deletions api/http-request-practice.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

### Motivation

HTTP is the most common way you will retrieve anything from the internet: usually web pages or API data (see [API & JSON lesson](./api/apis-and-json.md)). It's the backbone of the web. Since HTTP is so simple and versatile (it's just text!), you can make requests lots of different ways.
HTTP is the most common way you will retrieve anything from the internet: usually web pages or API data (see [API & JSON lesson](./apis-and-json.md)). It's the backbone of the web. Since HTTP is so simple and versatile (it's just text!), you can make requests lots of different ways.

### Objectives

Expand All @@ -32,15 +32,15 @@ HTTP is the most common way you will retrieve anything from the internet: usuall

HTTP requests are text-based messages used to request a resource from a server. In these lessons we'll focus on GET requests but there are other methods as well, such as POST, which is used on a form to submit data or in an API to save data.

- [Google Slides](https://docs.google.com/presentation/d/1UI4XmRD3usA67ddO_8VLU3vAR4zfFXWZZaiUSKNLCXM/edit#slide=id.p)
- [Google Slides](https://docs.google.com/presentation/d/1ZdnhhGbwyJcmgPnTn6eeHjdhekUvo0ht70MwC7Ll5zw/edit#slide=id.p)

#### Postman - Time API

Open Postman to make a new GET request.

`https://worldtimeapi.org/api/ip`
`http://worldtimeapi.org/api/ip`

![](postman-time-example.png)
![](apirequest.png)

Inspect the result. If you want you can try out other types of requests listed on the [API doc](http://worldtimeapi.org/). Varying the URL will give you different data.

Expand All @@ -50,15 +50,15 @@ Now let's make the same request using the [`curl`](https://en.wikipedia.org/wiki

Find the `Code` link in Postman on the right.

![](postman-code.png)
![](./postman-curl.gif)

This will allow us to make the same request using a variety of other tools. Choose `cURL` from the dropdown.

You will see something like this:

```bash
curl -X GET \
https://worldtimeapi.org/api/ip \
http://worldtimeapi.org/api/ip \
-H 'Accept: */*' \
-H 'Accept-Encoding: gzip, deflate' \
-H 'Cache-Control: no-cache' \
Expand Down Expand Up @@ -103,7 +103,7 @@ function reqListener() {

let oReq = new XMLHttpRequest();
oReq.addEventListener('load', reqListener);
oReq.open('GET', 'https://worldtimeapi.org/api/ip');
oReq.open('GET', 'http://worldtimeapi.org/api/ip');
oReq.send();
```

Expand Down
2 changes: 1 addition & 1 deletion api/intro-to-http.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Approximately 2 hours

### Prerequisites

- [How the Internet Works](/networking-computing/README.md)
- [How the Internet Works](../networking-computing/README.md)

### Motivation

Expand Down
Binary file removed api/postman-code.png
Binary file not shown.
Binary file added api/postman-curl.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed api/postman-time-example.png
Binary file not shown.
Binary file added api/screenshot-restapi/delete.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added api/screenshot-restapi/get.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added api/screenshot-restapi/get404.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added api/screenshot-restapi/post.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added api/screenshot-restapi/postman-methods.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added api/screenshot-restapi/put.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion career/building-confidence.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ You’ll communicate more effectively: Confidence allows you to speak concisely
Slides

- [Building Confidence](https://docs.google.com/presentation/d/1EauFdEp4UJcBK50ioj-giPwFeWf2FHc7i_rn0XGf5f8/edit)
- [Confidence in the Workplace](https://docs.google.com/presentation/d/1pV0Yftkg98GxWTHSYbPRjFS8PKkJxPgJzeCwpZa_qNE/edit?usp=sharing)
- [Confidence in the Workplace](https://www.indeed.com/career-advice/career-development/self-confidence#:~:text=Examples%20of%20self%2Dconfidence%20in%20the%20workplace&text=Always%20doing%20the%20right%20thing,Accepting%20praise%20for%20completed%20projects.)

Videos:

Expand Down
2 changes: 1 addition & 1 deletion career/difficult-workplace-situations.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ About 1 hour 20 minutes

### Prerequisites

- [Professionalism](professionalism.md)
- [Professionalism](/onboarding/professionalism.md)

### Motivation

Expand Down
Loading

0 comments on commit 591267c

Please sign in to comment.