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

@giancosta86/omnicourse

v2.3.1

Published

Interactive, React-based drill-down analysis of your learning experience

Downloads

293

Readme

OmniCourse

Interactive, React-based drill-down analysis of your learning experience

GitHub CI npm version MIT License

Screenshot

Introduction

OmniCourse is a TypeScript library for React dedicated to the multi-level analysis of one's learning experience.

More precisely, its <OmniCourse> component displays pie charts and reports automatically generated from taxonomies of subjects that classify works (online courses, books, talks, ...).

Interactive drill-down is its core analytical feature: when the user selects a taxonomy or clicks on a pie slice, the component shows the subjects/works contained in the related taxonomy level; of course, a breadcrumb navigation bar enables arbitrary backtracking during the drill-down exploration.

OmniCourse is designed to be the kernel of the learning area on my personal website - but I wanted to package it as a library to make it accessible to everyone!🦋

Installation

OmniCourse can be installed like any NPM package:

yarn add @giancosta86/omnicourse

It is written in TypeScript, so you can take advantage of type definitions & annotations.

The public API entirely resides in the root package index, so you shouldn't reference specific modules.

For details about installing and using OmniCourse, please consult the tutorial wiki page.

Alternatively, the lightweight kernel, focusing on just the core model - with no UI dependencies - is available as the OmniCourse-core project.

New features in OmniCourse 2

  • Well-defined model written in TypeScript, with remarkably high test coverage on the model

  • Default CSS stylesheet out of the box - as a working basis for further customization

  • Support for deferred loading from arbitrary data sources, with opt-in caching

  • Auto-drilldown: if the current taxonomy level only contains one subject (it is not meaningful), the React component automatically displays that subject's items by simulating a user click - recursively

  • Path continuity: when the user switches between taxonomies, OmniCourse tries to reuse as many breadcrumbs as possible from the current taxonomy path, by automatically diving into the new taxonomy

  • Download button - so that users can download either a PNG of the current chart or the current work report in JSON format

  • Almost identical raw descriptor format - with full backwards compatibility

  • Stricter input validation, including prevention of duplicate sibling works within a subject

  • Sorting algorithm, for both subjects and works

  • Advanced chart customization settings

  • On-demand asynchronous loading via web workers - to offload computation from the UI thread

  • Lightweight core model - in the OmniCourse-core TypeScript library

Using the library

OmniCourse is described in detail in its wiki; in particular, please refer to the core model and tutorial sections.

See also