Skip to main content

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.
Details
  • The Navigation Bar of the BlastPad featuring buttons for navigating the UI and Wifi/Battery elements.