From CoderDojo Kata
Revision as of 00:04, 13 May 2016 by Philip (Talk | contribs)

Jump to: navigation, search
Using this page
Don't worry, you don't have to read all of it! Just look at Types of Kata pages, choose the type you want to add/edit and read that section. You may also want to glance at General knowledge for some universally applicable tips.

Types of Kata pages

Learning Resources
Resource page  
Kata resource pages are used to share any kind of document, web page, video, Sushi Card, or any other kind of educational resource.
Project page 
Kata project pages are used to share inspiration for projects that can be done with the knowledge gained from completing material on resource pages.
Path page
Kata path pages tie the whole thing together: Resources and projects are surfaced on appropriate paths so as Dojo Mentors and Champions can choose a path of resources to use in their Dojo.

Creating Kata pages

These guidelines explain how to create the different kinds of pages on Kata. In order to create or edit a page you need to be an approved editor. Once you are, just search for a page name that doesn't exist and you'll be given the option to create it.

General knowledge

Formatting

Kata is a MediaWiki based site. Please see the MediaWiki Formatting help page for a guide to the tags and syntax used.

Uploading files

If you need to use images, PDFs, or any other kind of file as part of your resource, you can upload it to Kata by clicking this button. Upload your content!

Displaying PDFs on a page

Once uploaded, if your file is a PDF you can display it on the resource page by placing its name into <pdf> tags like so:

<pdf>MyFirstWebsite.pdf</pdf>

Displaying image files on a page

Many image files can be displayed on the page simply by using the File wiki code:

[[File:HTML_CSS_Beginner_Badge.png]]

Full details on the options for the inclusion of images can be found in the MediaWiki help. If a particular file format won't display, please contact Philip for assistance.

Resource page

Example

My First Website Sushi Cards — view the wiki code of the page to see how it's put together.

Goals

A resource page should contain a single resource, or set of related resources, that cover a certain skill level (beginner, intermediate or advanced). For example, the My First Website Sushi Cards are a single resource, but the Intermediate HTML cards are a separate resource.

Naming resource pages

The page should be named in a descriptive fashion, but avoid things like arbitrary/incremental numbers or the name of the Dojo or person who originally created the resource. There is a field in the template to give credit, but the title should help another Mentor trying to understand what a resource is.

Resource page template

A template is used to create a resource page. If you copy-paste this sample template into a page and modify the fields indicated in the comments, you'll get a resource page with the appropriate categories, search indicies, etc.

<!-- UPDATE OR DELETE INCOMPLETE FIELDS AS REQUIRED -->
{{Resource
<!-- THE AREA THE RESOURCE PRIMARILY ADDRESSES: Programming / Hardware / Design / Other -->
|area=Incomplete
<!-- IF A PROGRAMMING RESOURCE, THE LANGUAGE THE RESOURCE PRIMARILY ADDRESSES E.G. HTML -->
|language=Incomplete
<!-- THE DIFFICULTY LEVEL OF THE RESOURCE. CHOOSE ONE OF: Beginner / Intermediate / Advanced -->
|level=Incomplete
<!-- THE NUMBER OF DOJOS THAT THE RESOURCE WILL, ON AVERAGE, TAKE TO COMPLETE e.g. 6 -->
|length=Incomplete
<!-- THE PRIMARY MEDIUM OF THE RESOURCE. CHOOSE ONE OF: Sushi Card / Document / Video / Audio / Interactive -->
|medium=Incomplete
<!-- THE FILE FORMAT OF THE RESOURCE, E.G. PDF -->
|format=Incomplete
<!-- UPDATE WITH THE NAME OF THE AUTHOR, IF KNOWN -->
|author=Incomplete
}}
==Summary==
<onlyinclude>
<!-- INCLUDE A SHORT SUMMARY OF THE CONTENT -->
</onlyinclude>
==Content==
<!-- INCLUDE A VIEW OF THE CONTENT, OR A LINK TO IT -->
==Source Files==
<!-- IF YOU HAVE THEM, AND THE RIGHT TO SHARE THEM HERE, INCLUDE THE SOURCE FILES OF THE CONTENT -->

Adding a resource to a path

Adding a resource to a path is a simple matter of including a few lines at the end of the page. You can add the same resource to any number of paths. It can be a core resource on one path and a supplementary resource on another. This is the wiki code you need to include:

{{InPath
|pathname=<!-- TITLE OF THE PATH — THIS WILL BE THE PAGE NAME OF THE PATH -->
|association=<!-- ONE OF core / supplementary / project -->
|order=<!-- An integer, indicating what order the resource should be listed in under the path. Tie it to the difficulty level by adding 100, 200, 300 for beginner, intermediate, advanced -->
}}

