👋 Hi! Great that you want to contribute to Intro-to-Serverless! 😃
We're currently focussed on creating beginner content for Azure Functions written in Javascript, and using VSCode as the code editor.
🔎 Please check if there's an existing issue which matches your idea. Perhaps you can collaborate with someone on this.
💡 If you have new idea, please create a new Content Request issue first where you can describe the topic.
🤝 Want to help out? Get started on an issue labeled as Good First Issue
and open a pull request to contribute.
Once we've discussed the Content Request issue and agree to include the lesson, you can start by forking the Intro to Serverless repository and create a new branch for the topic you want to add
Once you've created the lesson, submit a PR with the lesson, source code, and related files as mentioned in the next section. It will probably take a few iterations to get everything right, don't feel discouraged by this process ♥.
Students advance through the curriculum by committing code, merging pull requests, and commenting on issues. These commits are checked by the CounselorBot and students advance next section where further instructions are provided by the bot through comments. For this to work, the curriculum stages need to be created in a specific format.
Our curriculum consists of several parts:
Response files are located in the
.bit/responses
folder named{week number}.{step number}-{step title}.md
Example:.bit/responses/1.1-Week 1 Step 1.md
.
- Use the step template file.
- Give the lesson a short but descriptive title. (Make it fun!)
- Create a task list for the student
- Use the
Test Your Work
section if applicable - Place long explanations and/or more detailed step by step instructions in dropdowns
- Split the step into clearly marked and digestable sections
- Try your best to make the curriculum not "copy-paste." Ask students to read documentation instead of directly providing them the answer!
- Use code samples and plenty of ❗, ❓ and 💡 call-outs. (Examples are in the template)
Yes, this is a long list, but you don't have to do everything by yourself, we can work together on this! 💪
Use a lot of emojis! Here is the standard guide for what each emoji should be used for.
Emoij | Description |
---|---|
💡 | Helpful tips |
Important info | |
❓ | Question you may have |
⭐ | Features |
To ensure your response files will be able to work with the bot and automations, please adhere to the formats specified below and in the template!
File name format: {week #}.{step #}-{step name}.md
Example: 1.1-Week Step 1.md
File path: .bit/responses/{week #}.{step #}-{step name}.md
Starting the response file:
- Response files should begin with a markdown table
- There should be a subtitle that includes a progress bar, the week and step number, and an estimated completion time.
- The title should be formatted with h2.
- The Task list title must be formatted in h3.
Example:
---
files: index.html, js/config.js, README.md
stepType: PRmerge
scripts: n/a
week: 1
step: 1
name: Week 1 Step 1
---
Week 1 Step 1 ⬤◯◯◯◯◯ | 🕐 Estimated completion: 10-30 minutes
## Week 1 Step 1
### ✅ Tasks:
Step Types
❗ You can only have one stepType per step. Place the name of the step type in the
stepType
field. Ex:stepType: checks
PRmerge
- Place files paths in the
files
field on the table that the student should include in the pull request to move on to the next step. - Leave the
scripts
field asn/a
- Ex: If you place
index.js
in the table for the first step of Week 1, a student will need to merge a pull request containing the fileindex.js
in order for the bot to comment the second step of Week 1.
checks
- Place a script that should be in the
.bit/tests
folder in thescripts
field. Ex:scripts: test.1.2.js
- Leave the
files
field asn/a
- These scripts will run every time a student makes a commit.
- If the script passes, then the student will be able to move on.
IssueComment
- Leave both the
files
andscripts
field asn/a
- The bot will comment the new step once a student comments something on the issue or pull request.
feedback
- Leave both the
files
andscripts
field asn/a
- The bot will comment the new step once a student comments something AND save their comment as a custom event for instructors to refer back to
If you add additional projects or steps to the curriculum, please place your solution code in this directory. If you modify step instructions that impact the code, please update the solution code as well.
File name format: {week #}.{step #}-{project name}.js
Example: 1.1-github.js
File path: .bit/tests/sample-solutions/week{week#}/{week #}.{step #}-{project name}.js
💡 Note: For frontend curriculum (HTML/JS), associated files will be placed in folders.
To ensure your response files will be able to work with the bot and automations, please adhere to the formats specified below and in the template!
File name format: test.{week #}.{step #}.js
Example: 1.1-Week Step 1.md
File path: .bit/tests/test.{week #}.{step #}.js
To make the test throw an error, please use these statements:
console.error("Log the error for the student. Give a specific message that will be helpful!")
process.exit(1)