On-Platform Project Standards
Description and Purpose
An on-platform project is an opportunity for the learner to take the material they've learned in a previous lesson and apply it within the guided practice framework of a project.
A project is made up of a series of tasks, which can be grouped in sections, that should all build towards a final product or solution.
An on-platform project is a type of content item. It exists within a module and typically comes after the Lesson and Quiz in the module.
A project is inside of the Learning Environment, similar to an exercise, and gives the Learner a list of tasks, a code editor, and an output terminal/browser.
- All content is written in Markdown and adheres to Codecademy’s Markdown Style Guide.
- All content adheres to Codecademy's Editorial and Pedagogy standards
- Content adheres to Codecademy’s Diversity, Equity, Inclusion, & Accessibility standards.
- All work is original. Sources are cited via links or, for datasets, by following the Dataset Guidelines.
Fields in Author
The description should provide a brief summary of what the project covers. Descriptions are indexed by Google search as well as ElasticSearch, so they can be used to find content via search engines, Author, or Codecademy’s search functionality. Descriptions also appear on cards in the project library on the Codecademy site, but in a truncated form.
- Descriptions may appear truncated in certain locations, so frontload important information. Cut filler like “In this project, you will…”
- Keep descriptions short. Aim for 1 - 2 short sentences or around 30 words.
- Focus on the outcome. What will the learner do or build?
- Include frameworks or skills learners will practice in the project when appropriate.
- Include key terms when appropriate (for SEO purposes).
- Utilize the Django framework to create an app that helps track a restaurant’s inventory and sales.
- Build a style guide for your web projects, including custom fonts, colors, text styles, and more.
- Write an interactive Choose Your Own Adventure game using the Tree data structure.
- Use decision trees to predict what continent a flag comes from based on features like color and shape.
The objective gives the learner a brief overview of the project theme and topics covered.
- Include any topic(s) from the lesson that will help the learner understand the scope of the project.
- The objective should get the learners excited about completing the project.
- Learning Environment components are interactive elements that typically replicate a real-world tool, such as a Code Editor, and allow learners to take specific actions in the project.
- For each type of component, refer to the component's specific standards page.
See Project Workspace Standards(Coming Soon)
Downloadable Project Kit
This field provides a link to a .zip file that learners may download to complete the project off-platform. When provided, a "Download" button will appear in the LE for the users to access this .zip file.
- On-Platform projects should not have a link provided for this field.
Tasks are the individual steps taken by the learner to complete the project.
- To create tasks start by creating a Task Group using the “Add Task Group +” button
Task groups are containers for individual tasks and are used to group relevant tasks where applicable.
- To create tasks within a task group use the “Add +” button.
- The final task group can offer optional/suggested next steps, which should be included in any final savepoint or solution video.
An individual task to be completed by the learner.
- Each task only asks for one step ("step" may vary with each level of abstraction).
- E.g. A task may be: 'Create a server listening on port 8000' which might be more abstract/involve intermediary steps, but the learner is equipped enough to tackle the task as a single ticket.
- A task should not be something like 'Write a function that returns the sum of two numbers. Then, write a function that returns the product of two input numbers.'
- Tasks should provide a way for learners to self-evaluate their work throughout the project.
- E.g. The learner has a way to check if they are on track and doing the project correctly.
- You can prompt users to execute code or tasks that provide feedback throughout the project.
- Answers are not included in tasks.
- The task demonstrates good use cases for the content learned in the associated lesson(s).
- You explain the motivation for steps (not necessary for every task). A learner should not be asking, "Why am I performing this step?"
- Hints shouldn't provide exact solution code. Rather, hints should provide an example of the syntax or discuss the concept(s) needed to complete the task.
Project Walkthrough Video URL
The URL for a project walkthrough video.
- A Youtube or Vimeo URL for the project walkthrough video. If you enter an 11-character Youtube ID, it will be automatically converted into a full Youtube URL.`
The project title is displayed to learners at the top of the project objective in the LE and in the course menu.
- Titles should include key terms when appropriate (for SEO purposes).
The slug is used to create a URL for the content item. It is auto-generated based on the Title field though it can be edited.
Minutes to Complete
This field is an estimation of how long the content item and any embedded elements will take to complete.
- Most individuals read at around 250 words per minute, so this can be used as a proxy while you estimate time to complete. When in doubt, air on the side of being conservative — so make a longer estimate rather than a shorter one.
This field allows you to add an associated author(s) to the item. For now, this field is not publicly visible, but is helpful as a reference.
This field determines which user group can access the content. This content is Codecademy Pro-only content by default.
- Consult with your production team to see whether you should toggle the content to Free.
Challenge Project Checkbox
This field determines if the project is listed as a Challenge Project or a Practice Project.
This field provides an image for a project on the landing page of the course or path the project belongs to.
- The image selected for the project should be representative of the project theme.
- Images should be sourced from free-to-use image sites like Unsplash.
- Images can be a screen capture of the finished project.
- Image should be hosted on static-assets.codecademy.com.
- Image should be 500px.
- Image should be optimized using software like ImageOptim.
This field provides a list of prerequisite content items the learner is expected to have completed before beginning this project.
Learning Standard List
This field lists the learning standards associated with a given content item.
- Each project should be aligned with at least one learning standard. Note that the learning standards are not visible to the learner.
- Learners should receive Introduction to New Material and checks for understanding on each associated learning standard.
This field lists the categories associated with a given content item.