/textbooks

Source code of Mathigon's interactive textbooks

Primary LanguageTypeScript

Mathigon Textbooks

Welcome to Mathigon! This repository contains the source code and assets for all our interactive textbooks.

Mathigon is an award winning new mathematics education platform for students aged 12 to 18. Part textbook and part virtual personal tutor, it uses cutting-edge technology and an innovative new curriculum to make learning mathematics more fun and more interactive.

Getting Started

First, make sure you have Node installed in your environment before continue with the setup. You can check if Node is already installed by running the node -v command.

If Node is not yet installed, please download and follow instructions for installation from its official page.

After forking and cloning this repository, install all dependencies using npm install.

Now you can start a local development server by running npm start. Wait for the assets to be compiled and then open localhost:5000. The server will automatically watch for file changes.

Every course is a subfolder in the content directory. The URL of the Sequences course, for example, will be localhost:5000/course/sequences.

Course Structure

Every course consists of a few different components:

  • content.md contains the source code and metadata for a course. It is written in a custom extension of Markdown.
  • functions.ts contains all course-specific TypeScript code.
  • styles.less contains all course-specific styles, in LESS format.
  • hints.yaml (optional) contains any messages that can be sent by Mathigon's virtual personal tutor.
  • concepts.yaml (optional) contains parts of Mathigon's internal knowledge tree for this topic.

The shared directory contains biographies, glossary and assets used by multiple courses.

Every course is divided into multiple steps, each with a unique ID. These IDs are used as function names in functions.ts when exporting the setup code for every section. Every function gets called with a $step argument, when the corresponding step is revealed for the first time. Check types.d.ts for the available properties and methods.

The server directory contains a simplified version of Mathigon's web server. It is used for local testing, but should not usually be modified.

Contributing

We welcome any contributions to Mathigon – from bug fixes and correcting typos to creating entirely new courses. If you find any errors or problems, please file an issue. For larger changes, please contact us before starting your work.

Before submitting a pull request, you will need to sign the Mathigon Individual Contributor License Agreement.

You can find out more on Mathigon.io.


© Mathigon 2016–2020, All rights reserved