In order to have a proper software engineering process, we had brainstorming sessions to collect user stories. Moreover, we conducted a survey and asked, among other questions, which functions are needed to make our application desirable for the customer. These user stories (see also use case diagram) are the basis for the derivation of functional and non-functional requirements, which in turn are the basis for our architectural, database and detailed design.
US1: As a user I want to be able to login with my Facebook, Google or Linkedin account so that my user account automatically gets created.
I also want to be able to create an account manually without logging in via social networks.
US2: As a user, I want to be able to choose my skills and interests out of a given list in order to avoid confusion (wrong spelling etc.).
US3: As a user I want to be able to see all the people around me (given a specific radius that I can set in my preferences) on a digital map (with a short preview on click) who provide those skills I’m interested in so that I’m able to get in contact with them.
US4: As a user I want to be able to restrict all shown people to those that are interested in a specific topic.
US5: As a user I want to be able to communicate with the users matching my skills in order to discuss a specific topic or arrange a meeting.
US6: As a user I want to be able to ignore and/or report specific people (they won’t appear on my map, they are not able to invite or send me messages anymore) in order to not be bothered after having a bad experience.
US7: As a user I want to be able to invite one or more people to a meeting in order to keep track of my meetings on the app. Moreover, I want to be able to set a location, a description and a time for the meeting.
US8: As the initiator of a meeting, I want to be the only person that is allowed to add other people to the meeting.
US9: As a user I want to be able to comment on arranged meetings in order to further discuss important things regarding the meeting, especially in the case that more than two people are attending the meeting.
US10: As a user I want to be able to create group chats in order to arrange group meetings.
US11: As a user I want to be able to confirm or decline invitations from other people.
US12: As a user I want to be able to see a calendar with all arranged meetings and all participants in order to keep track of my schedule.
US13: As a user I want to be able to rate the people I had a meeting with and write reviews about them in order to provide others with a useful feedback in terms of kindness and trustworthiness.
US14: As a user I want to be able to view the user profile of the people matched to me including pictures, basic information, their skills and interests as well as their reviews. Moreover, I want to see how many meetings and ratings this person has, including an average rating.
US15: As a user I want to be able to set my discovery preferences in order to adjust the distance (as a radius) I want to get matched with people (e.g. I only want to get matched with people that are at most 20km away from me). Moreover I want to be able to enable and disable discovery (meaning that I’m not visible anymore, e.g. when I’m on holiday). Also, I would like to restrict the people I get matched with to a specific age range (e.g. people aged between 18 and 30). Eventually, I want to be able to restrict my matchings to people with specific e-mail accounts (e.g. @soton.ac.uk) in order to only get matched with people from, for example, a specific university.
US16: As a user, I want to be able to set my notification settings in order to turn on and off the notifications for new messages, meeting comments and appointment confirmations.
Please comment with your real name using good manners.