├── README.md
├── friday-3.md
├── friday-6.md
├── materials
├── first_project_presentation_template.pdf
├── learn-react-1.md
├── mvc-data-modeling-2022.pdf
└── team-project-proposal.md
├── thursday.md
├── tuesday.md
└── wednesday.md
/README.md:
--------------------------------------------------------------------------------
1 | **_CUNY Tech Prep 2022-2023_**
2 |
3 | [CUNY Tech Prep](https://cunytechprep.org/) 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 2022 Web Dev/Data Science Track
_Class Schedule and Materials_
8 |
9 |
12 |
13 |
14 | - [Tuesday Class](tuesday.md)
15 | - [Wednesday Class](wednesday.md)
16 | - [Thursday Class](thursday.md)
17 | - [Friday 3pm Class](friday-3.md)
18 | - [Friday 6pm Class](friday-6.md)
19 |
--------------------------------------------------------------------------------
/friday-3.md:
--------------------------------------------------------------------------------
1 |
2 | # Fall 2022 Web Dev Track
_Class Schedule and Materials_
3 |
4 | Friday 3pm Section
5 |
6 | ## (8/26) Week 1
7 |
8 | [Slides Week 1: Welcome, Project Ideation, Bootstrap](https://docs.google.com/presentation/d/1x3ZgpUU78Szlv2MYEurGWT2MGifaogVynjpbzqjBofg/edit?usp=sharing)
9 |
10 | [Bootstrap Lab](https://github.com/CUNYTechPrep/lab-bootstrap-5.2)
11 |
12 | Topics:
13 |
14 | - Semester Overview
15 | - Designing Web Apps
16 | - Review: HTML & CSS
17 | - Lab Bootstrap 5.2
18 |
19 | Assignments:
20 |
21 |
22 | - **Project Ideation**: provide your idea in the ideation document
23 | + *If you did not finish this in class finish it before Week 2*
24 | + Ideation slides are bookmarked in your Slack channel
25 | - Meet your classmates and **form teams**
26 | + Read through your classmates ideas and contact them over slack
27 | + Formed teams due in Week 3 class
28 | - Complete and submit the Boostrap Lab by Week 2
29 |
30 |
31 | ## (9/2) NO CLASS
32 |
33 |
34 | ## (9/9) Week 2
35 |
36 | [Slides: React Intro](https://docs.google.com/presentation/d/1Irg_ScxrLVN425nsA1vn7rZ-vv83G0XsB3jQPodXnfA/edit?usp=sharing)
37 |
38 | [Tutorial: Learn React 1](https://github.com/CUNYTechPrep/2022-fall-web-dev/blob/main/materials/learn-react-1.md)
39 |
40 | Topics:
41 |
42 | - React Intro
43 |
44 | Assignments:
45 |
46 | - Form teams by Week 3
47 |
48 | ## (9/16) Week 3
49 |
50 | [Slides: URL's & HTTP Request and Response](https://docs.google.com/presentation/d/1hJgCCh3UiygFQ6q8_G7_KCn332rGuo6VPHlM49JM4Ao/edit?usp=sharing)
51 |
52 | [Slides: fetch() & fetching in React](https://docs.google.com/presentation/d/1ctGUH2sYpqDjo268t_nL0A3u1t6tzAqwk-mw5WIxwnM/edit?usp=sharing)
53 |
54 | [Lab: React Toggle](https://github.com/CUNYTechPrep/lab-react-toggle)
55 |
56 | [Lab: React Trivia](https://github.com/CUNYTechPrep/lab-react-trivia)
57 |
58 | Topics:
59 |
60 | - Client-Server Communication
61 | + Parts of a URL
62 | + Understanding HTTP Request-Response
63 | - `fetch(...)` and Promises
64 | - More React
65 |
66 | Assignments:
67 |
68 | - Teams should submit a [team project proposal](https://github.com/CUNYTechPrep/2022-fall-web-dev/blob/main/materials/team-project-proposal.md) by start of Week 4 class
69 | - Complete and submit [Lab: React Toggle](https://github.com/CUNYTechPrep/lab-react-toggle)
70 |
71 | ## (9/23) Week 4
72 |
73 | Topics:
74 |
75 | - More `fetch()` and React
76 |
77 | Assignments:
78 |
79 | - Complete and submit [Lab: React Trivia](https://github.com/CUNYTechPrep/lab-react-trivia)
80 |
81 | ## (9/30) NO CLASS
82 |
83 | ## (10/7) Week 5
84 |
85 |
86 | Topics:
87 |
88 | - Fullstack Review: Frontend vs Backend
89 | - About `npm`
90 | - Building a backend with Express.js
91 | + Routing
92 | + Route Parameters
93 | + Query Parameters
94 | + Body Parameters
95 | - RESTful Routing
96 |
97 | ## (10/14) Week 6
98 |
99 | [Slides: SDLC & Collaboration](https://docs.google.com/presentation/d/1B_axNuiBuRdlivvITJYF2AS8RCWSa84XBGSR7Iw0S64/edit?usp=sharing)
100 |
101 | Topics:
102 |
103 | - SDLC (software development lifecycle)
104 | - Design Documents
105 |
106 | Assignments:
107 |
108 | - Complete and submit [Lab: Zip Code API](https://github.com/CUNYTechPrep/zip-code-api-lab) by week 7
109 | - Work on your teams [design document](https://docs.google.com/document/d/15Cs2h6f83mXQWmCoSQ37N2fwiKui9Oli9Ph1WwXsDSY/edit)
110 | + share with your project mentor (instructor or TA)
111 | + work on it throughout remaining semester, does not need to be complete
112 |
113 | ## (10/21) Week 7
114 |
115 | [Slides: MVC (slides 1-15)](materials/mvc-data-modeling-2022.pdf)
116 |
117 | [Project Starter Template](https://github.com/CUNYTechPrep/project-starter)
118 |
119 | Topics:
120 |
121 | - MVC (_Models-Views-Controllers_) Project Structure
122 | - Using MVC app structure
123 | - Project Starter setup and walkthrough
124 |
125 |
126 | ## (10/28) Week 8
127 |
128 | [Slides: Databases & Data Modeling (slides 16-42)](materials/mvc-data-modeling-2022.pdf)
129 |
130 | [Lab: Learn Sequelize](https://github.com/CUNYTechPrep/learn-sequelize)
131 |
132 | Topics:
133 |
134 | - Databases and Data Modeling
135 | - ORM's (Sequelize.js)
136 | - Using Sequelize.js
137 | - Testing (Jest)
138 |
139 | Assignments:
140 |
141 | - First Project Presentation
142 | - During Week 9 class
143 | - Presentation Guidelines
144 | - 8 minutes per team (5 min presentation, 3 min Q&A)
145 | - All team members must present at least one slide
146 | - See a presentation template here: [first_project_presentation_template.pdf](materials/first_project_presentation_template.pdf)
147 | - (Optional) Show a demo of work in progress if you can, otherwise show your mockups/design
148 |
149 |
150 | ## (11/4) Week 9
151 |
152 | Topics:
153 |
154 | - **_Project Presentations_**
155 | - Implementing Authentication
156 | - Sessions
157 | - Passport.js, Bcrypt
158 |
159 | ## (11/11) Week 10
160 |
161 |
162 | Topics:
163 |
164 | - Code Reviews
165 | - Software Engineering Best Practices
166 | - [Resource link](http://web.mit.edu/6.005/www/fa16/classes/04-code-review/)
167 |
168 | ## (11/18) Week 11
169 |
170 |
171 | Topics:
172 |
173 | - Deploying to ~Heroku~ ??
174 | - _Lab Time: Work on Projects_
175 |
176 | ## (11/25) NO CLASS
177 |
178 | ### Thanksgiving Break
179 |
180 |
181 | ## (12/2) Week 12
182 |
183 | Topics:
184 |
185 | - _Lab Time: Work on Projects_
186 |
187 | ## (12/9) Week 13
188 |
189 | Topics:
190 |
191 | - Practice Demo Night Pitches and Demos
192 | - _Lab Time: Work on Projects_
193 |
194 | ## (12/14 - tentatively) DEMO NIGHT
195 |
196 | ### Demo Night
197 |
198 | - Location: TBD
199 | - Time: TBD
200 |
--------------------------------------------------------------------------------
/friday-6.md:
--------------------------------------------------------------------------------
1 |
2 | # Fall 2022 Web Dev Track
_Class Schedule and Materials_
3 |
4 | Friday 6pm Section
5 |
6 | ## (8/26) Week 1
7 |
8 | [Lecture Slides](https://docs.google.com/presentation/d/1o8g0k32GoYaWl-Jxyc0s5tfqPF6D3Y0bC8NzlfgvNtI/edit?usp=sharing)
9 |
10 | [Bootstrap Lab](https://github.com/CUNYTechPrep/lab-bootstrap-5.2)
11 |
12 | Topics:
13 |
14 | - Semester Overview
15 | - Designing Web Apps
16 | - Review: HTML & CSS
17 | - Lab Bootstrap 5.2
18 |
19 | Assignments:
20 |
21 |
22 | - **Project Ideation**: provide your idea in the ideation document
23 | + *If you did not finish this in class finish it before Week 2*
24 | - Meet your classmates and **form teams**
25 | + Read through your classmates ideas and contact them over slack
26 | + Formed teams due in Week 3 class
27 |
28 | ## (9/2) NO CLASS
29 |
30 |
31 | ## (9/9) Week 2
32 |
33 | Topics:
34 |
35 | - [React Intro](https://docs.google.com/presentation/d/1CSbULftt5IP89SKdYIUZM_04BlkgonVys9_-B4F6nZ8/edit?usp=sharing)
36 |
37 |
38 |
39 | ## (9/16) Week 3
40 |
41 |
42 | Topics:
43 |
44 | - Client-Server Communication
45 | + Parts of a URL
46 | + Understanding HTTP Request-Response
47 | - `fetch(...)` and Promises
48 | - More React
49 |
50 | [Slides](https://docs.google.com/presentation/d/1C8UvHIol1NeKwiFhQII-3-UJKqjRMkBm7iUl8i5mi-c/edit?usp=sharing)
51 |
52 |
53 | ## (9/23) Week 4
54 |
55 | Topics:
56 |
57 | - More `fetch()` and React
58 |
59 | ## (9/30) NO CLASS
60 |
61 | ## (10/7) Week 5
62 |
63 | Topics:
64 |
65 | - Fullstack Review: Frontend vs Backend
66 | - About `npm`
67 | - Building a backend with Express.js
68 | + Routing
69 | + Route Parameters
70 | + Query Parameters
71 | + Body Parameters
72 | - RESTful Routing
73 |
74 | [Slides](https://docs.google.com/presentation/d/17QV7xkmlTuLd2fetAPcQg7cBQlZniIjd9AgiQKu2ahA/edit?usp=sharing)
75 |
76 | ## (10/14) Week 6
77 |
78 | Topics: [Slides](https://docs.google.com/presentation/d/1SLijBd51ea5MDVxZJZPEg9KW5q04rLLrfLfsWHKJclY/edit?usp=sharing)
79 |
80 | - SDLC (software development lifecycle)
81 | - MVC (_Models-Views-Controllers_) Project Structure
82 | - Databases and Data Modeling
83 | - ORM's (Sequelize.js)
84 |
85 | ## (10/21) Week 7
86 |
87 |
88 | Topics: [Slides](https://docs.google.com/presentation/d/1oyxpzznt0A9xu31JM5-7MWweb_IRw_m-xVpBa_Np_RM/edit?usp=sharing)
89 |
90 | - Using MVC app structure
91 | - Project Starter setup and walkthrough
92 |
93 |
94 | ## (10/28) Week 8
95 |
96 |
97 | Topics: [Slides](https://drive.google.com/file/d/1CV3m2gDrvozZ3h10xGMaWnwpTEAX9iQ6/view?usp=sharing)
98 |
99 | - Using Sequelize.js
100 | - Testing (Jest)
101 |
102 | ## (11/4) Week 9
103 |
104 | Topics:
105 |
106 | - **_Project Presentations_**
107 | - Implementing Authentication
108 | - Sessions
109 | - Passport.js, Bcrypt
110 |
111 | ## (11/11) Week 10
112 |
113 |
114 | Topics: [Code Review](https://github.com/CUNYTechPrep/2021-fall-web-dev/blob/main/materials/code-reviews.pdf)
115 |
116 | - Code Reviews
117 | - Software Engineering Best Practices
118 | - [Resource link](http://web.mit.edu/6.005/www/fa16/classes/04-code-review/)
119 |
120 | ## (11/18) Week 11
121 |
122 |
123 | Topics:
124 |
125 | - Deploying to ~Heroku~ ??
126 | - _Lab Time: Work on Projects_
127 |
128 | ## (11/25) NO CLASS
129 |
130 | ### Thanksgiving Break
131 |
132 |
133 | ## (12/2) Week 12
134 |
135 | Topics:
136 |
137 | - _Lab Time: Work on Projects_
138 |
139 | ## (12/9) Week 13
140 |
141 | Topics:
142 |
143 | - Practice Demo Night Pitches and Demos
144 | - _Lab Time: Work on Projects_
145 |
146 | ## (12/14 - tentatively) DEMO NIGHT
147 |
148 | ### Demo Night
149 |
150 | - Location: TBD
151 | - Time: TBD
152 |
--------------------------------------------------------------------------------
/materials/first_project_presentation_template.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CUNYTechPrep/2022-fall-web-dev/bf3e9a633a46dd7fe97c4af45d671032aec0a6b0/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 16.x (or 18.x).
14 |
15 | ```bash
16 | npx --version
17 | ```
18 |
19 | Any version means it is installed.
20 |
21 | > Note: `npm` and `npx` are installed by Node.js
22 |
23 | If these are not installed install the latest version of node.
24 |
25 | - https://github.com/CUNYTechPrep/guides#development-environment-setup
26 |
27 | ## Step 2. Create and Launch a React project
28 |
29 | 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.
30 |
31 | ```bash
32 | cd ~
33 | mkdir ctp
34 | cd ctp
35 | ```
36 |
37 | > you only have to `mkdir ctp` if this directory doesn't already exist
38 |
39 | Now we're going to create our first react app:
40 |
41 | ```bash
42 | npx create-react-app learn-react-1
43 | cd learn-react-1
44 | npm start
45 | ```
46 |
47 | If your browser opened up automatically and you see the spinning logo, then everything is working.
48 |
49 | ## Step 3. Look through the code
50 |
51 | Open up the `learn-react-1` directory in your code editor.
52 |
53 | Let's take a look at `/public/index.html`. Of importance here is `
List of Students
133 |List of Students
180 |List of Students
223 |List of Students
296 | {studentList.map((student) => ( 297 |List of Students
339 | {studentList.map((student) => ( 340 |The button has been clicked 0 times
358 | 361 |The button has been clicked {numClicks} times
400 | 401 |{JSON.stringify(data)}92 |