In class we discussed the BlockCode project, which produces turtle graphics in a web based environment. In this homework, we will extend the functionality of the BlockCode project. You need to add a "custom" block, which allows the user to create new blocks out of the existing blocks. In doing so, you need to adhere to the project architecture, as outlined by the original author (as we discussed in class).
Below is the list of requirements for this new feature:
In addition to implementing a new feature for the BlockCode application, you need to submit a brief write-up explaining how your code changes impacted the architecture of this application. Some questions to consider are:
In class you cloned your git repository for this course. In this repository, you have BlockCode directory. You will be adding your code to the code contained in this directory (you may have already made some changes to this code in class; if so, you can either commit or discard those changes). When working on each part of your solution, create a new git branch, checkout that branch and do your work there. Make frequent commits to the branch. Once you complete your work on that particular part of the solution, merge the branch to master. Your merges may have incremental steps toward the final solution. For example, you may create a branch add_custom_block_to_menu
for adding a new block called Custom that accepts text (as in requirement 1), write the necessary code there, and merge that branch to master. Then you can move on to the next requirment. The key idea here is to always keep the master branch in a clean/working state.
To submit your solution, merge all your desired changes into the master branch, ensure that the master branch works as you expect it, and push your master branch to the central repo with a git push
command.
Put your write-up about architecture changes into a README.md file in the BlockCode directory, commit, and push that file.
Homework 1 is worth 50 points. Here is how your grade will be calculated: