Skip to content

Off-Platform Project Standards

This page was last updated on March 24, 2022. Content created prior to this date likely deviates from these standards. When appropriate and at your own discretion, apply the current standards to content that does not align with these standards.

Description/Purpose

An off-platform project is a practice project where the learner completes the project on their own computer, outside of the Codecademy Learning Environment (LE). These projects typically begin with learners downloading files including code, images, or similar assets. Instructions are provided to guide learners through the project.

Off platform projects are created for a variety of reasons, including:

  • To provide a practice opportunity for a specific developer tool (such as an IDE or the command line)
  • To allow learners to experience working on a "real-world" project on their own computer
  • To get around a technical limitation of the Codecademy Learning Environment

Place in Content

An off-platform project is created as a "Project" type in Author. The project itself will contain the files to download and written instructions for the learner to follow while they complete the project off-platform. Though we encourage learners to complete off-platform projects on their own computers, a code editor (or another interactive component) may be provided when possible to allow learners to complete the off-platform project within the LE.

Overarching Standards

Fields in Author

Off-platform projects should follow the Fields in Author Standards for On-Platform Projects with a few notable exceptions which are detailed below.

Project Kit Standards

Top level structure:

  • README.md — The project's instructions, provided in markdown
  • /starter — A folder containing the starter code
  • /solution — A folder containing an example solution
  • /assets — All images, datasets, and additional assets used by the application

Objective (Content)

The objective should contain the following headers. Each header should start as an H3 (###) header. See the template below for an example.

  • Introduction
    • This section provides context for the learner to understand what they are building and how it relates to the concepts they just learned in the associated module.
  • Download the Starting and Solution Code
    • This section includes a .zip file that follows the structure explained in the "Project Kit Standards" above.
    • Links to articles about setting up your off-platform environment are also included here.
  • Debugging Tips
    • This section provides tips for problem solving when you are stuck.
    • See the template below for the exact text to copy.

Objectives Template

This template is meant to help you quickly structure your Off-Platform project. The text provided in this template is not strictly required, however, when deviating from the template, make sure that your content follows all content standards listed above. Places where details can be filled in will be written using square brackets [like this].

### Introduction

In this off-platform project you will build [Description of Application — ex: a photo gallery application].  This will allow you to practice [Main topic covered in relevant module — ex: using React components] on your own computer. Along the way, you will also practice:
* [Relevant sub-skill A]
* [Relevant sub-skill B]
* [Relevant sub-skill C]

### Download the Starting and Solution Code

Before we start writing code, download the folder containing the starting and solution code of the project by clicking on the "Download" button below. The `/starter` folder contains code to help you get started while the `/solution` folder will contain the solution if you get stuck. You can also compare the solution provided to your own after you complete the project. All additional images, datasets, and other assets can be found in the `/assets` folder.

[Describe the project structure. If the project has many folders, explain how to navigate through them to find the code they need. When relevant, identify the files that the learner will be interacting with the most frequently.]

You will be doing this project outside of the Codecademy platform, on your computer. You will be using a local text editor (we suggest [insert recommended editor here]). If you need help setting up your text editor, read our article about [setting up a text editor for web development](https://www.codecademy.com/articles/visual-studio-code).

### Debugging Tips

Feeling stuck? Try the following:

* **Google your question**: Often, someone has had the same question as you! Check out websites like [StackOverflow](https://stackoverflow.com/) to see how other folks have found solutions.
* **Read the documentation**: Make sure to carefully read through the documentation for any languages and libraries you are using. Often they'll have examples of what you're looking for!
* **Rubber ducking**: Try to explain a problem to a friend or co-worker. Often you'll figure out the solution as you're trying to explain it. And if not, getting another pair of eyes on your code can be helpful.
* **Discuss with other learners**: Sometimes, it's helpful to talk things out with someone at a similar point in their learning journey. Check out the [Codecademy Forum for Off-Platform projects](https://discuss.codecademy.com/c/project/off-platform-practce-projects/1939) to connect with other learners who are working on the same project.

Tasks

For projects that use Jupyter Notebooks, tasks are written in the Notebook. The instructions should be written in markdown cells with code cells beneath them. The solution code should also have the original instructions in it. The tasks should continue to follow the standards below. See the On-Platform Project Task Standards for guidance.

Examples