Skip to content

Requirements

Bilal Aytekin edited this page Dec 4, 2022 · 102 revisions

Glossary

  • Account Activation: Confirmation of an account registration.
  • Achievements: A record of completed sections and/or learning spaces of a user.
  • Activities: A record of operations done by a user (e.g. Taken notes, saved notes, following a user, joining in a learning space, etc.).
  • Admin User: The type of user, who is responsible for the moderation of the system.
  • Annotation: Resource referring to some other resource.
  • Badge: The thing users gain when they complete some topics of learning spaces, or achieve the basic system milestones.
  • Banning a user: Taking away a user's access to the platform.
  • Bio: “About me” section of a user.
  • Topic: A part of a learning space that consists of learning space resources, if a user completes a topic, that has a badge they will receive a badge
  • Comment: A text typed down by users when they reply, mention or thread messages.
  • Communication channel: A platform users can use to get in touch.
  • Learning Space: Structured educational resource that is uploaded by lecturers.
  • Learning Space Resource: A part of a learning space that consists of a part of the learning space material. It can be only text or supported with audiovisual media.
  • Discussion: A forum-like post inside learning spaces that is used to ask questions or exchange information.
  • Event: Planned organization in which the attendees are users of this platform.
  • Feedback: A text consisting of thoughts of joined learners of a learning space about that learning space.
  • Geolocation: The actual location(latitude and longitude) of the user.
  • Interests: A user's preferred topics and learning spaces.
  • Interface: The graphical platform provided by this application to supply users with ease of use.
  • Knowledge: A user's previous experience consisting of given learning spaces if the user is a lecturer and completed learning spaces if the user is learner.
  • Learner: The type of user that is joined in a learning space.
  • Lecturer: Users that can create learning spaces and have admin privileges on the learning spaces they created, such as uploading resources, creating events and creating polls.
  • Note Taking: The act of recording information.
  • Meeting: An assembly of users, created by users.
  • Organizer: The creator of an event.
  • Poll: A collection of opinions on a chosen matter, taken by learners, created and given by lecturers.
  • Popularity: A degree of positive and negative opinions on a lecturer, a learning space, or other resource in the application.
  • Prerequisite Learning space: A learning space that is required to take another learning space.
  • Profile Page: A page of a user giving information about that user.
  • Public Profile: A profile page that every user of the application can view.
  • Private Profile: A profile page that is only visible to that user's followers.
  • Rating: A point from 1 to 5, of a learning space or a user that has created learning spaces.
  • Recommendation: The component of the application that can provide suggestions according to a user's past activities, interests, and followings.
  • Reputation: Degree of a lecturer's past achievements, experience and influence on others.
  • Users: People who are registered to the application and using it.
  • Semantic resources: Resources that have correlation between their meaning.
  • Tag: Identification labels of topics and learning spaces.
  • Topic: A label that describes which category a learning space belongs to.

Functional Requirements

User Requirements

1.1 Account Features
  • 1.1.1 Registration
    • 1.1.1.1. Users shall be able to register using a valid and unique email address, a username, and a password as defined in the security section.
      • 1.1.1.1.1. Users who are registered by providing their emails shall confirm their accounts via the link sent in the confirmation email.
    • 1.1.1.2. Users shall be able to register using their Google account.
  • 1.1.2 Log In
    • 1.1.2.1. Users shall be able to log into their account using their email and password combination.
    • 1.1.2.2. Users shall be able to log into their account using their Google account (if they have previously completed 1.1.1.2.).
    • 1.1.2.3. If a user enters their password wrong three times while logging in their password will be invalidated. They will receive a warning email containing a link to reset their password.
    • 1.1.2.4. Users shall be able to reset their password via email verification.
  • 1.1.3 Log Out
    • 1.1.3.1 Users shall be able to log out of their account.
1.2. Profile
  • 1.2.1. Users shall have their own profiles.
  • 1.2.2. Users shall be able to use the features of their profile page. (described in 2.1.2.)
