Skip to content

Project Requirements

Voursstrreds edited this page Oct 19, 2021 · 29 revisions

Glossary

  • User: All people who use this app are users.

    • Guest: Non-registered user.
    • Registered User: User who is already registered .
  • Profile Page: A page that corresponds to a user and shows personal information of the user.

  • Interest: Interest of a user. Interests help users to filter events that they are interested in.

  • Skills: Skills of a user.

  • Event: A post in the app that is created by users and corresponding to a sports event in real life.

  • Game: A sports event that participants are competing each other. (e.g., football)

  • Post Creator: A user who created an event or equipment post.

  • Event Creator: A user who created an event.

  • Participant: User who participates in an event.

  • Applicant: User who applies for an event.

  • Badge System: The badge system is used for specifying events and members.

  • Profile: A page that includes user information.

  • Player: A registered user who participated in a game.

  • Sports Field: Location of a sports event.

  • Event Page: A page that corresponds to an event and shows details of the event.

  • Sports Field Page: A page that corresponds to sports field and shows details of the sports field.

  • Analytics: Activity about sports according to age, region and season.

  • Discussion: A page connected to posts that allows commenting and discussing about that post.

  • Comments and Answers: Tools that allows users to communicate and answer their questions.

  • Notification: A tool that notifies user about specified events.

1. Functional Requirements

1.1. User Requirements

    1.1.1. Sign Up

      1.1.1.1. Users shall register to be a registered user.
      1.1.1.2. Users shall specify their email, password and username while registering.
      1.1.1.3. Users shall accept the terms and conditions document to register.
      1.1.1.4. Users shall fill personal information form while registering.
      1.1.1.5. Users should select their interests and skills to get suggestions from the system.

    1.1.2. Sign In

      1.1.2.1. Registered users shall enter their email or username and password to sign in.

    1.1.3. Registered Users

      1.1.3.1. Registered users shall have a personal profile page.
      1.1.3.2. Registered users shall not be blocked by the user to view a user's profile page.
      1.1.3.3. User should be registered in order to write comments under posts.

    1.1.4. Search

      1.1.4.1 Registered users shall use the search feature to find users or posts.

    1.1.5. Post
      1.1.5.1 Event Post

        1.1.5.1.1 Registered users shall enter the values of the event to create an event post.
        1.1.5.1.2 Event creators shall specify the type of sports events, manage location and type of sports events.
        1.1.5.1.3 Event creators shall select the participants among the applicants.
        1.1.5.1.4 Event creators shall report game results along with analytics.
        1.1.5.1.5 Users shall indicate the type of sport and location in order to filter events.
        1.1.5.1.6 Registered users shall specify their interests and skills to be able to get event recommendations.

      1.1.5.2 Equipment Post

        1.1.5.2.1 Registered users shall enter the values of the equipment to create an equipment post.
        1.1.5.2.2 Registered users shall select the proper post and enter the contents of a comment to enter a comment.
        1.1.5.2.3 Users shall indicate the type of sport and location in order to filter equipments.
        1.1.5.2.4 Registered users shall specify their interests and skills to be able to get equipment recommendations.

    1.1.6. Notification

      1.1.6.1 Registered users shall select which notifications that they will see.
      1.1.6.2 Registered users shall enable or disable all or a subset of notifications.

