Skip to content

Workout Documentation

Andrei Calabangiu edited this page Jun 30, 2020 · 7 revisions

What is a Workout?

A workout is an ordered collection of Insights that lives inside of a Course or Subtopic.
Workouts should...

  • Cover 1 objective (the insights should "go together")
  • Consist of at least 4 insights

If you need help, try filing a pull request, and we'll comment with the necessary changes.

Currently, workouts are defined by their location in the repository, and a README.md file that lists their contents and metadata. Each workout has a slug, which is a human-friendly stable moniker that can be referred to. The slug is derived from the workout's folder's name, so the folder should be lower-cased and kebab-seperated.

Examples:

  • javascript-functions βœ…
  • Javascript Functions ❌
  • javaScriptFunctions ❌

A workout called in /javascript/core/javascript-functions is a workout with the slug javascript-functions that is located in the JavaScript Core course, and a workout located in /python/data-structures/python-functions is a workout with the slug python-functions that is located in the Python Data Structures course.

Fields Definitions

Name

This field is shown in the app when the user begins the workout. It needs to be short- less than 20 characters max.

Description

This field is shown in the app when the user begins the workout. It can be a little longer, but should still remain under 100 characters.

Insights

This is the ordered list of Insights, referenced by their slug (the lowercase filename without the extension).

Aspects

Aspects are used for filtering, analyzing, and quantifying learning.

Aspects specify what aspect of a course a workout contains. Workout metadata can contain one or more of the following to the aspects:

  • introduction: Contains parts of the course that you would show to someone if they were learning about it for the first time.
  • new: Updates to the topic or subtopic, recent features, or changes to an API.
  • workout: A chance to practice and simply improve your overall understanding of the entire topic.
  • deep: A workout requiring the mastery of at least two former workouts. Workouts that requires you to synthesize a lot of things in order to understand.
  • obscura: Details, stories, history, trivia

For example:

aspects:
  - deep
  - obscura

Workout Example

A workout's README file looks like this:

name: Tools

description: Enhance your workflow with these tools.

aspects:
  - introduction
  - workout
  - deep

insights:
  - automatic-compilation-for-node-with-nodemon
  - how-to-debug-node-js
  - the-built-in-node-debugger
  - custom-node-repl-server
  - bulk-write-in-node-with-cork
Clone this wiki locally