Skip to content

kaglet/B-Trees-Tool

Repository files navigation

B-Trees Visualization, Manipulation, and Practice Tool

This is a tool that allows you to create customized B-Trees, manipulate them with a highly interactive user experience mode and generate random questions on them to practice their operations. There are several secondary features to improve the user experience further.
Find the tool live here.

The following are pictures of the tree-creation, questions-practice, and user-guide pages respectively. These are to show how the page should look at 100% fullscreen. Light and dark modes are shown.

image image image

Features

Main features

  • Custom Tree Creation page to create a custom tree and random tree based off degree and/or number of nodes.
  • Highly intuitive tree interaction and manipulation options using the drag and drop "snapping" mode allowing users to intuitively merge and un-merge keys into nodes by dragging them around and dropping.
  • Insert/Delete keys to/from tree with input options for building a custom tree from scratch or editing a random tree.
  • Perform insert/delete questions through dragging keys to a bin to delete them or inserting floating keys via snapping.
  • Mark and validate trees after performing an insert/delete operation for a question.
  • Endless question generation mode for practice of random delete/insert questions on a random tree.
  • Export tree to text file representation and import tree from text file representation.
  • Canvas controls to pan tree and center tree.

Supporting features

  • With press of space-bar toggle between node drag mode and key drag mode.
  • Click reset icon to reset to original tree after heavy modification of trees during question taking or random tree creation.
  • Can show correct solution on incorrect answer if stuck.
  • Seeds that can be used to generate the same random tree every single time if given the same tree parameters.
  • Validation of user input with appropriate error messages.
  • Comprehensive user guide covering B-Tree theory, manipulation, insertion/deletion by cases, glossary, FAQ, and video walkthroughs.
  • Clean, uncluttered, easy to use interface.

Extra features

  • Per page dark mode for the main pages.
  • Quick help guide on custom tree creation page.

Advanced features to potentially add in future

  • Selective random generation. Generate insert/delete questions by specified cases beyond purely random generation.
  • B-Tree Search question practice in addition to insert/delete.
  • Setting up a series of questions on a created tree that could then be saveable and loadable with the tree.
  • Advanced auto-marking mark allocation to marked questions based off complexity of operation.

Team members