Skip to content

Feature Request: Incorporate Installation instructions into siteΒ #5214

@JoshDevHub

Description

@JoshDevHub

Checks

  • I have thoroughly read and understand The Odin Project Contributing Guide
  • The title of this issue follows the Feature Request: brief description of feature request format, e.g. Feature Request: Add a dark mode to the website
  • Would you like to work on this issue?

Description of the Feature Request

The way installation lessons were previously structured caused lots of accessibility issues with the dropdowns for hiding/showing content and the duplicated headings across different sets of instructions. But doing it some other way with all the information on the same page probably would've made for a cumbersome experience for most users.

To solve this, OS specific instructions have been separated from installation lessons. Now the installation lessons offer links to the instructions and learners click on the one that's relevant for them. As a pleasant side effect, this also gave a path to solving longstanding issues in getting the Installation lessons to conform to the Layout Style Guide and mdlint tool. Here's an example in the Operating System installation lesson:

Image

Say the user wants to use VBox, they'd click the VBox link and be taken to a guide on GitHub with the specific instructions for getting set up on VBox.

So the proposal: I think it'd be nice if these OS-specific instruction steps were integrated into the site instead of only being usable on GitHub. Users will click the link to (for example) the VirtualBox installation instructions and be taken to a page that has those instructions. When they get to the bottom of the page, they'll have a link to return to the lesson they came from.

As far as implementation goes, I think this would involve something like:

  • A new installation_instructions table (and model of course)--feel free to nitpick the name lol
  • More fixture stuff would have to be added to make sure they're created when seeding the database.
  • The existing structures for importing Lessons from GitHub can be refactored to be usable by other models, allowing the installation instructions to also be pulled from GitHub. Like lessons, these instructions would has_one :content and define a method for importing that content etc.
  • I'm hesitant to get into any STI stuff or heavy code sharing between Lessons and this new thing. Although these new installation_instructions have some things in common with actual lessons, they'd lack much reason for some other stuff (positions, completions, course and section relationships). They wouldn't show up on the main course view, for example. It might make sense to make them only findable in the context of the parent installation lesson. And speaking of that: I think one of the main things we'd want is a belongs_to :installation_lesson (a lesson where installation_guide: true) such that when displaying them, we can easily link back to the parent installation lesson after users have gone through all the steps and are ready to return to that lesson.

Acceptance criteria

  • Incorporate the OS specific installation instructions into the main site

Additional Comments

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: Needs ReviewThis issue/PR needs an initial or additional review

    Type

    No type

    Projects

    Status

    πŸ“‹ Backlog / Ideas

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions