Design Document

In your design document (design.md), discuss the potential options for how you could implement these changes and describe why you chose your certain implementation. Keep in mind that we want to adhere to principles of maintainability, readability, and extendibility of our codebase. In this document, you should do the following:

  • Identify and describe the key design decisions that you made during the project. This may be decisions such as where to add code, how to decompose the code into classes and functions, how a value is passed between functions, etc. There may be one or many such design decisions, depending on the task.
  • Create a diagram that shows the relationship between the relevant parts of the code base for the project. The purpose of the diagram should be to help coworkers understand the code you were working on and how you had to change certain methods/classes.
  • Choose an alternate approach to implement the requirements and discuss the pros and cons of that alternate approach compared to the approach you took.