Requirements - bounswe/bounswe2015group4 GitHub Wiki

Summary

Our project is about creating a social network for people in Bogazici University CmpE department. It will be a closed system in which people can create their own profile pages and can share their interest topics. Users will also be able to create interest groups and events. There will be an android application and a website for this social network project.

Background

The application will be only for people who are somehow related to Bogazici University Computer Engineering Department. Users will register into the system with their roles in the department which are undergraduate, graduate, alumni, faculty member, teaching assistant, research assistant and support staff.

The main goal is to enable members to contact each other in an easier and faster way. Therefore, there will be profile pages of members, events, interest groups, content creating and sharing and such other properties.

Privacy will be important. A member will be able to follow another member if she/he allows. Almost any item will have option for privacy. People will choose to whom they want to share.

Glossary

User: Anyone who enters the website or uses the android application.

Group: A community of people who share a common interest.

Member: The user who registered into the system with his role in the department.

Event: A real-life event like an upcoming marathon or a meeting.

Content: A picture, a book, a film, an article... Any such thing which can be specified in the system.

Tagging: Some keywords for the shared items for others to be able to find the item.

Notification: A service to notice members about what's happening.

Administrator: Person who manages the system, takes care of problems occur in system with his/her high access permition to the system content.

Moderator: Person who manages an interest group or an event independent of any group, and takes care of problems occured in that group / event.

Requirements

  • 1.Functional Requirements

    • 1.1 Users
      • 1.1.1 New user shall sign up by providing their user name, email address and password to the system.
        • 1.1.1.1 User shall be able to request system to reset his/her password.
        • 1.1.1.2 User shall be able to change his/her password.
      • 1.1.2 User shall log in to the system by using their user name and password
      • 1.1.3 User shall have a profile page that she/he can share his or her personal information, interests etc.
      • 1.1.4 User shall be able to follow and unfollow another user without needing any permission.
      • 1.1.5 User shall be able to block another user, then the blocked one cannot see his/her profile.
      • 1.1.6 Through tags, users shall be able to provide semantic relations.
      • 1.1.8 System administrator shall be able to kick any person out of the system either s/he is reported or not.
      • 1.1.9 User shall be able to report a content if s/he finds that content inappropriate/disturbing.
      • 1.1.10 User shall be able to leave a group or an event.
    • 1.2 Groups
      • 1.2.1 User shall be able to open a group about an interest that s/he is interested in.
      • 1.2.2 User shall be able to invite other users to a group if s/he is has the privileges of it.
      • 1.2.3 User shall be able to set privacy of the group s/he created, or if s/he is a moderator of that group.
      • 1.2.4 User shall be able to delete a group s/he created.
      • 1.2.5 A group member shall be able to share and then edit a content in that group like a photo, an article, a link etc.
      • 1.2.6 Group moderator shall be able to edit or delete any content in the group.
      • 1.2.7 A group member shall comment about a content shared in that group.
      • 1.2.8 User shall be able to report a group if s/he finds that group inappropriate/disturbing.
      • 1.2.9 Groups shall send notifications to its members, when there is a new content available.
      • 1.2.10 Privacy settings section should be designed.
      • 1.2.10.1 Groups shall have option to be visible only to group members.
      • 1.2.10.2 Groups shall have option to be only reachable but not visible to outsiders.
      • 1.2.11 Requests for a group are sent to the moderator of the group.
      • 1.2.12 Group/event moderator shall be able to kick any person out of the group either s/he is reported or not.
      • 1.2.13 User shall be able to unsubscribe from notifications from a group or event if s/he wishes.
    • 1.3 Events
      • 1.3.1 User shall be able to create an event.
        • 1.3.1.1 User shall be able to invite other users to an event.
        • 1.3.1.2 User shall be able to set privacy of the event s/he created, or if s/he is a moderator of that event.
        • 1.3.1.3 User shall be able to delete an event s/he created.
      • 1.3.2 Users shall be able to provide description of an event.
      • 1.3.3 Users shall be able to specify date and place of an event.
      • 1.3.4 Users shall be able to comment and share content to events
      • 1.3.5 Event pages shall show which users are participating to event.
      • 1.3.6 Events shall send notifications to participating users, when there is an update to event
      • 1.3.7 User shall be able to report an event if s/he finds that content offensive.
    • 1.4 Topics
      • 1.4.1 Topics shall be any item which are shared by users.
      • 1.4.2 Topics in a group shall be related to the interest subject, there will be a report option for this.
    • 1.5 Searching and Tagging
      • 1.5.1 Searching and tagging system shall provide content as many as possible.
      • 1.5.2 Searching and tagging system shall provide semantic tagging.
      • 1.5.2.1 User shall tag the content s/he share.
      • 1.5.2.2 User shall be able to search content by typing tags.
        • 1.5.2.2.1 User shall be able to use an already existing tag or can create a new tag.
        • 1.5.2.2.2 User shall be able to add a tag to an existing content if it is permitted, but not anonymously.
      • 1.5.3 Searching and tagging system shall provide semantic search.
        • 1.5.3.1 For the initial empty system, there shall be used a prepared database which stores many relations between many subjects like MIT's database for this purpose.
        • 1.5.3.2 As the users provide new tags, this database shall create new relations from these tags and store them.
        • 1.5.3.3 Semantic search shall also return contents with semantically related tags.
    • 1.6 Recommendations
      • 1.6.1 There shall be an algorithm running to score groups and events, then to choose best ones to recommend.
      • 1.6.2 The system shall recommend new groups and events to the user via analyzing user's current profile and by filtering through an algorithm.
    • 1.7 Notifications
      • 1.7.1 Notifications shall contain short description about its source.
      • 1.7.2 Notifications shall contain an information about, why it has been created.
    • 1.8 Home Page
      • 1.8.1 Info about user’s own groups and events shall be shown.
      • 1.8.2 Info about other users’ activities which are followed by the user shall be shown.
      • 1.8.3 Recommendations about groups and events shall be shown
      • 1.8.4 A calendar view option shall be shown.
        • 1.8.4.1 Calendar shall show the upcoming events.
    • 1.9 Feedback
      • 1.9.1 End-user feedback shall be concerned by the project team to see needs and fallacies.
      • 1.9.2 Reports shall be received by the administrator of the system.
  • 2. Non- Functional Requirements

    • 2.1 Availability
      • 2.1.1 Maximum time to recover in case of failure will be 36 hours.
    • 2.1.2 There shall be a web-based and an android application.
    • 2.1.3 The language shall be English.
    • 2.2 Security and Reliability
      • 2.2.1 System shall secure user’s personal info. Unauthorized accesses shall not be allowed.
      • 2.2.2 Backup copies for the all data should be stored in a different place.
    • 2.3 Usability
      • 2.3.1 Interface shall not be complicated, it shall be self-explanatory.
      • 2.3.2 Help and ask option shall be done.
      • 2.3.3 System response time shall be stabilized.
      • 2.3.4 Design of the system shall be user friendly.