diff options
author | Akash Keshav <112591754+domesticchores@users.noreply.github.com> | 2025-02-16 17:04:33 -0500 |
---|---|---|
committer | Akash Keshav <112591754+domesticchores@users.noreply.github.com> | 2025-02-16 17:04:33 -0500 |
commit | ae0bff7e12edbd6f4e76cf32468f5d5607e770a6 (patch) | |
tree | 351461ddfb35d4b0f973d9eba223a660a5d50398 /docs/DesignDoc.md | |
parent | 781da6af80a6a1391bfe1d6445f6d59a28362c72 (diff) | |
download | JellySolutions-ae0bff7e12edbd6f4e76cf32468f5d5607e770a6.tar.gz JellySolutions-ae0bff7e12edbd6f4e76cf32468f5d5607e770a6.tar.bz2 JellySolutions-ae0bff7e12edbd6f4e76cf32468f5d5607e770a6.zip |
added design doc and relevant diagrams. -ak
Diffstat (limited to 'docs/DesignDoc.md')
-rw-r--r-- | docs/DesignDoc.md | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/docs/DesignDoc.md b/docs/DesignDoc.md index ceb60a6..b673e62 100644 --- a/docs/DesignDoc.md +++ b/docs/DesignDoc.md @@ -3,11 +3,6 @@ geometry: margin=1in --- # PROJECT Design Documentation -> _The following template provides the headings for your Design -> Documentation. As you edit each section make sure you remove these -> commentary 'blockquotes'; the lines that start with a > character -> and appear in the generated PDF in italics but do so only **after** all team members agree that the requirements for that section and current Sprint have been met. **Do not** delete future Sprint expectations._ - ## Team Information * Team name: Jelly Solutions * Team members @@ -19,7 +14,7 @@ geometry: margin=1in ## Executive Summary -This is a summary of the project. +Our project is intended to create a space to fund aquatic conservation, from physical ecosystems such as coral reefs to aquatic creatures such as jellyfish. Users will be able to donate funds, both physical and monetary, to individal 'needs', and see how close to reaching a funding goal each need is. ### Purpose > _**[Sprint 2 & 4]** Provide a very brief statement about the project and the most @@ -74,9 +69,9 @@ The following Tiers/Layers model shows a high-level view of the webapp's archite  -The web application, is built using the Model–View–ViewModel (MVVM) architecture pattern. +The web application is built using the Model–View–ViewModel (MVVM) architecture pattern. -The Model stores the application data objects including any functionality to provide persistance. +The Model section contains our back-end structure, split into three sections: Model, Persistence, and Controller. Each of the files contained for each section are below each item. The View is the client-side SPA built with Angular utilizing HTML, CSS and TypeScript. The ViewModel provides RESTful APIs to the client (View) as well as any logic required to manipulate the data objects from the Model. @@ -112,6 +107,8 @@ This section describes the web interface flow; this is how the user views and in ### ViewModel Tier > _**[Sprint 1]** List the classes supporting this tier and provide a description of their purpose._ +The ViewModel contains the SpringBoot framework, which can be run on any modern operating system. This framework handles the REST API requests for the needs, incuding the creation, deletion, and search for needs stored on the system. Additionally, jackson is used for JSON serialization. + > _**[Sprint 4]** Provide a summary of this tier of your architecture. This > section will follow the same instructions that are given for the View > Tier above._ @@ -124,6 +121,8 @@ This section describes the web interface flow; this is how the user views and in ### Model Tier > _**[Sprint 1]** List the classes supporting this tier and provide a description of there purpose._ +The Model Tier contains the classes responsible for handling and serving Need data. In the model subsection is our Need.java, which handles the Need class itself and provides helper functions to get and set Need data. The persistence subjection handles stored data, using Data Access Objects (DAOs). The Controller section connects the two previous ones, handling the transfer of Needs to persistent storage. + > _**[Sprint 2, 3 & 4]** Provide a summary of this tier of your architecture. This > section will follow the same instructions that are given for the View > Tier above._ @@ -137,6 +136,11 @@ This section describes the web interface flow; this is how the user views and in > _**[Sprint 1]** Name and describe the initial OO Principles that your team has considered in support of your design (and implementation) for this first Sprint._ +- Law of Demeter: Classes only talk to nearby classes. +- Low Coupling: Limit the number of classes connected to each individual class. +- Pure Fabrication: Using helper functions to split up larger classes into more managable chunks. +- Single Responsibility: Each function should only have one function to prevent unintended errors. + > _**[Sprint 2, 3 & 4]** Will eventually address upto **4 key OO Principles** in your final design. Follow guidance in augmenting those completed in previous Sprints as indicated to you by instructor. Be sure to include any diagrams (or clearly refer to ones elsewhere in your Tier sections above) to support your claims._ > _**[Sprint 3 & 4]** OO Design Principles should span across **all tiers.**_ @@ -171,3 +175,6 @@ This section describes the web interface flow; this is how the user views and in ## Ongoing Rationale >_**[Sprint 1, 2, 3 & 4]** Throughout the project, provide a time stamp **(yyyy/mm/dd): Sprint # and description** of any _**major**_ team decisions or design milestones/changes and corresponding justification._ + +**(2025/02/12): Sprint #1: Decided on the U-fund theme as Aquatic / Coral Reef.** +**(2025/02/15): Sprint #1: Outlined structure of Back-End Application.**
\ No newline at end of file |