For this project we will be replacing the UI of a program called TidyBlocks and adding a 'Sign In' feature that will allow users to save and share their work. The existing UI uses a complex and aging framework called Blockly, initially produced by Google, which has not had a major overhaul since more than a decade ago. We will reimplement the drag-and-click blocks interface using modern JavaScript (ES8) and SVG. We are doing this at the request of Dr. Greg Wilson who originally commissioned TidyBlocks.
TidyBlocks was created by a previous student of Wilson’s. Its purpose is to support learning in AP-level statistics courses in the US and Canada with the same style of interface used in Scratch so that it will instantly be familiar to both students and teachers.
We will build a tool to replace Blockly which gives the user a set of predefined joinable blocks to use. These will include Start Blocks, Middle Blocks, End Blocks, Grouping Blocks, and Insert Blocks. Application developers will be able to subset our block classes and add functionality to them such as seen above (Filter, Group By, etc). The user will also be able to add new subclasses with novel UI elements not included in the base blocks. For example, an application developer might want to add a Color Selector block by creating a subclass of a Middle Block and adding a color picker.