patternfly / training-scenarios

PatternFly Developer Training
https://www.patternfly.org/v4/documentation/react/overview/training
8 stars 26 forks source link
hacktoberfest

PatternFly developer training

PatternFly now features developer training to teach PatternFly implementation best practices. To access the training, check out the React and HTML/CSS tutorials. And while you're at it, let us know what you think. Share your feedback by submitting a review on the final page of each module or by filing an issue in this repository.

Submitting a proposal

We use Katacoda as the platform for delivering the training modules—it's open source, and we want you to contribute!

But before you add a new module to the current PatternFly developer training set, check out the existing modules in the category first. This way, we avoid duplicate work and keep the training content streamlined and organized for all users. You should also verify that the module expands on the documentation that is already on PatternFly.

Once you've checked and confirmed the content you're looking to add doesn't already exist, create a new issue for your proposal in this repository. Our team will review all submissions before anything is added.

Include the following details in your submission:

  1. Title
  2. Goal (What will the user learn?)
  3. Description
  4. Category:
    • HTML/CSS: Introductary and high-level concepts
    • React: Basic: React principles and customization
    • React components: React components including select, table, and toolbar
    • React Charts: React chart components (area, bar, bullet, donut, donut utilization, line, pie, sparkline, and stack charts)
    • None of the above (Include a suggestion for a new category.)
  5. Approximate completion time
    • Short ( < 5 mins)
    • Medium ( < 15 mins)
    • Long (> 30 mins)

Set up development environment and plan out your scenario

Once your proposal is approved, it's time to start developing. We recommend following these steps:

  1. Write the title, description, and sub-steps for each step in a document.
  2. Use CodePen or CodeSandbox to test the working code for your example. Note: It is not possible to run your code locally when developing in Katacoda.
  3. Once you feel confident in your steps and code examples, fork our repository: https://github.com/patternfly/training-scenarios.
  4. Add the new module to the repository.
  5. Push up the addition and submit a Pull Request.
  6. Tag at least two members of the PatternFly team to review your Pull Request.

To see your changes on Katacoda before they're merged:

  1. Submit a second Pull Request that merges changes from the new branch on your fork, to the master branch on your fork, and merge the changes.
  2. Create a Katacoda profile if you don’t have one.
  3. Copy the Git Webhook Secret.
  4. In your forked training-scenarios repository, navigate to Settings > Webhooks, and add a new Github Webhook.
  5. Find more information at Katacoda.

File structure

Update the category pathway

Update the relevant pathway.json file to add the new module to its category. Examples of the different pathways include: html-css-pathway.json, react-components-pathway.json, and react-pathway.json.

Add an ID, title, and description.

Add an index.json file for the module

The index.json file is where the structure of the module is established. Below is a template index.json file that you should follow. Katacoda provides more information.

{
  "title": Title of the module
  "description": Description of the module.
  "difficulty": Choose between beginner, intermediate, advanced. There is more information below on how to decide.
  "time": Provide users with an estimated or average time to complete the module, e.g. 20 minutes.
  "details": {
    "intro": {
      "text": "intro.md",
      "code": "env-init.sh",
      "credits": ""
    },
    "steps": [
      {
        "title": Title for the step.
        "text": Filename containing the body for the step.
        "answer": Filename containing the answer for the step.
      },
      {
        "title": Title for the step.
        "text": Filename containing the body for the step.
        "answer": Filename containing the answer for the step.
      }
    ],
    "finish": {
      "text": "finish.md"
    }
  },
  "files": ["index.html", "myapp.scss"],
  "environment": {
    "showdashboard": true,
    "delayToSaveFileAfterStopTypingMilliseconds": 2000,
    "autoFormatEnable": false,
    "dashboards": [
      {"name": "Web Application", "port": 3000}
    ],
    "uilayout": "editor-iframe-split",
    "uisettings": html or javascript
  },
  "backend": {
    "imageid": "nodejs:12",
    "port": 3000
  }
}

Content and steps

When writing out the steps for your tutorial please follow these guidelines:

Name of module

Description

Difficulty level

Estimated time

Introduction page

Step title

Background step information

Sub-steps

Sub-step description

Sub-sub-steps

Referencing file names or code

Notes

Hints

Feedback link

Style and grammar

We suggest following AP style when writing content. PatternFly also has more information on grammar and terminology and voice and tone.

Appendix

https://www.katacoda.com/docs/scenarios/index-json