1.3. User Actions
  • 1.3.1. Users shall be able to block other users. (described in 3.3.6)
    • 1.3.1.1 Blocked users shall not be able to view the blocking user’s profile, join to their learning spaces, and comment on discussion posts they have created.
  • 1.3.2. Users shall be able to follow other users. (described in 2.1.3)
  • 1.3.3. Users shall be able to use the discussion channel of the learning spaces they joined in. (described in 2.2.)
    • 1.3.3.1. Users shall be able to open a discussion post to ask questions.
    • 1.3.3.2. Users shall be able to make a comment to an existing discussion post.
  • 1.3.4. Users shall be able to use note taking features.
    • 1.3.4.1. Users shall be able to create notes.
    • 1.3.4.2. Users shall be able to save notes in their profile page.
    • 1.3.4.3. Users shall be able to view their saved notes on their profile page.
      • 1.3.4.3.1. Users should be able to sort notes according to date.
      • 1.3.4.3.2. Users should be able to filter notes by learning space name.
    • 1.3.4.4. Users shall be able to delete or edit their notes.
    • 1.3.4.5. Users shall be able to connect, annotate and tag notes.
    • 1.3.4.6. Users shall be able to share their notes with other users.
  • 1.3.5. Users shall be able to use the search engine (described in 2.5.)
  • 1.3.6. Users shall be able to use the annotation features. (described in 2.6.)
    • 1.3.6.1. User shall select a portion of the text to annotate.
    • 1.3.6.2. User should be able to turn on and off annotation visibility.
  • 1.3.7. Users shall be able to join to any learning space they want to.
  • 1.3.8. Users shall be able to open a learning space in any subject and they don't need to provide any document regarding their experience on the topic.
    • 1.3.8.1. Lecturers shall be able to create polls, allowed to be filled by the students joined in their learning space. The anonymity and/or the obligation of the poll shall be decided by the lecturer and declared to the students.
    • 1.3.8.5. Users shall be able to create topics and resources for their learning space and any other learning space as well.
    • 1.3.8.6. Users shall be able to delete topics and resources under their learning space.
    • 1.3.8.7. Users shall be able to delete topics and resources they created for any learning space.
  • 1.3.9. Users shall be able to delete their accounts.
  • 1.3.10. Users shall be able to change their password.
  • 1.3.11. Users shall be able to join the attendance list of the event that they would like to participate, for their joined classes, in the case that quota is not full.
  • 1.3.12. Users shall be able to give feedback, consisting of a compulsory rating point between one to five and an optional text explaining their thoughts, to the classes they have joined in.
  • 1.3.13. Users shall be able to comment on the learning space topics, to discuss about the resource.
  • 1.3.14. Guest users shall be able to view available learning spaces on the site and their details like title, description and rating.
  • 1.3.15. Event creation
    • 1.3.15.1. Learners shall be able to organize and schedule events.
    • 1.3.15.2. The scope of an event depends on the organizer's initiative. It can be face-to-face or online.
    • 1.3.15.3. The organizer shall have the right to edit details (date/time, title, description, location, quota) of the event.
    • 1.3.15.4. The organizer shall have the right to cancel the event.
1.4. Admin User
  • 1.4.1. Admins shall be able to ban users for inappropriate behaviors.
  • 1.4.2. Admins shall be able to delete inappropriate comments and articles.

System Requirements

