aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/DesignDoc.md22
1 files changed, 21 insertions, 1 deletions
diff --git a/docs/DesignDoc.md b/docs/DesignDoc.md
index 4867887..01287c8 100644
--- a/docs/DesignDoc.md
+++ b/docs/DesignDoc.md
@@ -56,7 +56,15 @@ Users are able to login to the Ufund, either as a manager or helper. Helpers are
Security
- We have implemented a set of security features to enhance the security of the application
- We have added an authentication system, which verifies a user can access the correct pages, and keeps them logged in after they have logged in once
+ - Users cannot access funding basket or dashboard unless logged in
+ - Helpers cannot access the manager dashboard
+ - Managers cannot access funding basket
- We have also added a number of password requirements to our signup page, guaranteeing users have strong passwords to keep their accounts secure
+ - Passwords must be 6 characters or longer
+ - Passwords must have one symbol
+ - Passwords must have a number
+ - Passwords must have an uppercase letter
+ - Passwords must have a lowercase letter
Sort filters
- We have implemented a number of sorting filters in the cupboard, allowing users and managers to easily sort through needs with different priorities
@@ -160,12 +168,22 @@ Funding basket:
### 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.
+Controllers
+ - AuthController: Handles http requests to login and logout users, calling to the authService
+ - CupboardController: Handles http requests to interact with needs, calling to the cupboardService
+ - UserController: Handles http requests to interact with users, calling to the userService
+
+Services
+ - authService: Handles logging in and out, as well as authenticating users when they try and visit pages.
+ - cupboardService: Handles all logic dealing with needs, verifying inputs and throwing errors.
+ - userService: Handles all logic dealing with users, verifying inputs and throwing errors.
> _**[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._
+Requests are sent from the view tier and handled by controllers. For example, when creating a new need a POST request is sent from the frontend and caught by the cupboardController. The cupboardController first authenticates the user, calling the authService and making sure the user has proper access. Next, the cupboardService is called to create a need. The cupboardService checks for a valid goal and name, and then creates a need from the model tier, returning back up. The cupboardController and userController all call authService to authenticate users.
+
> _At appropriate places as part of this narrative provide **one** or more updated and **properly labeled**
> static models (UML class diagrams) with some details such as associations (connections) between classes, and critical attributes and methods. (**Be sure** to revisit the Static **UML Review Sheet** to ensure your class diagrams are using correct format and syntax.)_
>
@@ -233,6 +251,8 @@ We have 24 passing Acceptance Tests and 5 failing Acceptance Tests. 4 of these f
> coverage targets, why you selected those values, and how well your
> code coverage met your targets._
+Our unit testing strategy was to use a consistent styles of test across our persistence tier, model tier, and service/controller tier. On top of this, later on we had a single team member work on the majority of tests, resulting in a consistent style across all of the testing. On top of this, we consistently generated coverage reports and then wrote new tests to cover missing lines/branches. Overall, we had ~95% code coverage with the lowest coverage of a class being 82%. Our model tier was above 90% coverage.
+
>_**[Sprint 2, 3 & 4]** **Include images of your code coverage report.** If there are any anomalies, discuss
> those._