👋 Hi! Great that you want to contribute to Azure Functions University! 😃
We're currently focussed on creating beginner content for Azure Functions written in C#, TypeScript, Python, and PowerShell, 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.
Once we've discussed the Content Request issue and agree to include the lesson, you can start by forking the Azure Functions University repository and create a new branch for the topic and language you want to add (e.g. cosmosdb-dotnet6
).
Try to create a pull request (PR) early in the process of creating the lesson. This way we can see the progress and help where needed. It will probably take a few iterations to get everything right, don't feel discouraged by this process ♥. The quality & consistency of the lesson is more important than the speed of delivering it.
If you are contributing to create a lesson, please take into account the length and the tone of the existing lessons. We want to have a uniform experience across all of our lessons. The latest lessons you can use as a reference are the .NET 6 (dotnet6) ones.
An Azure Functions University lesson consists of several parts:
- A lesson markdown file named
README.md
in thelessons/{language}/{topic}
folder. Example: lessons/dotnet6/http/README.md.- Use the lesson template file.
- Give the lesson a short but descriptive title.
- Describe the goal of the lesson.
- Break up the lesson in small exercises.
- Each exercise has a clear sub goal and steps how to achieve that sub goal.
- Use code samples and plenty of 📝, 🔎 and ❔ call-outs.
- Use gender-neutral language and avoid words such as 'easy' or 'simple'.
- A homework markdown file named
{topic}-homework-{language}.md
in thelessons/{language}/{topic}
folder. Example: lessons/dotnet6/http/http-homework-dotnet6.md. - A new Functions project to the
src/{language}/{topic}/AzFuncUni.{Topic}
folder with a completely working and running example. E.g. src/dotnet6/http/AzFuncUni.Http. Try to have one project file for the entire lesson and use subfolders or classes for the different exercises. - CodeTour files (one per exercise) to the
tours./{language}/{topic}/.tours
folder. - A VSCode workspace file in the
workspace/{language}
folder for the lesson. The workspace should contain these folders:lessons/{language}/prerequisites
lessons/{language}/{topic}
src/{language}/{topic}
(including REST client files, if applicable).tours/{language}/{topic}
We know, this is a loooong list! 😬 But you don't have to do everything by yourself! We can work together on this so please do reach out! 💪