2.1. Profile Page
  • 2.1.1. The system shall keep a profile page for every user registered that can also be edited by the user.

  • 2.1.2. The profile page shall have the following sections:

    • 2.1.2.1. Bio
      • 2.1.2.1.1. The system shall keep a bio section in the profile page written by the user.
    • 2.1.2.2. Achievements
      • 2.1.2.2.1. The system shall keep an achievement section for each user.
      • 2.1.2.2.2. The system shall keep a predefined list of badges that can be earned by a user.
      • 2.1.2.2.3. Users will gain a badge when one the following occurs: a learner completes a learning space, a learner completes one topic of the learning space, a lecturer opens a new learning space, a lecturer arranges an event, and lecturer creates a quiz.
      • 2.1.2.2.4. The system shall allow a lecturer to add more badges to the badge list of the learning space they created.
      • 2.1.2.2.5. Achievement page shall be updated when a user gains a badge.
    • 2.1.2.3. Interests
      • 2.1.2.3.1. The system shall keep an interests section in the profile page.
      • 2.1.2.3.2. The system shall keep a predefined list for the possible interests a user may have.
        • 2.1.2.3.2.1. The system shall promote users to choose from this list to define their interests.
        • 2.1.2.3.2.2. Interests section shall be created based on the selections of a user from this list.
    • 2.1.2.4. Activities
      • 2.1.2.4.1. The system shall keep an activities section for each user.
      • 2.1.2.4.2. Activities page shall be visible to the users that follow the owner of the profile page.
      • 2.1.2.4.3. The system shall update the activities page when at least one of the following happens: a learner joins a meeting, a learner completes a learning space or a section of it, a learner joins in a new learning space or a learner drops a learning space.
      • 2.1.2.4.4. The system shall update the activities page when at least one of the following happens: if a user is also a lecturer in a learning space, the lecturer arranges a meeting or joins one, the lecturer opens a new learning space or the lecturer opens a quiz for one learning space.
    • 2.1.2.5. Monitoring
      • 2.1.2.5.1. The system shall keep track of the learner process in a learning space showing the following features: how many sections of a learning space completed so far, the remaining sections of the learning space and how many quizzes the learner have attended so far for each learning space.
      • 2.1.2.5.2. The system shall keep a monitoring page section for every learning space that the learner takes.
      • 2.1.2.5.3. If a learner drops a learning space, their monitoring record shall be deleted.
      • 2.1.2.5.4. If a user is also a lecturer, the following statistics shall be kept by the system about each learning space that the user gives: how many users have joined in the learning space, how many users have completed the learning space, how many users have dropped the learning space and how many users have attended which quizzes of a learning space.
    • 2.1.2.6. Knowledge
      • 2.1.2.6.1. The system shall keep a knowledge section in the profile page.
      • 2.1.2.6.2. The system shall keep a predefined list for the possible knowledge a user may have.
        • 2.1.2.6.2.1. The system shall promote users to choose from this list to define their knowledge.
        • 2.1.2.6.2.2. Knowledge page shall be created based on the selections of a user from this list.
    • 2.1.2.7. Rating
      • 2.1.2.7.1. The system shall keep a rating point between one to five for each user that is a lecturer.
        • 2.1.2.7.1.2. System shall keep the total number of ratings that are given to all learning spaces of the lecturer by the users. The rating point shall be the average of these ratings.
    • 2.1.2.8. Notes
      • 2.1.2.8.1. The system shall keep a notes section in the profile page.
      • 2.1.2.8.2. System shall keep all the notes that user has taken during any coure that user has joined to.
      • 2.1.2.8.3. The system shall categorize notes according to learning spaces that they were taken in.
  • 2.1.3. Following

    • 2.1.3.1. The system shall keep records of user profiles that are followed by the user.
    • 2.1.3.2. The system shall allow a follower of a user to see the following features of a profile: achievements, monitoring, interests, knowledge, bio ,notes ,annotations and activities.
  • 2.1.4. Privacy

    • 2.1.4.1. Users shall be able to change their privacy settings. A user shall have a public or a private profile. (described in 3.3.6.)
2.2. Communication Channel
  • 2.2.1. The system shall provide an interface such that users can ask and answer questions.
  • 2.2.2. The system shall provide a discussion section for any type of user inside a learning space.
    • 2.2.2.1. The system should support replying, mentioning and threaded messages to create a comment.
  • 2.2.3. The system should support sharing resources and files.
2.3. Note Taking
  • 2.3.1 The system shall provide a notes section in profile.
  • 2.3.2 The system shall support viewing notes of public and followed users on their profiles. Similarly notes reached by shared links should be visible if only the sharing end is public or followed.
  • 2.3.3 The system shall provide registered learners the ability to connect, annotate and tag notes.
2.4. Recommendations
  • 2.4.1. The system shall provide a list of recommended learning spaces to learners.
    • 2.4.1.1 The learning spaces in the list shall either have semantically similar names to the learning spaces that the learner has completed previously or have tags that match with the learner's interests.