Project page

Example

PROJECT EXAMPLE HERE

Goals

A project page should contain a single project, designed such that it can be completed when someone has learned everything laid out in the core resources of a given path up to the level of the project. However, it is acceptable to also point to supplementary path resources as required/recommended prerequisites for a project in the event that the core isn't enough for what's being attempted.

Naming project pages

The page should be named in a descriptive fashion, but avoid things like arbitrary/incremental numbers or the name of the Dojo or person who originally created the project. There is a field in the template to give credit, but the title should help another Mentor trying to understand what a project is.

Project page template

To create a Project page, use the template content below, updating the parameters as required and including a summary and the details of the project.

<!-- UPDATE OR DELETE INCOMPLETE FIELDS AS REQUIRED -->
{{Project
<!-- THE AREA THE PROJECT PRIMARILY ADDRESSES: Programming / Hardware / Design / Other -->
|area=Incomplete
<!-- IF A PROGRAMMING PROJECT, THE LANGUAGE THE RESOURCE PRIMARILY ADDRESSES E.G. HTML -->
|language=Incomplete
<!-- THE DIFFICULTY LEVEL OF THE PROJECT. CHOOSE ONE OF: Beginner / Intermediate / Advanced -->
|level=Incomplete
<!-- THE PRIMARY PRODUCT OF THE PROJECT CHOOSE ONE OF: Website / Game / Desktop App / Mobile App / Hardware / Other -->
|product=Incomplete
<!-- UPDATE WITH THE NAME OF THE AUTHOR, IF KNOWN -->
|author=Incomplete
}}
==Summary==
<!-- INCLUDE A SHORT SUMMARY OF THE PROJECT -->
==Project==
<!-- INCLUDE A VIEW OF THE INSTRUCTIONS FOR THE PROJECT, OR A LINK TO IT -->

Example

{{Project
|area=Programming
|language=HTML
|level=Intermediate
|product=Website
|author=[[User: Philip]]
}}
==Summary==
The [[Ninja]] creates a series of web pages that outline their favourite music.
==Project==
Create a website that:
* Has three pages:
** Home
** Music
** Artists
* Includes a navigation menu
* Includes two or more of: 
## Audio content
## Video content
## Images
* Uses hyperlinks to external web pages
* Looks cool

Adding a project to a path

Adding a project to a path is a simple matter of including a few lines at the end of the page. You can add the same project to any number of paths. This is the wiki code you need to include:

{{InPath
|pathname=<!-- TITLE OF THE PATH — THIS WILL BE THE PAGE NAME OF THE PATH -->
|association=<!-- ONE OF core / supplementary / project -->
|order=<!-- An integer, indicating what order the resource should be listed in under the path. Tie it to the difficulty level by adding 100, 200, 300 for beginner, intermediate, advanced -->
}}

Path page

Example

HTML Path

Details

Path pages are mostly automatically generated from resources and projects included via the InPath template. All that is required on the path page itself is a short summary, a list of prerequisite paths (or the NoPrerequisites template) and, optionally, the badges that might be awarded over the course of the path. Here is the source for the JavaScript Path:

{{Path
<!-- THE AREA THE PATH ADDRESSES: Programming / Hardware / Design / Other -->
|area=Programming
<!-- IF A PROGRAMMING RESOURCE, THE LANGUAGE THE RESOURCE PRIMARILY ADDRESSES E.G. HTML -->
|language=JavaScript
<!-- UPDATE WITH THE NAME OF THE AUTHOR, IF KNOWN -->
|author=[[CoderDojo Foundation]]
}}
<onlyinclude>
Learn to add interactivity to a website.
</onlyinclude>
==Prerequisites==
{{Prerequisite|HTML Path}}
==Possible Badges==
These are the [[badges]] it might make sense to award to Ninjas who complete the appropriate components of this path. <br />
{{Badge|language=javascript|level=beginner}}
{{Badge|language=javascript|level=intermediate}}
{{Badge|language=javascript|level=advanced}}
{{PathDetails}}

Things to note:

Path summary

A short summary of the path is included between the onlyinclude tags, so it can be used elsewhere in the site to summarise the path in lists, tables, etc.

Prerequisites

If there is anything that someone attempting this path should know first, point to the path(s) that would give them that knowledge. Use the Prerequisite template to do so as show, as this ties the path into other paths so as mentors can navigate from one to another as their Dojo completes them.

Badges

Where available, images of the Zen Badges have been put on the wiki, accessible through the Badge template, once passed a language and level, as shown.

Path Details

This template automatically finds (and keeps updated) the list of all core, supplemental and project resources that are tagged for the path, as well as any paths that list this one as a prerequisite, so as Mentors can determine where to go next.