Requirements Definition Document Functional Requirements 1. Login Page 1.1 Upon opening the application the user will be presented with the option to log in using a unique username and password 1.1.1 If the user does not already have an account, they will have the option to create an account 1.1.2 To create an account a user must choose to provide their email address and choose a unique username and password 1.1.1.1 All passwords must contain at least 8 characters with at least one number and special character 1.2 If the user already has an account and enters their username/email address and password correctly, they will be directed to the home page 1.1.3 Users must complete a CAPTCHA test before creating their account 2. Account Validation 2.1 To maintain user account integrity, a database must be created which stores linked email addresses, their usernames, and passwords. 2.2 When creating an account, if a user chooses a username that is already in the database, they will be informed that it is already taken and prompted to create a different username 2.3 If the username is available, upon successful completion of the CAPTCHA test users will go from the account creation page to an email verification page 2.3.1 Users will be sent an email with a verification code to ensure that they are using their own email address 2.3.2 The email verification page will have a text box where the user will enter their verification code 2.3.2.1 The verification code will expire after 15 minutes. If the user does not enter their code within this time, they can click a link below the verification code text box that will send them a new email with a new verification code 2.3.3 If the user enters the correct verification code, their login information including email, password, and username will be stored in the database and they will be directed to the home page 3. Home Page 3.1 The home page will have the following tabs at the top: Find a Cafe, Verify Business, Discussion, and Profile 3.2 The main feature on the home page will be a monthly rotating spotlight of a cafe selected by an internal curator 3.2.1 The spotlight will include pictures of the cafe, a write-up from the curator, the cafe’s menu, attributes, address and phone number, and the three top rated user reviews 4. Profile Page 4.1 The profile page will list the user’s username, email address, phone number (optional), profile picture, their reviews by order of most recent, discussion posts by order of most recent, a short description about themselves (optional), and their top 3 cafe’s (optional) 4.1.1 Default profile pictures will be a generic silhouette although if users wish to, they will be given a selection of images that they can choose as their new profile picture 5. Create Application Database 5.1 Create User Database that must store unique user attributes to maintain data integrity, including username, password, and email address 5.2 Create Cafe Database that stores attributes of the store that include its location, phone number, user reviews, pastry/brunch availability, and atmosphere 5.3 Create Owner Database that stores information about owners of cafes that have validated their ownership of a cafe in the cafe database . 5.4 Create Discussion Database that stores discussion posts, comments, and user likes/dislikes 6. Cafe Search Feature 6.1 Users who click the Find a Cafe tab in the home page will be directed to the search page 6.2 The search page will ask users to enter their address, city, or zipcode and a search radius 6.3 The search page will then display a map of the entered location with pins on the locations of cafes within the search radius 6.3.1 The search page will also list cafes on the left ordered by the closest locations, showing its name, featured image, rating and location. 6.3.2 Users can click on any of the cafes to take them to the cafe’s profile page 6.3.3 If a user clicks on a pin on the map, it will take them to that cafe’s profile page 6.4 Additional filters can be selected for the search that include atmosphere, pastry/brunch availability and rating 6.4.1 Atmosphere options include Study/Read, Hangout, and Fast Service 6.4.1.1 Atmosphere is determined by user ratings 6.4.2 Users can filter by locations that have only coffee or ones that have either pastry or brunch options 6.4.3 Users can filter by locations based on how many stars it has based on average ratings 7. Cafe Profile Page 7.1 Cafes will have profile pages that will display basic information about the cafe, including its location on a map, phone number, hours, user ratings, and user-submitted photos 7.2 Owners of cafes who have validated their ownership will be able to add a write-up describing their cafe, a menu, and photos 7.2.1 Owners can choose what photo is featured when users see the cafe in their search options 7.3 Users will be able to submit reviews on a cafe’s profile page 7.4 Users can sort reviews by recent or most helpful 7.4.1 “Most helpful” reviews are ordered by their ratio of likes to dislikes 8. Reviews 8.1 Users who choose to submit reviews must give the cafe an overall rating out of 5 stars 8.2 Reviews require users to select what category of atmosphere the cafe had 8.3 Users must indicate yes/no if there were pastry/brunch options’ 8.4 Users can upload photos that will be attached to the review 8.5 Users can add a written portion to the review if desired 8.6 Posted reviews will allow other users to give feedback in the form of a like or dislike to help others know how helpful/reliable the review was 9. Verify Business 9.1 System will allow owners to search for existing cafes in the database 9.1.1 If the cafe is not in the database, owners will be asked to provide information for a basic profile page which will be stored in the database 9.2 If a cafe does not have a verified owner, system will allow users to securely submit documentation proving their ownership of a cafe in the cafe database 9.2.1 Documentation will undergo review process ensuring its legitimacy before the verification is complete 10. Discussion 10.1 System will allow users to create discussion posts about topics which may range from their favorite cafes in town to what their favorite style of coffee is. 10.1.1 Users must include a title for a new discussion post 10.1.2 System will allow users to comment on existing discussion posts and directly reply to other user’s comments 10.2 System will allow users to view discussion posts by order or most recent or they may search for relevant keywords in discussion post titles Non-Functional Requirements 1. Operational Requirements a. System must operate on computer, tablet and mobile devices b. System must operate on internet and mobile data c. System must connect to GPS for searching by location 2. Performance Requirements a. System must load all pages within 10.0 seconds 3. Security Requirements a. All updates must go through testing for bugs and be verified as ready before release b. System will keep all information confidential