Skip to content

Esen karatas w3 react #31

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 252 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
252 commits
Select commit Hold shift + click to select a range
4b9cfdd
chore(readme): add links for component and state
spirosikmd Jul 13, 2017
2e5cbb3
Update todo-app skeleton
spirosikmd Oct 8, 2017
3425e2b
Update week 1 homework with PR video
spirosikmd Oct 8, 2017
ad7b38c
Update week 2 homework
spirosikmd Oct 8, 2017
3d98440
Update week 3 homework
spirosikmd Oct 8, 2017
4f39703
Merge pull request #1 from spirosikmd/update-readme
spirosikmd Oct 8, 2017
597ca4a
Update homework for all weeks
spirosikmd Oct 28, 2017
fce17d5
Mention only `yarn` to avoid confusion
spirosikmd Oct 28, 2017
9b80a1c
Merge pull request #17 from HackYourFuture/update-homework
mkruijt Oct 29, 2017
2f40202
Update README.md
joostlubach Dec 3, 2017
836f070
Update README.md
joostlubach Jan 7, 2018
4cd69d7
Update clocks example
isaachinman Jan 7, 2018
f6a00e4
Merge branch 'master' of https://github.com/HackYourFuture/React
isaachinman Jan 7, 2018
cddc2aa
Adding chat app assignments
joostlubach Jan 7, 2018
8ea4164
Backgrounds
joostlubach Jan 7, 2018
4e16651
Update README.md
joostlubach Jan 7, 2018
c71230b
Update README.md
joostlubach Jan 7, 2018
40b4179
Update README.md
joostlubach Jan 8, 2018
fd4c3d7
Update README.md
joostlubach Jan 8, 2018
feeef03
Update README.md
joostlubach Jan 8, 2018
a304bea
Update README.md
joostlubach Jan 8, 2018
001dbdf
Update README.md
joostlubach Jan 8, 2018
4e26272
Update README.md
joostlubach Jan 8, 2018
fafdea7
Update README.md
joostlubach Jan 8, 2018
b462a22
Create Exercises.md
joostlubach Jan 8, 2018
dc14ffc
Update Exercises.md
joostlubach Jan 8, 2018
0841baa
Update Exercises.md
joostlubach Jan 8, 2018
4970410
Update Exercises.md
joostlubach Jan 8, 2018
2f466b4
Update Week 3.md
joostlubach Jan 8, 2018
ffbb95b
Update Week 3.md
joostlubach Jan 8, 2018
ef6b940
Update Exercises.md
joostlubach Jan 8, 2018
9ff1417
Remove all-state-in-App condition
isaachinman Jan 11, 2018
e351b5f
Merge branch 'master' of https://github.com/HackYourFuture/React
isaachinman Jan 11, 2018
72afb62
Update Week 3.md
joostlubach Jan 13, 2018
f96d615
Update Week 3.md
joostlubach Jan 13, 2018
ce56c81
Create Week 4.md
isaachinman Jan 14, 2018
a4ba52c
Update README.md
isaachinman Jan 14, 2018
c4acc15
Update Week 4.md
isaachinman Jan 14, 2018
3bc7195
Update Exercises.md
joostlubach Jan 14, 2018
ee5ba13
Update Exercises.md
joostlubach Jan 14, 2018
802f8bb
Create Week 5.md
isaachinman Jan 15, 2018
ce68df8
Update Week 5.md
isaachinman Jan 15, 2018
caa5998
Update Week 5.md
isaachinman Jan 15, 2018
15c3515
Update README.md
isaachinman Jan 15, 2018
7a505de
Restructure repository, remove unnecessary dirs
isaachinman Mar 2, 2018
0b7847b
Refactor clocks example
isaachinman Mar 2, 2018
fa6193d
Add learning examples to README
isaachinman Mar 2, 2018
037a068
Add counter example
isaachinman Mar 2, 2018
7d0bbc5
Add blog-app to examples
isaachinman Mar 9, 2018
e89ae17
Update README
isaachinman Mar 11, 2018
176999f
Update README
isaachinman Mar 11, 2018
fc8dbd7
Update blog-app example (week 3)
isaachinman Mar 12, 2018
9b14d42
Merge branch 'master' of https://github.com/HackYourFuture/React
isaachinman Mar 12, 2018
0488777
Update Week 4.md
isaachinman Mar 18, 2018
385fb69
Update Week 4.md
isaachinman Mar 18, 2018
4d55173
Update Week 4.md
isaachinman Mar 18, 2018
73ff2b6
Add blog-app-mobx example
isaachinman Mar 18, 2018
c430c32
Merge branch 'master' of https://github.com/HackYourFuture/React
isaachinman Mar 18, 2018
4c6e84d
Add counter-mobx example
isaachinman Mar 22, 2018
b66e30f
added link pr, and cc copyright
mkruijt Apr 5, 2018
24530a0
Merge pull request #83 from mkruijt/master
isaachinman Apr 7, 2018
ca6926a
Empty app skeleton for todo app
n4cr Apr 16, 2018
73099a8
Merge pull request #88 from n4cr/master
mkruijt Apr 16, 2018
a13ebf6
Add "In Class" column to Planning table and create empty MD files for…
isaachinman Apr 18, 2018
74e5820
Use relative links for local files
isaachinman Apr 18, 2018
610917b
Add lesson plan content for weeks 2-5
isaachinman Apr 18, 2018
99e8b5a
Merge pull request #90 from HackYourFuture/add-weekly-lesson-plans
mkruijt Apr 18, 2018
f256f04
Add temperature-conversion example
isaachinman Apr 29, 2018
a57708a
Add homework-submission dir
isaachinman May 6, 2018
1be9269
Remove todo-app dir
isaachinman May 6, 2018
6ab6acb
Add eslintrc and necessary deps
isaachinman May 6, 2018
e4a618a
Add babel-eslint, React settings, and fix all lint errors
isaachinman May 6, 2018
d48618c
Merge pull request #105 from HackYourFuture/restructure-homework-subm…
mkruijt May 8, 2018
20b3306
Add travis config
isaachinman May 8, 2018
8cfd4f1
Merge pull request #109 from HackYourFuture/restructure-homework-subm…
isaachinman May 8, 2018
a992bf9
Add link to HW README
isaachinman May 27, 2018
77621b9
Update homework instructions
isaachinman May 31, 2018
f656d84
add vanilla examples with mobx and react
Jul 8, 2018
175c9db
Merge pull request #168 from HackYourFuture/vanilla/examples
NoerGitKat Jul 9, 2018
e284ea8
Updating `configure` according to the MobX docs
Sep 26, 2018
3a97105
Merge pull request #237 from Jawhar-B/Jawhar-B-patch-1
Oct 11, 2018
a20083f
Removed week5, worked on w1/2/3 lesson plan and homework, removed unn…
Feb 5, 2019
bbfeb49
Modified counter app to support form, finished week 1, worked on w2/3/4
Feb 11, 2019
2094827
finished weeks 1 and 2 (homework and lesson plan
Feb 12, 2019
a31eccf
formatting
Feb 12, 2019
6c7fea5
corrected typos, rewrote some details
Feb 12, 2019
0d2aaec
Merge pull request #340 from HackYourFuture/react-v2
NoerGitKat Feb 19, 2019
1d8deb7
adjusted homework week 1
Feb 19, 2019
031a32d
Merge branch 'react-v2'
Feb 19, 2019
43c2d4f
fixed typo
Feb 19, 2019
97adc56
fixed typo
Feb 19, 2019
0a58391
finished week3 homework and lesson plan, added react-router and CRA
Feb 27, 2019
150d6dd
Switch Node material with React-Router material (week 3/4)
Feb 28, 2019
d3d44b7
tweaks in lesson plan w4
Mar 26, 2019
beed4db
homework w1 json -> js
Mar 26, 2019
0db94ad
Remove JSON references from homework week 2
ArcoMul Aug 18, 2019
734ba63
added missing '/'
suh3yb Aug 18, 2019
2160529
Merge pull request #464 from HackYourFuture/fix-week2-homework
NouranMahmoud Aug 19, 2019
793a757
Merge pull request #465 from suh3yb/master
ArcoMul Aug 19, 2019
2fd9775
Clarify what to render in homework 3
ArcoMul Oct 3, 2019
1e47799
Merge pull request #507 from HackYourFuture/hw3-clarification
nick-barth Oct 3, 2019
6618423
added test description
Oct 22, 2019
abae0b8
added new design structure, worked on readings week 1
Oct 23, 2019
e52f57b
added resources to readings w1-4
Oct 25, 2019
7c366a6
finished example reading week 1
Oct 29, 2019
f4a342c
finished homeworks week 1
Nov 12, 2019
ad9833e
added w3/4 project instructions, finished readings w3/4
Nov 13, 2019
ed38dc4
added test preparation content
Nov 13, 2019
0d6e8c8
fixed path for exercise in w1
Nov 13, 2019
b725496
changed lesson plans content w1/4, finished homeworks
Nov 16, 2019
8d4e8f3
fix: updates on hw and lesson plans
shrynx Nov 16, 2019
0cbb79b
Update LESSONPLAN.md
NoerGitKat Nov 24, 2019
6053dbd
Merge pull request #563 from shrynx/master
NoerGitKat Dec 9, 2019
1c70a5a
Update MAKEME.md
nick-barth Jan 12, 2020
836a61a
Merge pull request #572 from HackYourFuture/nick-barth-patch-1
NoerGitKat Jan 12, 2020
72745d3
Update test.md
Tjebbee Feb 24, 2020
6878be0
Bump mixin-deep from 1.3.1 to 1.3.2 in /examples/temperature-conversion
dependabot[bot] Feb 24, 2020
51d1594
Bump mixin-deep from 1.3.1 to 1.3.2 in /examples/blog-app
dependabot[bot] Feb 24, 2020
72f9588
Update LESSONPLAN.md
Tjebbee Feb 24, 2020
a4cb28f
Update LESSONPLAN.md
Tjebbee Feb 24, 2020
eb8a536
Update LESSONPLAN.md
Tjebbee Feb 24, 2020
e94adff
added code alongs with hooks, sans w4
May 13, 2020
93c7211
Merge branch 'master' into module-revision
May 13, 2020
68bb437
replaced w4 code along, added content lesson plan w1
NoerGitKat May 14, 2020
c4abfda
added content lesson plan w2, not finished
NoerGitKat May 16, 2020
921164a
Merge pull request #583 from HackYourFuture/module-revision
NoerGitKat May 16, 2020
3ce6910
Bump websocket-extensions from 0.1.3 to 0.1.4 in /examples/clocks
dependabot[bot] Jun 6, 2020
7e31c46
Bump websocket-extensions from 0.1.3 to 0.1.4 in /examples/blog-app
dependabot[bot] Jun 6, 2020
c550828
added homework submission video
NoerGitKat Jun 23, 2020
9351aa9
Merge pull request #590 from HackYourFuture/module-revision
NoerGitKat Jun 23, 2020
6ae7941
Bump lodash from 4.17.10 to 4.17.19
dependabot[bot] Jul 17, 2020
8ed4058
Bump handlebars from 4.0.11 to 4.7.6 in /examples/clocks
dependabot[bot] Sep 4, 2020
73893f8
Bump handlebars from 4.0.11 to 4.7.6 in /examples/blog-app
dependabot[bot] Sep 5, 2020
60127f5
Bump http-proxy from 1.16.2 to 1.18.1 in /examples/clocks
dependabot[bot] Sep 7, 2020
9336e7d
added weekflow and video playlist
NoerGitKat Sep 9, 2020
8a4330a
Bump http-proxy from 1.16.2 to 1.18.1 in /examples/blog-app
dependabot[bot] Sep 9, 2020
325d8f3
Update README.md
robvk Nov 15, 2020
7e696b4
Update MAKEME.md
robvk Nov 15, 2020
1f84483
Bump ini from 1.3.5 to 1.3.7 in /examples/blog-app
dependabot[bot] Dec 11, 2020
ff78d39
Bump urijs from 1.19.1 to 1.19.6 in /examples/blog-app
dependabot[bot] Mar 1, 2021
75c3c5d
Bump elliptic from 6.4.0 to 6.5.4 in /examples/blog-app
dependabot[bot] Mar 9, 2021
9ada98d
Update README.md
robvk Mar 18, 2021
34ce5f1
Bump y18n from 3.2.1 to 3.2.2 in /examples/blog-app
dependabot[bot] Mar 30, 2021
2445f7b
Merge pull request #575 from HackYourFuture/dependabot/npm_and_yarn/e…
robvk Apr 26, 2021
2c86127
Merge pull request #576 from HackYourFuture/dependabot/npm_and_yarn/e…
robvk Apr 26, 2021
92e9796
Merge pull request #586 from HackYourFuture/dependabot/npm_and_yarn/e…
robvk Apr 26, 2021
76df128
Merge pull request #589 from HackYourFuture/dependabot/npm_and_yarn/e…
robvk Apr 26, 2021
7b862cd
Merge pull request #592 from HackYourFuture/dependabot/npm_and_yarn/l…
robvk Apr 26, 2021
2d0a959
Merge pull request #597 from HackYourFuture/dependabot/npm_and_yarn/e…
robvk Apr 26, 2021
60fcdf1
Merge pull request #598 from HackYourFuture/dependabot/npm_and_yarn/e…
robvk Apr 26, 2021
66bf360
Merge pull request #600 from HackYourFuture/dependabot/npm_and_yarn/e…
robvk Apr 26, 2021
9d8c478
Merge pull request #601 from HackYourFuture/dependabot/npm_and_yarn/e…
robvk Apr 26, 2021
a004431
Merge pull request #607 from HackYourFuture/dependabot/npm_and_yarn/e…
robvk Apr 26, 2021
9665627
Merge pull request #619 from HackYourFuture/dependabot/npm_and_yarn/e…
robvk Apr 26, 2021
dd426d3
Merge pull request #615 from HackYourFuture/dependabot/npm_and_yarn/e…
robvk Apr 26, 2021
f81b1a6
Merge pull request #628 from HackYourFuture/dependabot/npm_and_yarn/e…
robvk Apr 26, 2021
2405a8c
update packages
robvk Apr 26, 2021
ece3168
redesign
robvk May 5, 2021
a329b04
Add disclaimer everywhere
robvk May 5, 2021
7342e44
Bump ua-parser-js from 0.7.18 to 0.7.28
dependabot[bot] May 7, 2021
793f9a4
Bump lodash from 4.17.19 to 4.17.21
dependabot[bot] May 9, 2021
580f589
Bump hosted-git-info from 2.6.0 to 2.8.9
dependabot[bot] May 10, 2021
e000194
Merge pull request #629 from HackYourFuture/move-to-hooks
robvk May 13, 2021
69cd12f
Update README.md
robvk May 13, 2021
5ca893f
Merge pull request #630 from HackYourFuture/dependabot/npm_and_yarn/u…
robvk May 14, 2021
1b0c293
Merge pull request #631 from HackYourFuture/dependabot/npm_and_yarn/l…
robvk May 14, 2021
171849c
Merge pull request #632 from HackYourFuture/dependabot/npm_and_yarn/h…
robvk May 14, 2021
97ed1cb
fix links
robvk May 14, 2021
5da2a7a
Update README.md
robvk May 14, 2021
3ef9c96
Update hand-in-homework-guide.md
robvk May 24, 2021
d7a770d
Add files via upload
robvk May 24, 2021
25eb68b
Update MAKEME.md
robvk May 25, 2021
9a012a0
Add ta guidelines
robvk Jul 11, 2021
bd454e7
Update README.md
robvk Sep 28, 2021
65c8cae
Added testing changes
robvk Oct 24, 2021
1c25eca
fix overview with new structure
robvk Oct 24, 2021
be61480
Merge pull request #648 from HackYourFuture/add-testing
robvk Oct 25, 2021
399192c
Implemented feedback from Christopher
robvk Oct 27, 2021
67b8950
Merge pull request #649 from HackYourFuture/add-testing
robvk Oct 27, 2021
bf69cc9
Add useCopy instructions with extra food for thought at the end
Oct 29, 2021
40741e9
Update README.md
robvk Oct 31, 2021
3ce591f
Update README.md
robvk Oct 31, 2021
9ef75d3
Merge pull request #650 from crevulus/master
robvk Oct 31, 2021
1f54600
Update README.md
robvk Oct 31, 2021
cd86d24
Update README.md
nick-barth Oct 31, 2021
dc850ad
Update README.md
robvk Oct 31, 2021
f715239
Merge pull request #652 from HackYourFuture/nick-barth-patch-2
robvk Oct 31, 2021
2fbe9f9
Add temperature data hint
Nov 6, 2021
6f6fe50
Merge pull request #654 from crevulus/master
robvk Nov 6, 2021
2607bc3
added test exercises
robvk Jan 31, 2022
0738c76
Merge pull request #661 from HackYourFuture/add-test-exercises
robvk Jan 31, 2022
cc3955d
First version
robvk Jan 31, 2022
c28a960
New project
robvk Jan 31, 2022
28c0059
Update handin name to Ecommerce Shop
robvk Feb 1, 2022
353eb7f
Merge pull request #662 from HackYourFuture/update-project-to-ecommerce
robvk Feb 1, 2022
ea3969c
Update README.md
robvk Feb 1, 2022
25af5eb
Update README.md
robvk Feb 1, 2022
0cd0631
Update README.md
robvk Feb 1, 2022
79189a0
Update project to ecommerce
robvk Feb 6, 2022
c398b78
Bump follow-redirects from 1.14.7 to 1.14.8 in /week2/test-exercises
dependabot[bot] Feb 15, 2022
e997417
Bump follow-redirects from 1.14.7 to 1.14.8 in /week3/test-exercises
dependabot[bot] Feb 15, 2022
09d4831
Merge pull request #664 from HackYourFuture/dependabot/npm_and_yarn/w…
robvk Feb 17, 2022
0d99849
Merge pull request #663 from HackYourFuture/dependabot/npm_and_yarn/w…
robvk Feb 17, 2022
af85b38
Update 3-useListState.test.js
robvk Feb 20, 2022
f41c448
Update README.md
robvk Feb 28, 2022
5c30503
Update README.md
robvk Mar 21, 2022
91186cc
Update README.md
robvk Mar 29, 2022
7fab1e2
Moved around the test exercises and started with the cypress exercise
robvk Mar 29, 2022
80eae7b
added cypress exercise
robvk Mar 30, 2022
f89c7b5
Bump minimist from 1.2.5 to 1.2.6 in /week3/test-exercises
dependabot[bot] Apr 1, 2022
116984a
Merge pull request #671 from HackYourFuture/rework-testing
robvk Apr 4, 2022
9248eb2
Merge pull request #673 from HackYourFuture/dependabot/npm_and_yarn/w…
robvk Apr 4, 2022
cfb2181
Bump node-forge from 1.2.1 to 1.3.1 in /week3/test-exercises
dependabot[bot] Apr 4, 2022
88b32bb
Merge pull request #674 from HackYourFuture/dependabot/npm_and_yarn/w…
robvk Apr 4, 2022
55418bf
Update README.md
robvk Apr 4, 2022
2192755
Update MAKEME.md
robvk Apr 6, 2022
ffdb642
Update README.md
robvk Jul 3, 2022
35d54aa
Update README.md
robvk Jul 3, 2022
176f54d
Update README.md
robvk Jul 3, 2022
810494c
Update MAKEME.md
robvk Jul 3, 2022
e8d9f8d
Update MAKEME.md
robvk Jul 3, 2022
1bc91ba
Open up practice exercises to be discussed in the QA sessions
robvk Jul 31, 2022
7b49245
update descriptions to be a little more clear
robvk Aug 3, 2022
e5d5617
Update all-products.js
robvk Aug 8, 2022
e927de5
update the product list for the extra challenge
robvk Sep 5, 2022
dd05551
Update README.md
nick-barth Mar 5, 2023
405d06f
Merge pull request #693 from HackYourFuture/nick-barth-patch-3
robvk Mar 6, 2023
76ac824
Update README.md
robvk Apr 13, 2023
28c72c2
Update README.md
robvk Apr 13, 2023
5f5a492
Update README.md
robvk Apr 13, 2023
016bfc1
Update title image
robvk Jun 5, 2023
db07458
Update README.md
robvk Jun 12, 2023
ad87b69
made a little change in the README.md file
Mrhayor Oct 23, 2023
cffa5eb
Update README.md
JosephineHYF Dec 12, 2023
7382bc6
Update README.md
JosephineHYF Dec 12, 2023
b6bd248
Update README.md
JosephineHYF Dec 12, 2023
5092341
Update README.md
JosephineHYF Dec 12, 2023
5340720
Update README.md
JosephineHYF Dec 12, 2023
eca186f
Updated week nubmers
stasel Jan 23, 2024
3410538
Bump ip
dependabot[bot] Feb 21, 2024
e33dece
Bump follow-redirects
dependabot[bot] Jan 9, 2024
e44c549
Renamed homework to assignment, class to cohort and student to traine…
stasel Mar 10, 2024
06053c3
Bump express (#728)
dependabot[bot] Mar 28, 2024
7b0922e
Bump follow-redirects (#725)
dependabot[bot] Mar 28, 2024
761dd5d
Bump webpack-dev-middleware (#727)
dependabot[bot] Mar 28, 2024
652e5f3
Bump ejs (#729)
dependabot[bot] May 19, 2024
bc3369c
refactor: create-react-app -> vite (#730)
robertoschiavone May 27, 2024
74605c6
week-3 assignment
esenkaratas Feb 11, 2025
0a9a83b
Implement favorites feature functionality
esenkaratas Feb 16, 2025
bd7d709
Final requested changes applied
esenkaratas Feb 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
node_modules
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
17 changes: 17 additions & 0 deletions EXTRA.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
## Must-reads before starting

Before learning React, you need to understand a couple of things first.

1. React makes use of the latest [JavaScript features](https://www.youtube.com/watch?v=NCwa_xi0Uuc), like [classes](https://medium.com/beginners-guide-to-mobile-web-development/javascript-introduction-to-es6-classes-ecb2db9fe985), [destructuring](https://codeburst.io/es6-destructuring-the-complete-guide-7f842d08b98f) and [higher order functions](https://www.sitepoint.com/higher-order-functions-javascript/).

It's important to become familiar with these concepts, as they will drastically help to differentiate what is React-specific and what is regular JavaScript code. In this way you'll much quicker be able to see what exactly the role of React is.

2. You need to become familiar with the idea of SPA: [Single Page Application](https://www.youtube.com/watch?v=wlVmmsMD28w). As opposed to MPA ([Multi Page Application](https://medium.com/@goldybenedict/single-page-applications-vs-multiple-page-applications-do-you-really-need-an-spa-cf60825232a3)), a SPA works with a single HTML file that switches in the content it shows the user. This is all for the sake of performance, speed and better user experience.

React makes use of this SPA structure, bundling all your JavaScript code and injecting that into your singular HTML file. When the browser loads this file React then takes care of what content to show when in an efficient way.

3. You should know the difference between [static](https://www.webnots.com/basics-of-a-static-website/) and [dynamic](https://www.webnots.com/basics-of-dynamic-websites/) websites. While the former deals with content that doesn't change, the latter customizes content depending on the user (and their actions).

There is nothing inherently bad about having static frontends. However, as websites increasingly became more interactive there arose a need to display customized content. Content that is dependent upon the user and user input. This is what React aims to do.

4. Learn about the how and why of [JavaScript frameworks](https://medium.com/dailyjs/the-deepest-reason-why-modern-javascript-frameworks-exist-933b86ebc445). Whenever building software you can build on top of what others have already done; this is why we use a framework. It not only allows us to structure our application, but also gives us tools on how to achieve certain requirements (like faster loading, and showing customized information to the user)
106 changes: 75 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,95 @@
# React
Specifications React Module
> If you are following the HackYourFuture curriculum, we recommend you to start from module 1: [HTML/CSS/GIT](https://github.com/HackYourFuture/HTML-CSS). To get a complete overview of the HackYourFuture curriculum first, click [here](https://github.com/HackYourFuture/curriculum).

## Planning
| Week | Topic | Read | Homework |
| ---- | ----- | ---- | -------- |
| 1. | React Components | TBA | [Week 1 Homework](https://github.com/HackYourFuture/React/blob/master/homework/Week%201.md) |
| 2. | Inputting data | [React Forms](https://facebook.github.io/react/docs/forms.html) | [Week 2 Homework](https://github.com/HackYourFuture/React/blob/master/homework/Week%202.md) |
| 3. | Managing application state | TBA | [Week 3 Homework](https://github.com/HackYourFuture/React/blob/master/homework/Week%203.md) |
> Please help us improve and share your feedback! If you find better tutorials or links, please share them by [opening a pull request](https://github.com/HackYourFuture/React/pulls).

# Module #7 - React.js: Building dynamic UIs with modern JavaScript (Frontend)

![React Module](./assets/react.png)

Welcome to the React module! Congratulations on making it this far!

In these four weeks, we will go back to the frontend and learn how to make faster, more modern user interfaces. In the HTML and JavaScript modules, you've learned all about creating webpages that hold unchanging data. No matter who is using the website, the data will always be the same. We call this a `static website`. At the same time you've build various HTML pages so the user is able to access various parts of the website. We call this a `multi-page application (MPA)`.

In the Node.js module, you've learned about how to change the content of the page, based on the user's input, using a `templating engine`. Type in a keyword and the server sends back a `template` with customized data. We call this a `dynamic website`. However, we did it in such a way were we still had to send different pages to the client depending on the URL (for example, `/` or `/users`). This is also an MPA.

In this module, however, you'll learn how to make more complex websites. Though we won't be calling them websites anymore: they'll be `web applications`. They're not just informational, but allow the user to interact with it. This similar to any application on your desktop. These React applications will also deal with `dynamic data`: its `state` changes depending on who's using it.

Besides being dynamic, React applications also are `single page applications (SPA)`. Essentially, this means that on loading the whole application (every page and its contents) is accessible to the user, without the need to send requests to the server to get another page.

## Before you start

## Read up before we get started
In order to properly work through this module smoothly, we're going to use software that will allow us to write React applications with ease. It's called `vite`.

Watch this video from Facebook about why they started React:
Go to your command line and execute the following:

https://youtu.be/nYkdrAPrdcw
```bash
npm create vite FOLDER_NAME -- --template react
```

Also be sure you're familiar with ES6-syntax. See this video about ES6 (the video is in Node, but the syntax for React is the same):
Now verify that you have it by executing the following:

https://www.lynda.com/Node-js-tutorials/Switching-ES6-Node-js/546100-2.html
```bash
vite --version
```

This is a handy reference of all features of ES6:
It should be at least version `5.x.y`.

http://es6-features.org
## Learning goals

Please *do not worry about understanding all*. However, do make sure you understand the following, as we'll be using them a lot:
In order to successfully complete this module you will need to master the following:

- http://es6-features.org/#Constants
- http://es6-features.org/#ObjectMatchingShorthandNotation
- http://es6-features.org/#RestParameter
- http://es6-features.org/#SpreadOperator
- Understand the React way of thinking about `user interfaces`;
- Know the importance and place of `state` and how to pass it down;
- Be able to work with different `hooks` and even create your own;
- Recognize the utility of `modularization`;
- Putting emphasis on writing reusable code (`components`);
- How to handle `client-side routing`.

Read about React here:
## How to use this repository

https://facebook.github.io/react/
### Repository content

## Handing in homework
Take a look at [this video](https://www.youtube.com/watch?v=-o0yomUVVpU&index=2&list=PLVYDhqbgYpYUGxRdtQdYVE5Q8h3bt6SIA) made by Daan, he explains how your homework needs to be handed in.
This repository consists of 3 essential parts:

Also review the Git [workflow material](https://github.com/HackYourFuture/Git/blob/master/Lecture-3.md) from the JavaScript3 module, use this as a reference.
1. `README`: this document contains all the required theory you need to understand **while** working on the assignment. It contains not only the right resources to learn about the concepts, but also lectures done by HackYourFuture teachers. This is the **first thing** you should start with every week.
2. `MAKEME`: this document contains the instructions for each week's assignment. Start with the exercises rather quickly, so that you can ground the concepts you read about earlier.
3. `LESSONPLAN`: this document is meant for teachers as a reference. However, as a trainee don't be shy to take a look at it as well!

### How to study

Let's say you are just starting out with the Databases module. This is what you do:

1. The week always starts on **Wednesday**. First thing you'll do is open the `README.md` for that week. For the first week of `Databases`, that would be [Week1 Reading](/Week1/README.md).
2. You spend **Wednesday** and **Thursday** going over the resources and try to get a basic understanding of the concepts. In the meanwhile, you'll also implement any feedback you got on last week's assignment (from the Node.js module).
3. On **Friday** you start with the assignment, found in the `MAKEME.md`. For the first week of `React`, that would be [Week1 assignment](/week1/MAKEME.md).
4. You spend **Friday** and **Saturday** playing around with the exercises and write down any questions you might have.
5. **DEADLINE 1**: You'll submit any questions you might have before **Saturday 23.59**, in the class channel.
6. On **Sunday** you'll attend class. It'll be of the Q&A format, meaning that there will be no new material. Instead your questions shall be discussed and you can learn from others.
7. You spend **Monday** and **Tuesday** finalizing your assignment.
8. **DEADLINE 2**: You submit your assignment to the right channels (GitHub) before **Tuesday 23.59**. If you can't make it on time, please communicate it with your mentor.
9. Start the new week by going back to point 1!

In summary:

![Weekflow](assets/weekflow.png)

To have a more detailed overview of the guidelines, please read [this document](https://docs.google.com/document/d/1JUaEbxMQTyljAPFsWIbbLwwvvIXZ0VCHmCCN8RaeVIc/edit?usp=sharing) or ask your mentor/cohort on Slack!

## Planning

## Slides
| Week | Topics | Reading Materials | Assignment |
| ---- | ------------------------------------------------------- | -------------------------------- | -------------------------------- |
| 1. | What is React, JSX, State & Props, Deploy a static site | [Readings W1](./week1/README.md) | [Assignment W1](./week1/MAKEME.md) |
| 2. | API calls, Testing | [Readings W2](./week2/README.md) | [Assignment W2](./week2/MAKEME.md) |
| 3. | Client-side routing, Context, Custom hooks | [Readings W3](./week3/README.md) | [Assignment W3](./week3/MAKEME.md) |
| 4. | Project! | [Readings W4](./week4/README.md) | |

Find the slides used in class here:
## Finished?

https://slides.com/joostlubach/react-class/live
Did you finish the module? Impressive!

## Real world example
If you feel ready for the **final** challenge, click [here](https://www.github.com/HackYourFuture/Project) to go to project! _Note that reviewing the feedback on your previous assignments remains the priority._

Have a look at Mattijn's real world React project:
_The HackYourFuture curriculum is subject to CC BY copyright. This means you can freely use our materials, but just make sure to give us credit for it :)_

https://github.com/mattijnlahuis/beertools
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.
23 changes: 0 additions & 23 deletions SETUP.md

This file was deleted.

Binary file added assets/componenthierarchy.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 assets/componentization.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 assets/cypress-window.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 assets/navbar.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 assets/playlist-thumbnail.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 assets/posts.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 assets/project/week1.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 assets/project/week2.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 assets/project/week3.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 assets/react.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 assets/stats.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 assets/submit-assignment.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 assets/weekflow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 0 additions & 21 deletions clocks/.gitignore

This file was deleted.

Loading