Goal
Your team is to produce a complete architectural and object oriented design for your proposed system.
Your design should include the following components:
- A proposed system architecture. This should be a diagram showing the components of the system in operation. For example, it should show the components on the client side (running on a web browser), and the components on the server side, with labeled lines showing how and what these components interact and communicate with each other. If your server side has other background processed, this should be shown clearly in the architecture.
- A proposed class design for each component. Since your program will likely have code on BOTH the web page side, and the server side. and may have multiple programs running on the server, make a class design for each.
- A proposed database design. Include each a schema for each table (with types), and primary keys.
- A proposed communication API. Define and explain each REST API you will create. Example:
/art/button/n – Send a button press to the server. Where n is the button number (0-7);
You should use a tool like google diagram.net to make the graphical schematic of each of the above, along with descriptions of the methods and relationships among the components.
Be prepared to present your design in class as a team.
