The following functional requirements were derived from the user stories.
Those requirements give an overview over the functions and capabilities of the system and form the basis for the implementation. Further explanations on how to implement those requirements will be given in the software design.
Requirements:
FRQ1: Unregistered users can login with their Facebook, Google and Linked account. On first login, an account is automatically created by retrieving the name, surname and e-mail address of the user. On subsequent logins, this account is used.
FRQ2: Unregistered users shall be able to register as a user without using social media sites by providing their e-mail address, name, surname and age as well as a password.
FRQ3: Registered users should have to choose their skills and interests out of a given set before they can be matched with other users and see them on a digital map.
FRQ4: Registered users should be able to restrict their visibility to a given radius.
FRQ5: Registered users should be able to see a digital, zoomable map with all their matches on them.
FRQ6: Registered users should be able to click on a matched user in order to see a short preview of the user including their matching skill(s) and interest(s) as well as a button that links to his profile.
FRQ7: Registered users should be able to restrict all shown people on the digital map to those that are interested in a specific topic by selecting the skill out of a dropdown-box.
FRQ8: Registered users should have a profile showing their name, age, skills and interests as well as a profile picture.
FRQ9: Registered users should be able to message matching users via a chat that is reachable through his profile.
FRQ10: The profile of a registered user should offer the ability to ignore that user so that he is not able to see or interact with me in any kind of way anymore.
FRQ11: The profile of a registered user should offer the ability to report that user. The report will be saved in the database.
FRQ12: Registered users shall be able to create meetings (which are kind of events). A meeting has a name, date, location, description and participants.
FRQ13: Initiators, and only initiators, of the meeting should be able to invite other users to the meeting.
FRQ14: Registered users that have been invited to a meeting should be able to accept or refuse the invitation.
FRQ15: Participants of a meeting should be able to comment on arranged meetings.
FRQ16: Registered users shall be able to add multiple users to a chat (group chats).
FRQ17: Registered users should be able to see a calendar with all their arranged meetings.
FRQ18: Calendar entries should be linked to the actual event.
FRQ19: After a meeting has taken place, all attending users should be able to rate each other both by giving them stars from 1 to 5 and commenting on it.
FRQ20: Registered users should be able to see and read the rating (including the total number of ratings and an average rating) of their matchings on their profiles.
FRQ21: Registered users should be able to en- and disable discovery in their preferences. Disabled discovery means, that this person does not get matched with other users.
FRQ22: Registered users should be able to restrict the users they get matched with to a specific age range.
FRQ23: Registered users should be able to restrict the users they get matched with to a specific e-mail account.
FRQ24: Registered users shall be able to set their notification settings in terms of message, meeting comments and appointment confirmation notifications.
Please comment with your real name using good manners.