├── README.md
└── materials
├── React-Intro-2019.pdf
├── code-reviews.pdf
├── fetch-and-React-2019.pdf
├── first_project_presentation_template.pdf
├── learn-react-1.md
├── lecture-01.pdf
├── lecture-03.pdf
├── lecture-04.pdf
├── lecture-05.pdf
└── team-project-proposal.md
/README.md:
--------------------------------------------------------------------------------
1 | **_CUNY Tech Prep 2020-2021_**
2 |
3 | [CUNY Tech Prep](http://cunytechprep.nyc/) is a [NYC Tech Talent Pipeline](http://www.techtalentpipeline.nyc/) program designed to provide exceptional Computer Science students in the [CUNY](https://www.cuny.edu/) senior college system with in-demand software development and professional skills.
4 |
5 | ---
6 |
7 | # Fall 2020 Web Dev Track
_Class Schedule and Materials_
8 |
9 | ## Summer Prep Work
10 |
11 | [Summer Homework](https://docs.google.com/document/d/1sVWDAxWoFSsgaG8eIDmZ7eqD1bvMH-Ac8c-Rbt2Dj5s/edit?usp=sharing)
12 |
13 | ## (9/1 - 9/4) Week 1
14 |
15 | [Lecture Slides](materials/lecture-01.pdf)
16 |
17 | [Bootstrap Lab](https://github.com/CUNYTechPrep/bootstrap-lab)
18 |
19 | Topics:
20 |
21 | - Semester Overview
22 | - Designing Web Apps
23 | - Review: HTML & CSS
24 | - Intro to Bootstrap
25 |
26 | Assignments:
27 |
28 | - Project Ideation: provide your idea in the ideation document
29 | - Meet your classmates and form teams
30 |
31 | ## (9/8 - 9/11) Week 2
32 |
33 | [Lecture Slides](materials/React-Intro-2019.pdf)
34 |
35 | [Learn React 1: Step by Step](materials/learn-react-1.md)
36 |
37 | Topics:
38 |
39 | - React Intro
40 |
41 | Assignments:
42 |
43 | - Form a team of 3
44 |
45 | ## (9/15 - 9/18) Week 3
46 |
47 | > Note: _CUNY has no classes on Friday 9/18. CTP WILL have class. If you can't attend let your instructor know._
48 |
49 | [Lecture Slides (URL's and http)](materials/lecture-03.pdf)
50 |
51 | [Lecture Slides (fetch() and React)](materials/fetch-and-React-2019.pdf)
52 |
53 | [Zip Code React Lab](https://github.com/CUNYTechPrep/zip-code-react-lab)
54 |
55 | Topics:
56 |
57 | - Client-Server Communication
58 | + Parts of a URL
59 | + Understanding HTTP Request-Response
60 | - `fetch(...)` and Promises
61 | - More React
62 |
63 | Assignments:
64 |
65 | * Team Project Proposals (**Due before week 4 class**)
66 | * Form a **team of 3** students and submit a Team Project Propsal.
67 | * [Team Project Proposal guidelines](materials/team-project-proposal.md)
68 | * [Submit Here](https://forms.gle/GozZ1fk6P4c4Cpfs7)
69 |
70 |
71 | ## (9/22 - 9/25) Week 4
72 |
73 | Topics:
74 |
75 | - More `fetch()` and React
76 | - React Router
77 |
78 | ## (9/29 - 10/2) Week 5
79 |
80 | [Lecture Slides (Full Stack, npm, express.js intro)](materials/lecture-04.pdf)
81 |
82 | [Zip Code API Lab](https://github.com/CUNYTechPrep/zip-code-api-lab)
83 |
84 | Topics:
85 |
86 | - Fullstack Review: Frontend vs Backend
87 | - About `npm`
88 | - Building a backend with Express.js
89 | + Routing
90 | + Route Parameters
91 | + Query Parameters
92 | + Body Parameters
93 | - RESTful Routing
94 |
95 | ## (10/6 - 10/9) Week 6
96 |
97 | [Lecture Slides (SDLC, MVC, Data modeling, ORM's)](materials/lecture-05.pdf)
98 |
99 | Topics:
100 |
101 | - _Career Coach Workshop 1_
102 | - SDLC
103 | - MVC (_Models-Views-Controllers_) Project Structure
104 | - Databases and Data Modeling
105 | - ORM's (Sequelize.js)
106 | - Views and Templates (Handlebars)
107 |
108 | ## (10/13 - 10/16) Week 7
109 |
110 | > Note: _Wednesday 10/14 is a Monday schedule. If you can't attend class let your instructor know._
111 |
112 | [Project Starter](https://github.com/CUNYTechPrep/project-starter)
113 |
114 | Topics:
115 |
116 | - Using MVC app structure
117 | - Using Sequelize.js
118 | - How to design an app using: mockups, models, and routes
119 |
120 | Assignments:
121 |
122 | * **First Project Presentation**
123 | * During Week 9 class (10/27-10/30)
124 | * Presentation Guidelines
125 | * 8 minutes per team (5 min presentation, 3 min Q&A)
126 | * All team members must present at least one slide
127 | * See a presentation template here: [first_project_presentation_template.pdf](materials/first_project_presentation_template.pdf)
128 | * (_Optional_) Show a demo of work in progress if you can
129 |
130 | ## (10/20 - 10/23) Week 8
131 |
132 | [Learn Sequelize lab](https://github.com/CUNYTechPrep/learn-sequelize)
133 |
134 | Topics:
135 |
136 | - Using Sequelize.js
137 | - Testing (Jest)
138 |
139 | ## (10/27 - 10/30) Week 9
140 |
141 | [Authentication in Project Starter](https://github.com/CUNYTechPrep/project-starter/commits/authentication)
142 |
143 | Topics:
144 |
145 | - **_Project Presentations_**
146 | - Implementing Authentication
147 | - Sessions
148 | - Passport.js, Bcrypt
149 |
150 | ## (11/3 - 11/6) Week 10
151 |
152 | [Lecture Slides (code reviews)](materials/code-reviews.pdf)
153 |
154 | Topics:
155 |
156 | - Code Reviews
157 | - Software Engineering Best Practices
158 | - [Resource link](http://web.mit.edu/6.005/www/fa16/classes/04-code-review/)
159 |
160 | ## (11/10 - 11/13) Week 11
161 |
162 | Topics:
163 |
164 | - _Lab Time: Work on Projects_
165 |
166 | ## (11/17 - 11/20) Week 12
167 |
168 | Topics:
169 |
170 | - _Career Coach Workshop 2_
171 | - _Lab Time: Work on Projects_
172 |
173 |
174 | ## (11/24 - 11/27) NO CLASS
175 |
176 | ### Thanksgiving Break
177 |
178 | ## (12/1 - 12/4) Week 13
179 |
180 | Topics:
181 |
182 | - Practice Demo Night Pitches and Demos
183 | - _Lab Time: Work on Projects_
184 |
185 | ## (TBA) DEMO NIGHT
186 |
187 | ### Demo Night
188 |
189 | - Location: _TBA_
190 | - Time: _TBA_
191 |
--------------------------------------------------------------------------------
/materials/React-Intro-2019.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CUNYTechPrep/2020-fall-web-dev/91722c44e79a30942d91ad80eb69805df2b082d2/materials/React-Intro-2019.pdf
--------------------------------------------------------------------------------
/materials/code-reviews.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CUNYTechPrep/2020-fall-web-dev/91722c44e79a30942d91ad80eb69805df2b082d2/materials/code-reviews.pdf
--------------------------------------------------------------------------------
/materials/fetch-and-React-2019.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CUNYTechPrep/2020-fall-web-dev/91722c44e79a30942d91ad80eb69805df2b082d2/materials/fetch-and-React-2019.pdf
--------------------------------------------------------------------------------
/materials/first_project_presentation_template.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CUNYTechPrep/2020-fall-web-dev/91722c44e79a30942d91ad80eb69805df2b082d2/materials/first_project_presentation_template.pdf
--------------------------------------------------------------------------------
/materials/learn-react-1.md:
--------------------------------------------------------------------------------
1 | # Learn React 1
2 |
3 | ## Step 1. Getting started
4 |
5 | Open up your terminal.
6 |
7 | Make sure node and npm are working. Run the following commands:
8 |
9 | ```bash
10 | node --version
11 | ```
12 |
13 | It should display version 10.x or higher.
14 |
15 | ```bash
16 | npx --version
17 | ```
18 |
19 | Any version means it is installed.
20 |
21 | If these are not installed install the latest version of node.
22 |
23 | - https://github.com/CUNYTechPrep/guides#development-environment-setup
24 |
25 | ## Step 2. Create and Launch a React project
26 |
27 | In your terminal, make a directory for your projects, and change directory to it. I like to keep my files in a directory named `ctp` under my home directory.
28 |
29 | ```bash
30 | cd ~
31 | mkdir ctp
32 | cd ctp
33 | ```
34 |
35 | > you only have to `mkdir ctp` if this directory doesn't already exist
36 |
37 | Now we're going to create our first react app:
38 |
39 | ```bash
40 | npx create-react-app learn-react-1
41 | cd learn-react-1
42 | npm start
43 | ```
44 |
45 | If your browser opened up automatically and you see the spinning logo, then everything is working.
46 |
47 | ## Step 3. Look through the code
48 |
49 | Open up the `learn-react-1` directory in your text editor.
50 |
51 | Let's take a look at `/public/index.html` specifically the `
My first component
121 |Who is in class?
152 |Who is in class?
178 |The button has been clicked 0 times
243 | 244 |The button has been clicked 0 times
268 | 269 |The button has been clicked 0 times
294 | 295 |The button has been clicked { this.state.clicks } times
335 | 336 |