2.5. Search Engine
  • 2.5.1. For any search, the result shall be broadscale in the sense that the results for any search should include those items that would be returned for another search with nearly synonymous keywords.
  • 2.5.2. Learning spaces shall be searched by entering keywords.
  • 2.5.3. The search results for learning spaces should adapt to the user, i.e. the default ranking of the results should reflect the user's behavior on the website.
    • 2.5.3.1. The learning spaces that are similar to the user's previous learning spaces should be ranked higher than other learning spaces.
    • 2.5.3.2. The learning spaces that are about a topic in which the user has shown interest should be ranked higher than other learning spaces.
    • 2.5.3.3. The learning spaces that are similar to those that are taken by the users that the user follows should be ranked higher than other learning spaces.
  • 2.5.4. The title and the first post of discussions in the communication channel shall be searched by entering keywords. Those results shall be ranked according to date.
  • 2.5.5. The notes belonging to a user shall be searchable.
  • 2.5.6. It shall be possible to sort the results from newest to oldest or oldest to newest.
  • 2.5.7. The system shall provide filtering of search results.
    • 2.5.7.1. The system shall provide filtering on the learning space results according to the availability of in-person meetings.
    • 2.5.7.2. The system shall provide filtering on the discussion channel search results according to topic.
    • 2.5.7.3. The system shall provide filtering on the results according to date.
2.6. Annotation
  • 2.6.1. The system shall support annotating with text, images and URI.
    • 2.6.1.1. The system shall support external links in the case that users provide URI.
  • 2.6.2. The system shall support links that relate to semantic resources about the resource.
  • 2.6.3. The system shall provide a mechanism such that annotation can be applied to any note or learning space resource.
  • 2.6.4. The system shall highlight annotated text portions to emphasize annotation.
2.7. Notifications
  • 2.7.1. The system shall provide in-app and push notifications.
  • 2.6.2. The system shall send notifications to the users if any of the following happens: a learning space they have created has a new user joined, an event is created and/or cancelled in a learning space they are joined in, another users follows or requests to follow them, and a user they have sent following request accepts their request.

Non-Functional Requirements

3.1. Accessibility and Availability
  • 3.1.1. The platform shall be accessed via both a native Android application and a web application.
    • 3.1.1.1 The web application of the platform shall support modern browsers (Chrome, Firefox, Safari, Opera, Edge).
    • 3.1.1.2 The web application of the platform should be responsive.
  • 3.1.2. The platform language shall be English.
  • 3.1.3 The platform should support UTF-8 character encoding.
3.2. Security
  • 3.2.1. Emails shall be valid and unique.
  • 3.2.2. Passwords should be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.
  • 3.2.3. The system shall encrypt passwords with the SHA-256 algorithm using a randomly generated salt. Passwords' hashes and their respective salts shall be stored in the database.
  • 3.2.4. Users shall not be able to perform actions that are not in the scope of their roles.
    • 3.2.4.1 Users shall not be able to access or modify the data of other users.
    • 3.2.4.2. API endpoints shall be protected with access tokens.
      • 3.2.4.2.1. New access tokens shall be generated in exchange for either user credentials or an unexpired refresh token.
  • 3.2.5. Some actions, such as account activation or password change, should be allowed only via email confirmation.
  • 3.2.6. The platform shall use the HTTPS Protocol.
  • 3.2.7. All input provided by a user should be validated in order to mitigate attacks like SQL injection.
3.3. Privacy
  • 3.3.1. The platform shall comply with the rules specified by KVKK and GDPR.
  • 3.3.2. Users shall agree to the Terms of Service and Privacy Policy while registering.
  • 3.3.3. Processing personal data outside the purpose of collection shall be prohibited.
  • 3.3.4. A user's personal data shall be deleted as soon as it fulfills its purpose for collection.
  • 3.3.5. If personal data is to be used, the user shall be asked for their consent clearly.
  • 3.3.6. The system shall have two options for the visibility setting of a user profile:
    • 3.3.6.1. Public Profile: The system shall allow other users to see a user's profile if the user opts to choose the public profile option.
    • 3.3.6.2. Private Profile: The system shall not allow other non-follower users to see a user's profile if the user opts to choose the private profile.
3.4. Performance and Reliability
  • 3.4.1. The platform shall respond to any request in at most 5 seconds.
  • 3.4.2. The platform shall support at least 100 simultaneous user actions.
  • 3.4.3. The platform shall support at least 10000 user accounts.
  • 3.4.4. Database backup should be generated each week.
  • 3.4.5. In case of failure, the platform should be back online in at most 2 hours.
  • 3.4.6. The platform should have an uptime of at least 99%.
3.5. Standards

Project

Team Members

Communication

Research

Meeting Notes

451

Group Meetings:

Backend Team Meetings:

Frontend Team Meetings:

Mobile Team Meetings:

352

Templates

Personal Effort

451

352

Individual Reports

Practice App

Clone this wiki locally