Skip to content

Nicely integrating multi-part coding challenges with minimal changes #420

@loic-brtd

Description

@loic-brtd

Suggestion

Two elements that I think should really be available on a multi-part challenge page are the n videos and their corresponding timestamps. To accomplish that, I suggest the following solution:

  • We could add an optional array field nextParts to the index.json file of multi-part coding challenges, which would allow us to indicate the videoId and timestamps of the next parts of the challenge.
  • The root videoId, date and timestamps fields of index.json would refer to the first part/video of the coding challenge.
  • All the other fields (title, description, videoNumber, ..., codeExamples, groupLinks) and the passenger showcases would still be related to the "global" challenge, not to a specific part.

Configuration example

content/videos/challenges/54-islamic-tiling-patterns/index.json

{
  "title": "Islamic Star Patterns",
  "description": "In this bonus super-sized coding challenge, I work through visualizing Islamic Star Patterns in p5.js.",
  "videoNumber": "54", // not "54.1"
  "videoId": "sJ6pMLp_IaI", // videoId of 1st part
  "date": "2017-02-14", // date of 1st part
  "languages": [...],
  "topics": [...],
  "canContribute": true,
  "relatedChallenges": [],
  "timestamps": [ /* timestamps of 1st part */ ],
  // New field
  "nextParts": [
    {
      "videoId": "lobJ9gzbLo8", // videoId of 2nd part
      "timestamps": [ /* timestamps of 2nd part */ ]
    },
    {
      "videoId": "qg8LDsd57gF", // videoId of 3rd part
      "timestamps": [ /* timestamps of 3rd part */ ]
    }
  ],
  "codeExamples": [...],
  "groupLinks": [
    {
      "title": "References",
      "links": [...]
    }
  ]
}

Note: this is a fictitious example, in reality challenge 54 has only 2 parts, not 3.

Design example

wireframe

  • Clicking on a part number would switch the player to the corresponding video and display the associated timestamps.
  • This "parts pagination" would not appear for single part coding challenges.

Temporary solution

Whether or not we decide to implement this strategy, I think it would still be beneficial to normalize and document the (temporary) way that contributors should port multi-part challenges to the new website. This could be included in the "Maintaining the website" guide.

Such intermediate solution could be to :

  • create a single folder per challenge (not per part) ;
  • fill in the videoId and timestamps for the first video ;
  • link to the next parts as YT videos in a groupLinks titled Next Parts of this Challenge ;
  • combine code examples, passenger showcases and link references from all parts of the challenge.

Then we would just have to add a nextParts field if my solution were to be implemented.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions