Project Requirements - bounswe/2021SpringGroup6 GitHub Wiki
Glossary
Advertisements: The commercials that the users of the app are exposed to.
Block: Any user blocked by another user is invisible to the blocker.
Discriminatory speech or content: Any content that detected as irrespectful.
Event: A sports activity created by a user for other users to participate.
Field: Any location that event can take place.
GDPR: General Data Protection Regulation in European Union and European Economic Area on data protection and privacy. The main goal of this is to provide people with control over their private data/information.
Guest: Any person who has not logged in
KVKK: Kişisel Verilerin Korunması Kanunu is a law to protect and regulate private data/information introduced by the Republic of Turkey Government.
User: Any person who has logged in
User contact information: The personal information about the user signed in.
Visible: Any information that is accessible by other users.
1. Functional Requirements
1.1 User Requirements
- 1.1.1 Registration
- 1.1.1.1 Guests shall be able to register using username and password that they determine and weren't used by any other user before, kinds of sports they are interested in, their skill level, and email address.
- 1.1.1.2 Guests shall be able to provide additional information such as name, surname, location, age and gender about themselves at the registration stage.
- 1.1.1.3 Users shall be able to delete their accounts whenever they want.
- 1.1.2 Login
- 1.1.2.1 Guests shall be able to login using their username and password combination.
- 1.1.2.2 Users shall be able to log out whenever they want.
- 1.1.3 Profile Management
- 1.1.3.1 Users shall update their username, password, location, age, gender, e-mail, skill level, and favorite sports.
- 1.1.3.2 Users shall be able to see the users they followed.
- 1.1.3.3 Users shall be able to see their event history.
- 1.1.3.4 Users shall be able to decide which information is visible to others.
- 1.1.3.5 Users shall be able to see the events they are interested in.
- 1.1.3.6 Users shall be able to get a new password when they forget their passwords.
1.2 System Requirements
- 1.2.1 Event Recommendations
- 1.2.1.1 The system shall recommend the events that are for sports selected by the user.
- 1.2.1.2 The system prioritizes the events for users with the close skill level as the user.
- 1.2.1.3 The recommended events shall be automatically sorted by ascending distance.
- 1.2.1.4 The events created by the event creators, whom the user is following, shall be recommended.
- 1.2.2 Notifications
- 1.2.2.1 The system shall send notifications on events, to which the user is "Interested" when the user is approved or rejected by the event creator.
- 1.2.2.2 The system shall send notifications when an event in which the user is "Interested" only has few available spots left. The meaning of few shall be determined for each sport separately.
- 1.2.2.3 The system shall send notifications when all the spots in an event to which the user is approved to participate are taken.
- 1.2.2.4 The system shall send notifications when an event to which the user has approved starts in a week, a day, and 3 hours.
- 1.2.2.5 The system shall send notifications if an event to which the user has approved has been canceled by the event creator.
- 1.2.2.6 The system shall send notifications if details of an event to which the user has been approved has been changed by the event creator.
- 1.2.3 Search Engine
- 1.2.3.1 The user shall be able to search events.
- 1.2.3.2 The user shall be able to filter the event results based on sport type, skill level and time.
- 1.2.3.3 The user shall be able to sort search results based on their distance if location data is shared, starting time, skill level for events.
- 1.2.3.4 The user shall be able to search users based on their name and username.
- 1.2.3.5 The user shall be able to search equipment.
- 1.2.3.6 The user shall be able to filter equipment based on the sport type.
- 1.2.3.7 The user shall be able to search field.
- 1.2.3.8 The user shall be able to sort field based on its distance.
- 1.2.3.9 The user shall be able to search events on map.
- 1.2.4 Profile Page
- 1.2.4.1 Every user shall have a profile page.
- 1.2.4.2 Every user's profile page is visible to other users.
- 1.2.4.3 Profile page of a user shall include the username.
- 1.2.4.4 Users shall be given the option to show and hide the full name, profile picture, age, user location, skill level for each sport, personal badges, previously attended events, previously created events.
- 1.2.4.5 If the user is a field owner, field details, previous events that took place in the fields the user has shall be shown on the profile page of the user.
- 1.2.4.6 Users shall be able to block other users from their profile pages.
- 1.2.4.7 Users cannot see the profile of the user who blocks them.
- 1.2.4.8 Users cannot move to the profile page of the user who blocks them when they see him/her on the event attendee list.
- 1.2.4.9 Users shall be able to follow other users from their profile pages.
1.3 Event Requirements
-
1.3.1 Creation and Cancellation
- 1.3.1.1 Any user shall be able to create an event. After creating an event, the host is going to get the "Event Creator" status and have privileges merely for that specific event.
- 1.3.1.2 The creator for an event shall be able to cancel the event before it starts. In that case, anyone who stated that they are "Coming" to the event or "Interested" in the event shall receive notifications about the cancellation.
- 1.3.1.3 Every event must have one host and any number of co-hosts.
-
1.3.2 Event Page
-
1.3.2.1 General Information
- 1.3.2.1.1 Users can send registration request via event page.
- 1.3.2.1.2 Users can declare themselves as spectator via event page.
- 1.3.2.1.3 Users can access information and comments/discussions about the specific event and place via the event page.
-
1.3.2.2 "About" Tab
- 1.3.2.2.1 There will be some basic information about the event on this page like "Time", "Location", "Min and max number of participants" and "Description".
- 1.3.2.2.2 Also, some events might have some constraints for the users who want to participate. These "Requirements" are also shown in the "About" Tab.
- 1.3.2.2.3 There will be information about the badges to be delivered. After the event, the ones who gained the badges will be displayed.
- 1.3.2.2.4 Badges to be delivered can be changed by the creator. That is, "event owner to players badges" is customizable. See badges section.
-
1.3.2.3 "Discussion" Tab
- 1.3.2.3.1 The event page will also include a "Discussion Page" for people to post their questions, talk about where to find the necessary equipment or offer changes in the plan.
- 1.3.2.3.2 Who can post or see the posts on this page can be adjusted by the event creator.
-
1.3.2.4 Unless otherwise stated, users shall be able to see who is "Coming" to the event, "Interested" in the event, and "Wants to Watch" the event.
-
1.3.2.5 Participants shall be able to share photos and videos after the event if the event creator allows, in the Event Page.
-
-
1.3.3 Management
- 1.3.3.1 Depending on the event creator's choices, some events might require an approval from the creator before the participation. In these cases, the user shall seem to be "Interested" in the event and wait for the event creator to approve their participation. They can send an "approval request message" as to why they want to participate to obtain a higher chance of getting an approval.
- 1.3.3.2 Event creator can make changes in the activity, even after its creation.
-
1.3.4 Communication
- 1.3.4.1 Users can ask their questions about the event in the "Discussion Page" if permitted.
- 1.3.4.2 For approval-required events, the users who want to participate can send an approval request and explain why they want to attend.
-
1.3.5 Spectators
- 1.3.5.1 The users who do not participate as player can be spectator. They also can undo it.
- 1.3.5.2 Users can declare themselves as spectator via event page. (See 1.3.2.1.2)
- 1.3.5.3 If the field capacity is less than or equal to the number of spectators, new spectators will be warned about it.
- 1.3.5.4 If the field capacity is less than the number of spectators, current spectators will be warned about it.
1.4 Badges
- 1.4.1 Badge Types
- 1.4.1.1 There will be certain badges already designed in the system.
- 1.4.1.2 Users shall be able to request new type of badges from the system.
- 1.4.1.3 There will also be badges indicating misbehaviour.
- 1.4.2 Badge Acquirement
- 1.4.2.1 Users shall be able to acquire badges as event participators.
- 1.4.2.2 Users shall be able to acquire badges as event creators.
- 1.4.2.3 The badges shall be given by the system, event participators and event creators.
1.5 Equipment
- 1.5.1 Creation and Deletion
- 1.5.1.1 Any user shall be able to create an equipment post.
- 1.5.1.2 The creator of equipment shall be able to delete the equipment from the system.
- 1.5.2 Equipment Page
- 1.5.2.1 General Information
- 1.5.2.1.1 Users can access information and comments/discussions about the specific equipment and place via the equipment page.
- 1.5.2.2 "About" Tab
- 1.5.2.2.1 There will be some basic information about the equipment on this page like "Location", "Related Sports" and "Description".
- 1.5.2.3 "Discussion" Tab
- 1.5.2.3.1 The equipment page will also include a "Discussion Page" for people to post their questions, talk about where to find the equipment.
- 1.5.2.3.2 Participants shall be able to share photos and videos about the equipment.
- 1.5.2.1 General Information
2. Non-Functional Requirements
2.1 Design
- 2.1.1 There will be an Android application and a web platform. Both of them will have identical functionalities.
2.2 Annotations
- 2.2.1 W3C Activity Stream standard 2.0 will be used in order to implement subscription and notification functionalities.
- 2.2.2 Wikidata.org will be used to support semantic taggings.
2.3 Legal and Ethical Issues
- 2.3.1 The rules of GDPR and KVKK will be followed regarding the "personal information", "contact information", "copyrighted contents", "licence issues" etc.
- 2.3.2 There will be documents about "Terms of Use" and "Privacy Policy" of the application and they must be accepted during the registration.
- 2.3.3 The Project will consider the Ethical Values.
- 2.3.4 There will be no tolerance for discriminatory speech or content.
2.4 Implementation Details
- 2.4.1 Front-end will be created using React.
- 2.4.2 Back-end will be created using Django.
- 2.4.3 Android will be created using Kotlin.