Skip to content

Commit 93923c6

Browse files
committed
Merge branch 'main' into crud-and-data-models
2 parents b41aa00 + 39d46af commit 93923c6

File tree

36 files changed

+1163
-11
lines changed

36 files changed

+1163
-11
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
.DS_Store
1+
.DS_Store
2+
*.swp

README.md

Lines changed: 94 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,94 @@
1-
# curriculum-backend-readings
1+
# Backend Curriculum Readings
2+
This serves as a content monorepo for all the readings of the backend bootcamp curriculum developed by Re:Coded. Content from this repo will be transferred to the course on Canvas LMS. Each markdown file inside the module folders and sub-folders corresponds to a reading on the LMS.
3+
4+
## Folder Structure
5+
```
6+
.
7+
│ README.md // We are here
8+
9+
└───module1-introduction-to-backend
10+
| └───assets // common assets folder for module
11+
│ └───r1-introduction-to-backend
12+
| | README.md // reading content goes here
13+
│ └───r1.1-beginners-guide-nodejs-npm
14+
| | README.md
15+
| └───r2-http-and-rest
16+
| | README.md
17+
| └───r2.1-diving-into-rest-apis
18+
| | README.md
19+
| └───... // and so on
20+
|
21+
└───module2-database-technologies
22+
| └───assets // common assets folder for module
23+
│ └───r1-introduction-to-databases
24+
| | README.md // reading content goes here
25+
│ └───r2-introduction-to-relational-databases
26+
| | README.md
27+
| └───r2.1-relational-database-structure
28+
| | README.md
29+
| └───... // and so on
30+
|
31+
└───... // and so on
32+
```
33+
34+
## Folder Naming Conventions
35+
36+
- For every new reading, name the folder as: `r[number]-name-of-reading`. For example, `r1-introduction-to-backend` or `r2.1-relational-database-structure`.
37+
- Use your discretion to shorten certain folder names if required while maintaining the same meaning. For example, the folder for "Beginners guide to Node.js and NPM" can be named as `r1.1-beginners-guide-nodejs-npm`.
38+
39+
## Reading Format
40+
41+
- Each reading should begin with the title as an h1.
42+
- Below the title it should have the summary and learning goals.
43+
- After this goes in the main content of the reading.
44+
- Finally each reading should conclude with a section called References, where we can link the external blogs/tutorials/videos we referred to.
45+
46+
## General Formatting Conventions
47+
48+
- Use proper header hierarchy (h1 # to h6 ######) to convey the flow of topics and sub-topics.
49+
- Use code and syntax highlighting for code blocks and referring variable/function names.
50+
- Use tables and lists for non-code content blocks.
51+
- Always share links through inline links. For example, check out [this markdown cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) is preferred over check out this markdown cheatsheet: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
52+
- Make sure to run your content through [Grammarly](https://www.grammarly.com/) to get rid of typos and grammatical errors.
53+
54+
55+
## Peer Review Process
56+
- Work on a module or reading on it's own branch and open a PR into main branch.
57+
- Request at least 2 reviewers on your PRs.
58+
- Open draft PRs early for large modules to get continuous peer reviews. This helps your peers know that the PR is still WIP and is also helpful to review the content in chunks.
59+
60+
## Example
61+
62+
`Start with a H1 for the title`👇
63+
# Beginners guide to Node.js and NPM
64+
`Enter a quick summary and numbered list of learning objectives`👇<br/>
65+
We will be working in the Node.js and NPM environment throughout this bootcamp. The objectives of this lesson are:
66+
1. Understanding the Node.js framework
67+
2. Advantages of Node.js and why this course is focussed on Node.js
68+
69+
`Detail out first sub-topic under a H2`👇
70+
## Introduction to Node.js
71+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
72+
73+
`Detail out further sections with H3 inside the sub-topic`👇
74+
### Features of Node.js
75+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
76+
1. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
77+
2. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
78+
3. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
79+
80+
`Detail out next sub-topic under a H2`👇
81+
## Why are we teaching Node.js in this bootcamp?
82+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
83+
84+
`Use the end space of last section for a quick outro or recap of the reading.`👇<br/>
85+
Now that you have enough context on Node.js, let's prepare our coding environments on our computers. Coming up next is your first assignment of this course which will walk you through setting up your Node.js environment.
86+
87+
`End with a horizontal rule and list References under an H2`👇
88+
89+
---
90+
## References
91+
- https://www.freecodecamp.org/news/what-is-npm-a-node-package-manager-tutorial-for-beginners/
92+
- https://nodejs.dev/learn/introduction-to-nodejs
93+
- https://medium.com/jspoint/how-javascript-works-in-browser-and-node-ab7d0d09ac2f
94+
- https://www.geeksforgeeks.org/top-8-reasons-to-learn-nodejs-in-2020/

make_structure.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
"""
2+
This script takes tab delimited input file like so and automatically
3+
creates the folder structure for readings along with empty README files, per the
4+
contributing guidelines. If you copy-paste from Google sheets, it will
5+
automatically add tabs.
6+
7+
Sorry, didn't feel like handling labs, so you just need to delete the lab folder
8+
when it gets created or rename it manually.
9+
10+
* Copy-paste the file below into `outline.txt` (too lazy to parameterize this
11+
script) in the directory of the module that you want to use, i.e.,
12+
`module5-testing/outline.txt`
13+
* cd to the correct directory (this step is important for the working directory
14+
to be correct)
15+
* Run `python3 ../make_structure.py` (not python2)
16+
* Enjoy your created structure
17+
18+
1 What is a test?
19+
1.1 Why testing is important?
20+
2.1 Test-driven development
21+
2.2 Example code
22+
2.3 Properties of a good test
23+
3 Types of tests
24+
3.1 Popular testing libraries for JavaScript
25+
4 Testing lab
26+
"""
27+
import subprocess
28+
import string
29+
import sys
30+
import os
31+
32+
# https://stackoverflow.com/questions/265960/best-way-to-strip-punctuation-from-a-string
33+
def remove_punctuation(s):
34+
return s.translate(str.maketrans('', '', string.punctuation))
35+
36+
def main():
37+
with open('outline.txt', 'r') as f:
38+
text = f.read().strip().strip('\n')
39+
module_lines = text.split('\n')
40+
for line in module_lines:
41+
chapter_num, chapter_name = line.split('\t')
42+
43+
# Convert casing: "Example code" to "example-code"
44+
normalized_chapter_name = remove_punctuation(chapter_name).replace(' ', '-').lower()
45+
# Make directories
46+
dir_name = "r" + chapter_num.strip() + '-' + normalized_chapter_name.strip()
47+
subprocess.run(["mkdir", "-p", os.path.join(os.getcwd(), dir_name)])
48+
# Make README files
49+
subprocess.run(["touch", os.path.join(os.getcwd(), dir_name, "README.md")])
50+
51+
if __name__ == '__main__':
52+
main()
Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,40 @@
1-
# curriculum-backend-readings
1+
# Module 1: Introduction to Backend
2+
3+
Last Revised: 05/10/2021
4+
5+
## Summary
6+
Writing backend code requires an intimate understanding of REST and the request-response lifecycle. Students learn how to build and run a local server with API endpoints
7+
using Node.js and Express.js, handle GET, POST, and other HTTP requests, perform
8+
validations and return a response.
9+
10+
## Outline
11+
12+
1 [Introduction to Backend [R]](../module1-introduction-to-backend/r1-introduction-to-backend/README.md)
13+
14+
1.1 [Beginners guide to Node.js and NPM [R]](../module1-introduction-to-backend/r1.1-beginners-guide-nodejs-npm/README.md)
15+
16+
1.2 [Getting ready with Node.js [L]](../module1-introduction-to-backend/r1.2-getting-ready-with-nodejs/README.md)
17+
18+
2 [HTTP and REST [R]](../module1-introduction-to-backend/r2-http-and-rest/README.md)
19+
20+
2.1 [Diving into REST APIs [R]](../module1-introduction-to-backend/r2.1-diving-into-rest-apis/README.md)
21+
22+
2.2 [Testing APIs with Postman [L]](../module1-introduction-to-backend/r2.2-testing-apis-with-postman/README.md)
23+
24+
3 [Introduction to Express.js [R]](../module1-introduction-to-backend/r3-introduction-to-expressjs/README.md)
25+
26+
3.1 [Express.js Meme Website [L]](../module1-introduction-to-backend/r3.1-expressjs-meme-website/README.md)
27+
28+
3.2 [Express.js Meme API [L]](../module1-introduction-to-backend/r3.2-express.js-meme-api/README.md)
29+
30+
4 [API best practices [R]](../module1-introduction-to-backend/r4-api-best-practices/README.md)
31+
32+
4.1 [Server-side Validation [R]](../module1-introduction-to-backend/r4.1-server-side-validation/README.md)
33+
34+
4.2 [Server-side Validation Practice [L]](../module1-introduction-to-backend/r4.2-server-side-validation-practice/README.md)
35+
36+
5 [API Documentation [R]](../module1-introduction-to-backend/r5-api-documentation/README.md)
37+
38+
5.1 [API Documentation using Swagger [L]](../module1-introduction-to-backend/r5.1-api-documentation-swagger/README.md)
39+
40+
6 [Outro](../module1-introduction-to-backend/r6-outro/README.md)
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
# curriculum-backend-readings
1+
# curriculum-backend-readings
2+
Temporary file for git tracking, to be deleted once this assets folder is populated
210 KB
Loading
10.7 KB
Loading
44.3 KB
Loading
62.7 KB
Loading
88.8 KB
Loading

0 commit comments

Comments
 (0)