1.2. System Requirements

    1.2.1 Sign Up

      1.2.1.1. System shall ask for username, email and password for regular signup.
      1.2.1.2. System shall send verification mail after regular signup.
      1.2.1.3. System shall redirect users to profile creation page immediately after signup.
      1.2.1.4. System shall not allow to sign up with same e-mail more than once at the same time.

    1.2.2 Sign In

      1.2.2.1. System shall allow users to sign in with email/username.
      1.2.2.2. System shall allow users to logout by clicking a button.

    1.2.3 User Types

      1.2.3.1. Banned User
      1.2.3.2. Regular User
      1.2.3.3. Administrator

    1.2.4 User Profile

      1.2.4.1. System shall ask user their interests and skills while creating profile
      1.2.4.2. Interests and skills shall be updated according to games registered to system by admins
      1.2.4.3. User profile shall display personal information, skills, badges, followers, followings and post history.
      1.2.4.4. System shall allow users to edit their profile page and password.
      1.2.4.5. System shall allow users to delete their profiles.

    1.2.5 Events

      1.2.5.1. System should recommend sports events to the users according to their interests.
      1.2.5.2. System shall send emails and push notifications when a registered event approaches.
      1.2.5.3. System shall allow event creators to specify event type, needed number of players, location of event, event time, skills of participants, age range of participants.
      1.2.5.4 Events with needed users registered shall be signed as full, so other people can filter them.
      1.2.5.5 System shall allow guests to view the events list and individual event pages, without participating in them.
      1.2.5.6 All users shall be allowed to list all events on the events page.
      1.2.5.7 Event pages shall display the event creator, event location, sports field, applicants, participants and spectators of the event.
      1.2.5.8 System shall allow all users to view the profile pages of the event creator, any of the applicants, participants and the spectators.
      1.2.5.9 System shall allow only registered users to apply to events.

    1.2.6 Searching
      1.2.6.1 Event Search

        1.2.6.1.1. Events shall be filtered by user according to event type, appropriate age range, location, date, hours, skill levels of attendees and availability (full or player needed).
        1.2.6.1.2. Events shall be sorted with respect to name, time and location (e.g. from closer events to far away ones).

      1.2.6.2 User Search

        1.2.6.2.1. Users shall be filtered according to their ages, skills and interested sports.
        1.2.6.2.2. Users shall be sorted with respect to their names and ages.

    1.2.7 Sport Equipment Post

      1.2.7.1. System shall recommend some websites to the users for their equipment needs.
      1.2.7.2. System shall allow filtering and sorting the equipment websites according to the name of the website and name of the sport.
      1.2.7.3. System shall allow equipment posts to be edited by their posters.

    1.2.8 Reporting

      1.2.8.1. System shall allow users to report some problems to event creators in the event.
      1.2.8.2. System shall allow users to report some bugs to administrators.
      1.2.8.3. System shall allow users to report some users for misusage.

    1.2.9 Discussions

      1.2.9.1. System shall allow users to discuss under event or equipment post by writing comments.
      1.2.9.2. System shall also allow users to answer/reply discussion comments.
      1.2.9.3. Users shall not be able to reply to the answers/replies, thus replies shall be the deepest level of conversations.

    1.2.10 Notifications

      1.2.10.1. System shall notify users when their player/spectator applications are approved/rejected.
      1.2.10.2. System shall notify users for any related event happening around if they share their locations.
      1.2.10.3. Users shall be notified if some people withdraw from an event after the event is signed as full. (Both registered users and users signed as want to attend but can’t register because of capacity)
      1.2.10.4. Users shall be notified if the event they applied/selected to be a player/spectator is delayed/cancelled.
      1.2.10.5. Users shall be notified when a user follows them.
      1.2.10.6. Users shall be notified when a user comments on the discussion page of an event they created.

    1.2.11 Badges

      1.2.11.1. There shall be badges that are given by the system after some milestones, that are given by the event creators at the end of the event and that are given by the users.
      1.2.11.2. There should be badges that indicate bad behavior.
      1.2.11.3 Only registered users shall be allowed to give badges to the creator of a post or to fellow players of an event.

    1.2.12 User Interactions

      1.2.12.1. System shall allow registered users to follow other users, so that they can be notified about the events created by the users they follow.
      1.2.12.2. System shall allow users to block other users.

    1.2.13 Analytics

      1.2.13.1. System shall ask for and store analytics for players, event creators and sports fields after events.
      1.2.13.2. System shall allow users to see the analytics for players, event creators and sports fields.

    2. Non-Functional Requirements

      2.1. Availability

        2.1.1. System shall be available as a web application for modern browsers such as Chrome and Firefox.
        2.1.2. System shall be available for Android based devices.
        2.1.3. English language shall be supported.

      2.2. Deployment

        2.2.1. System should be containerized using Docker.
        2.2.2. System should run on an Amazon EC2 server.

      2.3. Performance

        2.3.1. Response time for any request shall be below 5 seconds.

      2.4. Privacy

        2.4.1. All personal data shall be stored and processed according to KVKK and GDPR.
        2.4.2. Users shall accept the privacy policy when signing up to the system.
        2.4.3. Users shall be able to choose which of their personal data to be seen publicly.

      2.5. Security

        2.5.1. Passwords shall be at least 8 characters long and be a mixture of lowercase characters, uppercase characters and digits.
        2.5.2. Passwords shall be encrypted using SHA-256 before storing.
        2.5.3. Users shall verify their login information via email after 3 unsuccessful login attempts.
        2.5.4. All inputs from users shall be checked to prevent SQL injections.
        2.5.5. There shall be a password reset facility that sends a verification code via email or SMS.
        2.5.6. System should only allow predetermined known file types to be uploaded. (e.g. PNG and JPG for images)
        2.5.7. System should hide the passwords while typing on password bar.

      2.6. Standards
Clone this wiki locally