How to create catalog items
The purpose of the catalog is to offer a wide range of courses on everything from Computer Science, Math, Full Stack development and more. Some of the courses will be video based with comprehension check questions along the way. Others will be interactive with lessons, projects and quizzes.
Catalog items are standalone learning units (superblocks) that are made from a collection of blocks. These units could be created from existing blocks, or new blocks, or a mix of both.
Creating catalog items from new blocks
Section titled “Creating catalog items from new blocks”The following are all the steps needed to create a new catalog item. Skip the block and challenge file creation steps if block and challenge files already exist.
-
Add a superblock JSON file that includes the superblock’s contents.
Example -
List the new superblock in the
superblocksarray in the curriculum config.
Example -
Add the superblock to the
SuperBlocksenum in shared config. If its structure uses chapters and modules, also add it tochapterBasedSuperBlocks.
Example -
Register the superblock in
superBlockNamesin the curriculum build.
Example -
Add the superblock to
superBlockToCertMapin the certification settings. Usenullif the superblock does not award a certification.
Example -
Add the superblock name in the curriculum schema.
Example -
Add block configuration files.
Example -
Add challenge files in the block.
Example -
Add the translation string for the superblock. Example
-
Add the superblock’s entry to
intro.json, following the documented format. Include asummaryfor the catalog and entries for every block, even when reusing existing blocks. If the superblock uses chapters and modules, include their titles and any coming-soon module introductions. Example -
Add an entry to
catalogwith the superblock, level, estimated hours and topic. If the topic is new, add it to theTopicenum. Example -
Add the superblock to
superBlockStages[SuperBlockStage.Catalog]. Example -
Add the superblock icon. Example
-
For a new topic, add its display name under
curriculum.catalog.topicin the English translation file and add a.block-label-<topic>rule for its styling. Translations and label styles
Creating Video Courses
Section titled “Creating Video Courses”Selecting a New Course
Section titled “Selecting a New Course”A list of available video courses can be found on the catalog of courses spreadsheet located in the curriculum staff chat. Once you select a course, assign your name on the sheet so other team members know it is taken.
Downloading the Video
Section titled “Downloading the Video”All of the videos will be coming from the main freeCodeCamp YouTube Channel.
freeCodeCamp does not keep any of the original full video files. This means you will need to download the original video. There are many tools to do this but the recommended one is yt-dlp. This is a free and open source command line tool used for downloading videos.
You need to have yt-dlp installed to download the video.
You also need FFmpeg installed to merge the separate video and audio streams selected by the command below. Depending on how you installed yt-dlp, you may need additional setup for YouTube support. Follow the yt-dlp JavaScript setup guide to check whether you need to install a JavaScript runtime or the challenge solver scripts.
Copy the video URL of the course and replace video-url-goes-here in this command. The command reads cookies from Chrome; replace chrome with your browser if needed:
yt-dlp \ -f "bestvideo[vcodec^=avc1]+bestaudio[acodec^=mp4a]/best[ext=mp4]" \ --merge-output-format mp4 \ --cookies-from-browser chrome \ -o "%(title)s [%(id)s].%(ext)s" \ "video-url-goes-here"Download time depends on the video size and your connection. Check the video and audio after the download finishes.
Breaking the Video Down Into Chapters
Section titled “Breaking the Video Down Into Chapters”Once you have downloaded the video, you will need to break it down into chapters. If you go to the original video on YouTube, the video description will provide a detailed course contents breakdown with timestamps.
To separate the video into chapters, you will need to use video editing software. Many editors will work for this. There are paid options like Final Cut Pro and free options like DaVinci Resolve or other similar tools.
Open the video in your editor of choice and add it to the timeline. Then, use your editor’s cutting or splitting tool to divide the video at the timestamps listed in the description.
After splitting the video into sections, review each segment carefully and adjust the start and end points as needed. Once everything is aligned correctly, export each chapter as a separate video file and save them to a folder on your computer.
Once the video is ready, please review it to make sure the export was successful.
Adding Video Chapters to the freeCodeCamp Concepts YouTube Channel
Section titled “Adding Video Chapters to the freeCodeCamp Concepts YouTube Channel”All of these videos will be on the freeCodeCamp Concepts YouTube Channel. You will need channel access with permission to upload videos, such as the Editor or Manager role. If you need access, please reach out to Beau.
Once you have access, you can start adding the videos. The video title should follow this naming convention:
chapter-courseHere are some examples:
- Sum and Difference Formulas - Precalculus Course- Ensuring Correctness of Merge Sort - Introduction to Algorithms and Data StructuresAll videos need to be unlisted and have monetization turned off.
Creating Comprehension Check Questions
Section titled “Creating Comprehension Check Questions”Each video in the course will have a comprehension check question associated with it. This is to ensure that campers will engage with the video and understand the material.
You can review how to create comprehension check questions in this detailed guide.