JavaScript-IV | Arthur Lei by arturolei · Pull Request #1 · arturolei/JavaScript-IV
Expand Up
@@ -6,16 +6,16 @@ This challenge focuses on classes in JavaScript using the new `class` keyword.
**Follow these steps to set up and work on your project:**
* [ ] Create a forked copy of this project. * [ ] Add your project manager as collaborator on Github. * [ ] Clone your OWN version of the repository (Not Lambda's by mistake!). * [ ] Create a new branch: git checkout -b `<firstName-lastName>`. * [ ] Implement the project on your newly created `<firstName-lastName>` branch, committing changes regularly. * [ ] Push commits: git push origin `<firstName-lastName>`. * [X] Create a forked copy of this project. * [X] Add your project manager as collaborator on Github. * [X] Clone your OWN version of the repository (Not Lambda's by mistake!). * [X] Create a new branch: git checkout -b `<firstName-lastName>`. * [X] Implement the project on your newly created `<firstName-lastName>` branch, committing changes regularly. * [X] Push commits: git push origin `<firstName-lastName>`.
**Follow these steps for completing your project.**
* [ ] Submit a Pull-Request to merge <firstName-lastName> Branch into master (student's Repo). **Please don't merge your own pull request** * [X] Submit a Pull-Request to merge <firstName-lastName> Branch into master (student's Repo). **Please don't merge your own pull request** * [ ] Add your project manager as a reviewer on the pull-request * [ ] Your project manager will count the project as complete by merging the branch back into master.
Expand Down Expand Up @@ -45,7 +45,7 @@ const fred = new Person({ ## `prototype-refactor` - Take existing code and make it modern.
* You're going to work with your prototypes assignment you built out yesterday. * `Challenge:` **Convert** all of your constructors into ES6 Classes using the `class` and `extends` keywords. You should be able to run your same logs and they should build out the proper expected behaviors. * [X] `Challenge:` **Convert** all of your constructors into ES6 Classes using the `class` and `extends` keywords. You should be able to run your same logs and they should build out the proper expected behaviors.
## `lambda-classes` - We need a roster of Lambda School personnel. Build it!
Expand All @@ -54,7 +54,7 @@ const fred = new Person({ * **Instructors** - extensions of Person * **Students** - extensions of Person * **Project Managers** - extensions of Instructors * **IMPORTANT** - You'll need to create 2 - 3 objects for each class and test them according to their unique Attributes. For example: *[X] **IMPORTANT** - You'll need to create 2 - 3 objects for each class and test them according to their unique Attributes. For example:
```js const fred = new Instructor({ Expand All @@ -68,15 +68,13 @@ const fred = new Instructor({ }); ```
#### Person
#### Person [X] * First we need a Person class. This will be our `base-class` * Person receives `name` `age` `location` `gender` all as props * Person receives `speak` as a method. * This method logs out a phrase `Hello my name is Fred, I am from Bedrock` where `name` and `location` are the object's own props
#### Instructor
#### Instructor [X] * Now that we have a Person as our base class, we'll build our Instructor class. * Instructor uses the same attributes that have been set up by Person * Instructor has the following unique props: Expand All @@ -87,8 +85,7 @@ const fred = new Instructor({ * `demo` receives a `subject` string as an argument and logs out the phrase 'Today we are learning about {subject}' where subject is the param passed in. * `grade` receives a `student` object and a `subject` string as arguments and logs out '{student.name} receives a perfect score on {subject}'
#### Student
#### Student [X] * Now we need some students! * Student uses the same attributes that have been set up by Person * Student has the following unique props: Expand All @@ -100,8 +97,7 @@ const fred = new Instructor({ * `PRAssignment` a method that receives a subject as an argument and logs out that the `student.name has submitted a PR for {subject}` * `sprintChallenge` similar to PRAssignment but logs out `student.name has begun sprint challenge on {subject}`
#### Project Manager
#### Project Manager [X] * Now that we have instructors and students, we'd be nowhere without our PM's * ProjectManagers are extensions of Instructors * ProjectManagers have the following unique props: Expand All @@ -113,8 +109,31 @@ const fred = new Instructor({
#### Stretch Problem
* Extend the functionality of the Student by adding a prop called grade and setting it equal to a number between 1-100. * Now that our students have a grade build out a method on the Instructor (this will be used by _BOTH_ instructors and PM's) that will randomly add or subtract points to a student's grade. _Math.random_ will help. * [X] Extend the functionality of the Student by adding a prop called grade and setting it equal to a number between 1-100.
* [X] Now that our students have a grade build out a method on the Instructor (this will be used by _BOTH_ instructors and PM's) that will randomly add or subtract points to a student's grade. _Math.random_ will help.
* Add a graduate method to a student. * This method, when called, will check the grade of the student and see if they're ready to graduate from Lambda School * If the student's grade is above a 70% let them graduate! Otherwise go back to grading their assignments to increase their score.
## Reflections, Standup Report Materials
### URL for Pull Request [https://github.com/arturolei/JavaScript-IV/pull/1](https://github.com/arturolei/JavaScript-IV/pull/1)
### What Did You Work On Today: I reviewed prototypical inheritance in JavaScript and finished the Stretch Goals for JavaScript IV
### What Do I Need to Do For Tomorrow: I need to review explicit binding and other properties of `this` in preparation for the 5th day sprint.
### Breakthroughs/Challenges
#### Blockers - I still do not clearly understand hoisting. I probably need to read up on this more. - I can employ and understand superficially what it does but do not really understand what is happening under the hood with `object.create`; - I am not able to explain how prototypical inheritance differs from classical inheritance.
#### Breakthroughs - I am comfortable using the syntactical sugar of `class` in Javascript.
**Follow these steps to set up and work on your project:**
* [ ] Create a forked copy of this project. * [ ] Add your project manager as collaborator on Github. * [ ] Clone your OWN version of the repository (Not Lambda's by mistake!). * [ ] Create a new branch: git checkout -b `<firstName-lastName>`. * [ ] Implement the project on your newly created `<firstName-lastName>` branch, committing changes regularly. * [ ] Push commits: git push origin `<firstName-lastName>`. * [X] Create a forked copy of this project. * [X] Add your project manager as collaborator on Github. * [X] Clone your OWN version of the repository (Not Lambda's by mistake!). * [X] Create a new branch: git checkout -b `<firstName-lastName>`. * [X] Implement the project on your newly created `<firstName-lastName>` branch, committing changes regularly. * [X] Push commits: git push origin `<firstName-lastName>`.
**Follow these steps for completing your project.**
* [ ] Submit a Pull-Request to merge <firstName-lastName> Branch into master (student's Repo). **Please don't merge your own pull request** * [X] Submit a Pull-Request to merge <firstName-lastName> Branch into master (student's Repo). **Please don't merge your own pull request** * [ ] Add your project manager as a reviewer on the pull-request * [ ] Your project manager will count the project as complete by merging the branch back into master.
Expand Down Expand Up @@ -45,7 +45,7 @@ const fred = new Person({ ## `prototype-refactor` - Take existing code and make it modern.
* You're going to work with your prototypes assignment you built out yesterday. * `Challenge:` **Convert** all of your constructors into ES6 Classes using the `class` and `extends` keywords. You should be able to run your same logs and they should build out the proper expected behaviors. * [X] `Challenge:` **Convert** all of your constructors into ES6 Classes using the `class` and `extends` keywords. You should be able to run your same logs and they should build out the proper expected behaviors.
## `lambda-classes` - We need a roster of Lambda School personnel. Build it!
Expand All @@ -54,7 +54,7 @@ const fred = new Person({ * **Instructors** - extensions of Person * **Students** - extensions of Person * **Project Managers** - extensions of Instructors * **IMPORTANT** - You'll need to create 2 - 3 objects for each class and test them according to their unique Attributes. For example: *[X] **IMPORTANT** - You'll need to create 2 - 3 objects for each class and test them according to their unique Attributes. For example:
```js const fred = new Instructor({ Expand All @@ -68,15 +68,13 @@ const fred = new Instructor({ }); ```
#### Person
#### Person [X] * First we need a Person class. This will be our `base-class` * Person receives `name` `age` `location` `gender` all as props * Person receives `speak` as a method. * This method logs out a phrase `Hello my name is Fred, I am from Bedrock` where `name` and `location` are the object's own props
#### Instructor
#### Instructor [X] * Now that we have a Person as our base class, we'll build our Instructor class. * Instructor uses the same attributes that have been set up by Person * Instructor has the following unique props: Expand All @@ -87,8 +85,7 @@ const fred = new Instructor({ * `demo` receives a `subject` string as an argument and logs out the phrase 'Today we are learning about {subject}' where subject is the param passed in. * `grade` receives a `student` object and a `subject` string as arguments and logs out '{student.name} receives a perfect score on {subject}'
#### Student
#### Student [X] * Now we need some students! * Student uses the same attributes that have been set up by Person * Student has the following unique props: Expand All @@ -100,8 +97,7 @@ const fred = new Instructor({ * `PRAssignment` a method that receives a subject as an argument and logs out that the `student.name has submitted a PR for {subject}` * `sprintChallenge` similar to PRAssignment but logs out `student.name has begun sprint challenge on {subject}`
#### Project Manager
#### Project Manager [X] * Now that we have instructors and students, we'd be nowhere without our PM's * ProjectManagers are extensions of Instructors * ProjectManagers have the following unique props: Expand All @@ -113,8 +109,31 @@ const fred = new Instructor({
#### Stretch Problem
* Extend the functionality of the Student by adding a prop called grade and setting it equal to a number between 1-100. * Now that our students have a grade build out a method on the Instructor (this will be used by _BOTH_ instructors and PM's) that will randomly add or subtract points to a student's grade. _Math.random_ will help. * [X] Extend the functionality of the Student by adding a prop called grade and setting it equal to a number between 1-100.
* [X] Now that our students have a grade build out a method on the Instructor (this will be used by _BOTH_ instructors and PM's) that will randomly add or subtract points to a student's grade. _Math.random_ will help.
* Add a graduate method to a student. * This method, when called, will check the grade of the student and see if they're ready to graduate from Lambda School * If the student's grade is above a 70% let them graduate! Otherwise go back to grading their assignments to increase their score.
## Reflections, Standup Report Materials
### URL for Pull Request [https://github.com/arturolei/JavaScript-IV/pull/1](https://github.com/arturolei/JavaScript-IV/pull/1)
### What Did You Work On Today: I reviewed prototypical inheritance in JavaScript and finished the Stretch Goals for JavaScript IV
### What Do I Need to Do For Tomorrow: I need to review explicit binding and other properties of `this` in preparation for the 5th day sprint.
### Breakthroughs/Challenges
#### Blockers - I still do not clearly understand hoisting. I probably need to read up on this more. - I can employ and understand superficially what it does but do not really understand what is happening under the hood with `object.create`; - I am not able to explain how prototypical inheritance differs from classical inheritance.
#### Breakthroughs - I am comfortable using the syntactical sugar of `class` in Javascript.