Class Diagram
Class Relationships
The class diagram above demonstrates various relationships between different classes within the BlastPad system. The ProfileSettingsPage is responsible for the user settings which is linked to the HomePage. Furthermore, the CommunityPage is dependent on the user's ProfileSettingsPage to upload and share games. The CommunityPage and the ClassroomPage are both dependant on the NetworkSettings class to provide an internet connection in order to share and download games. The NavBar is responsible for allowing navigation and information about battery and wifi connection through different elements. This class depends on the Icons class which returns different SVG elements for buttons and icons to render. The HomePage also makes use of the Icons class in a similar fashion.
The Game, CodeCompiler, BlocklyEditor and the Block classes are all dependent on each other. This is because together, they form the most vital part of the BlastPad which is game creation and compilation. This is what makes the BlastPad such an amazing and fun learning tool.
Flask
Details
- Describes the Flask server which is in charge of running the compiler, hosting the editor, and hosting the home screen.
Block
Details
- Describes the properties necessary to define and create a Blockly code block
BlocklyEditor
Details
- Allows the user to work on Blockly based projects and create/place code blocks within it
ClassroomPage
Details
- Acts as a platform to host user-created Blockly games belonging in a classroom
ClassroomSettingsPage
Details
- Lets the user interact with classrooms
CodeCompiler
Details
- Converts the raw Blockly JSON definition into a runnable code Block in Python
NetworkSettings
Details
- Manages the BlastPad's WiFi connection supporting scanning for new networks, connecting to one, and disconnecting from one
Game
Details
- Contains the metadata of a Blockly game, allows users to play the game it defines, and upload it to a Classroom
CommunityPage
Details
- Allows for all users to upload their games and download games without belonging to a classroom.
ProfileSettingsPage
Details
- Allows for users to create an account.
HomePage
Details
- The main screen for the BlastPad allowing for game edits, sharing and other features.
Icons
Details
- A list of functions which return different SVG objects for the Navbar and other components to render.
NavBar
Details
- The Navigation Bar of the BlastPad featuring buttons for navigating the UI and Wifi/Battery elements.