npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

qodemate

v0.1.38

Published

Qodemate is a presentation platform for CS educators

Downloads

11

Readme

Qodemate

I want Qodemate to be a platform CS educators use to make interactive lessons. I made an algorithm that parses step number comments in the user's code so Qodemate can reproduce the program step by step.

Simple Sample Project

// simple_sample.js //0
let ball = {
  x: 50,
  y: 50,
  r: 5, // radius
  d: 10 // diameter
};
//1
function setup() {
  createCanvas(100, 100);
}
//0
function draw() {
  //2
  ball.x++; //3 4
  ball.x--; //4
  ellipse(ball.x, ball.y, ball.d, ball.d);
} //2
# setup function //0

Start with the p5.js setup function, create a canvas 100w x 100h.

# ball Object //1

Let's make an object to store the ball's position and radius.

# draw function //2

Use the ellipse function inside the draw function to draw the ball.

# Animating the ball //3

To make the ball move to the right we can increment its x value.

# Animating the ball //4

To make the ball move to the right we can decrement its x value.

Result

// simple_sample.js
function setup() {
  createCanvas(100, 100);
}
// simple_sample.js
let ball = {
  x: 50,
  y: 50,
  r: 5, // radius
  d: 10 // diameter
};

function setup() {
  createCanvas(100, 100);
}
// simple_sample.js
let ball = {
  x: 50,
  y: 50,
  r: 5, // radius
  d: 10 // diameter
};

function setup() {
  createCanvas(100, 100);
}

function draw() {
  ellipse(ball.x, ball.y, ball.d, ball.d);
}
// simple_sample.js
let ball = {
  x: 50,
  y: 50,
  r: 5, // radius
  d: 10 // diameter
};

function setup() {
  createCanvas(100, 100);
}

function draw() {
  ball.x++;
  ellipse(ball.x, ball.y, ball.d, ball.d);
}
// simple_sample.js
let ball = {
  x: 50,
  y: 50,
  r: 5, // radius
  d: 10 // diameter
};

function setup() {
  createCanvas(100, 100);
}

function draw() {
  ball.x--;
  ellipse(ball.x, ball.y, ball.d, ball.d);
}

Goals

I also want Qodemate to be able to pull up documentation, install packages, run commands, and even do searches on StackOverflow! I also Qodemate presentations to be "playable" when synced to video lessons/presentations/tutorials.

I stopped working on this project in 2020 because I could never get copy/paste commands to work consistently with some IDEs and typing would trigger autocompletion which was a big problem too. I wanted to pivot to making a website where users could make interactive code presentation "videos" but someone has kind of already done that. Check out https://ractive-player.org/ really cool stuff but not nearly as easy to use as I hope Qodemate would be.

Recently I've considered making a Qodemate extension for VS Code and having the Qodemate app communicate with the Qodemate extension to do the "typing" in a more controlled way. I could also do error checking by checking the file contents to make sure it's right. I've also thought about changing the contents directly but it seems like that approach would be too slow.

Why use Qodemate for presentations?

Static Slide Presentations

  • require a lot of prep work
  • slides can only contain static screenshots or excerpts of code
  • can't run the program at different points during the presentation

Live Coding Presentations

  • must be done from memory or improvised
  • teaching a class and typing at the same time can be difficult

Dynamic Qodemate Presentations

  • fully choreograph a dynamic presentation (improv is optional)
  • hit the spacebar or use a clicker like a powerpoint
  • run code at any point during the presentation

Installation Instructions for Developers

Gotta see it to believe it? I'm going to make a demo soon. You can also click on the releases tab and download the Qodemate app for your OS.

How does it work?

Check out the wiki! More pages are coming soon.

Getting Started

Download these test files. Right now only the jsTestFolder will work.
https://github.com/quinton-ashley/qodemate-test-files