User Stories
As a user, I want to input my personal information so that I can receive personalized, research-backed sunscreen recommendations
As a user, I want to see detailed information about my sunscreen recommendations so that I can understand how to effectively use the recommended sunscreens
As a user, I want to be be reminded to reapply sunscreen so that I can remember to reapply sunscreen when necessary
As a user, I want to have access to trustworthy resources about sunscreen so that I can be educated about sunscreen
As an admin, I want to add entries in the sunscreen database so that a new sunscreen can be recommended
As an admin, I want to edit entries in the sunscreen database so that information about a sunscreen can be up to date
As an admin, I want to delete entries in the sunscreen database so that an undesirable sunscreen can no longer be recommended
As an admin, I want to add entries in the resources database so that a new resource can be accessible to users
As an admin, I want to edit entries in the resources database so that information about a resource can be up to date
As an admin, I want to delete entries in the resources database so that an undesirable resource can no longer be accessible to users
Requirements
Functional Requirements
When the user clicks the hamburger button on mobile, the navigation links will be displayed
When the user clicks the logo or the home link on the navigation bar, the home page will be displayed
When the user clicks the quiz link on the navigation bar, the quiz page will be displayed
When the user clicks the button to start the quiz, the questions will be displayed
When the user clicks the button to submit their responses and not all of the questions have been answered, the user will be taken to the unanswered questions
When the user clicks the button to submit their responses and all of the questions have been answered, their Fitzpatrick skin type and skin type as well as the photo, name, and description of a few recommended sunscreens will be displayed
When the user clicks the button to restart the quiz, the questions will be displayed
When the user clicks the reminder link on the navigation bar, the reminder page will be displayed
When the user clicks the button to start the timer, the timer will start counting down based on the user's skin type and current UV
When the user clicks the restart timer button, the timer will restart from the beginning and start counting down again
When the timer reaches 0, a browser notification to reapply sunscreen will appear
When the UV index is less than 1, the timer will not be usable
When the admin clicks the sync sunscreen data option on the Google Sheet, the application will update to reflect any changes to the sunscreen database
When the user clicks the resource link on the navigation bar, resources with helpful information regarding skin and sunscreen will be displayed
When the user clicks a resource card on the resource page, they will be taken to the resource webpage
When the admin clicks the sync resources option on the Google Sheet, the application will update to reflect any changes to the resource database
When the admin clicks the sync everything option on the Google Sheet, the application will update to reflect any changes to the sunscreen and resource databases
When the user clicks “take photo of skin with AI” on the questionnaire, they will be prompted to upload a picture of their skin
When the user takes a picture of their skin, their skin overview and the recommended sunscreen will be displayed
When the user uploads the picture of their skin, the picture will be managed and deleted securely in accordance of privacy policy
Non-Functional Requirements
The web app will be accessible from desktop and mobile
The web app will have a simple, user-friendly UI
A user's personal data will not be accessible to others
The user will be able to read the website in multiple languages
An accompanying iOS or android mobile application
Interfaces
Through the GUI, the user fills out a quiz, receives sunscreen recommendations, accesses informational resources, and uses the reapplication timer
Through the Google Sheet, the admin modifies the sunscreen and resource data