Why Build This
I have wanted to learn how to use a documentation generation library for a while now. I think it is important not only to write code so it can be shared, but also provide a knowledge base alongside. This dramatically increases the approachability of any project, and provides a valuable reference asset.
I also think documents are an outdated presentation format. We are in a digital age, why are publications still formatted to fit on a piece of paper when most people will read them online?
So, as a developmental exercise I used MkDocs to convert the markdown files this knowledge base was built with into an explorable website. It took some extra tools, so I also developed a few python scripts to get everything formatted nicely and generate a learning order graph as well as subgraphs for every topic. The graphs are rendered using mermaid.js, a very syntactically lightweight language for describing almost any kind of chart.
What is Bitcoin Page (example of a good subgraph): https://lpurdy01.github.io/crypto-knowledge-map/What_is_Bitcoin/
Learning Order Graph (see the whole website at once): https://lpurdy01.github.io/crypto-knowledge-map/Learning_Order_Graph/
This site is meant to be a tech demo for a presentation and educational structure that shows how concepts interrelate and allows a user to independently explore and recontribute. Wouldn’t it be cool if every class had a tech tree?
The web version also lowers the barrier to contributing a lot. A user doesn’t have to download any software, or know how to fork, clone, and create a pull request for a repo.
In the top right corner of every page there is an edit icon. Clicking it will allow a user to edit the markdown file behind the page. Anyone can submit recommendations or additions with only a free GitHub account. Should students be able to improve the quality of information provided in the educational materials or provide relevant feedback with easily documented context?