Skip to content
This repository has been archived by the owner on Jun 30, 2022. It is now read-only.

ProgrammingWarmups/www.warmups.dev

Repository files navigation


Programming warmups, for developers

Binder Netlify Status

Introduction

NOTE: We are no longer developing or maintaining this project

Based on the course framework that Ines Montani developed for her spaCy course, this repository contains the source code for a platform that offers developers the opportunity to master basic programming skills and rev up their minds. The front-end is powered by Gatsby and Reveal.js and the back-end code execution uses Binder. This web site will only work correctly if it has a build with Binder for the current version of the binder/requirements.txt file.

Running the Site

To start the local development server, install Gatsby and then all other dependencies. This should serve up the app on localhost:8000.

npm install -g gatsby-cli  # Install Gatsby globally
npm install                # Install dependencies
npm run dev                # Run the development server
npm run build              # Build the entire site

Setup for and Use of Binder

The requirements.txt in the repository defines the packages that are installed when building it with Binder. You can specify the binder settings like repo, branch and kernel type in the "juniper" section of the meta.json. You can run the very first build via the interface on the Binder website, as this gives you a detailed build log and feedback on whether everything worked as expected. Importantly, a push to the binder branch of this repository will automatically build and deploy a Binder image for use with the deployed version of the web site.

Adding a New Warmup

  1. Create a new Markdown (MD) document in warmups/ by copying an existing warmup.
  2. Update the title, description, and slug fields in the frontmatter. slug is the path at which the warmup will be located on the site. It can usually just be the name of the warmup MD document.
  3. Add the slug to warmups/order.js in the position it belongs.
  4. Within the new warmups/ MD document, the <codeblock> elements should have an id that reflects the name of the MD document.
  5. When adding Python exercises in exercises/, use this <codeblock> id in the names of the corresponding starter, solution, and test files.