Skip to content

Use Cases

esraalinca edited this page Oct 5, 2016 · 14 revisions

##Summary
Use cases for our project are shown in this document. In many of the use cases, there are references to keywords that are defined for our project. You can refer to these keywords for better understanding of the use cases in our glossary.

##Use Case Diagram Use Case Diagram

##Use Cases

###1. Search a Topic
Actor(s): Guest or Registered User.

Goal: Searching a topic in the system.

Preconditions:

  • User is viewing the page and able to see the search bar.

Steps:

  • User selects either of basic or advanced search options.
  • If user selects basic search, he/she enters what he/she wants to search for and clicks search button.
  • If user selects advanced search, he/she enters what he/she wants to search for and also selects any of the options below
    • User may select where to search for (users, topics, comments).
    • User may select which one of video, image, document to be included in the returned topics.
    • User may select min and max ratings to search for topics.
    • User may check the logical expression checkbox in order to use AND, OR, NOT logical operators.
    • User may select a time interval in which to search for topics.
  • User clicks the search button.

Postconditions:

  • System returns topics that are related to the searched text according to title, tags and content.
  • System also returns the topics which are semantically related to the searched text.
  • If there is no topic that are related to this title, system returns an empty page which contains not found any result message.

###2. Getting Recommendations
Actor(s): Registered user

Goal: User gets recommendation from the system in order to find his preferred topics more easily

Preconditions:

  • User should have set topic preferences or should have viewed at least 5 different topics.

Steps:

  • User will see recommended topics in Recommended For You part in his/her homepage.

Postconditions:

  • Topics from recommendation part which the user is interested in will affect later reccomendations.

Constraints:

  • Recommendation shouldn’t have a limit. As user asks for more recommendations, the system shall generate more.

Comments:

  • Recommended for you box should show one recommendation at a time. User should be able to skip through them by clicking next and previous buttons.
  • Recommendation algorithm will choose posts with higher rating values among the related posts.

###3. Topic Creation
Actor(s): Teacher

Goal: Create a topic to share information and create awareness about the created topic.

Preconditions:

  • User must be logged in to the system.
  • User must have teacher privilege.

Steps:

  • Teacher presses the create topic button in homepage to go to “topic creation page”.
  • Teacher enters
    • header of the topic
    • short description of the topic
    • tags that describe the created topic according to Tagging use case
  • Teacher optionally may perform the actions specified in Teaching Collaboration use case.
  • Teacher enters the written content he/she wants to share in the text box.
  • Teacher can ask questions in the text box or directly start start teaching the topic
  • Teacher can add media content to his topic according to Media Content Sharing use case.
  • Teacher clicks the “create topic” button in this “topic creation page” to publish the topic.

Postconditions:

  • The topic will be added to the topic list in the system.
  • The topic will be editable by the creator of the topic and the system moderators.
  • The topic will be added to the list of topics created by this teacher. The teacher and the topic will be related by the system.
  • The topic will be visible by everyone using the system.
  • Users that follow the creator of the topic will get notified about the new topic according to their notification preferences.
  • The system will relate similar topics to this topic by according to semantic tagging algorithm.

###4. Edit Own Post
Actor(s): Teacher, student

Goal: To improve the content of a topic/comment

Preconditions:

  • User must be logged in.
  • User should be in the page where he/she created the topic/comment.
  • Created post must belong to the user.

Steps:

  • User clicks the edit post button at the bottom of his/her post.
  • The system goes to the page where user can edit his/her post.
  • User edits/deletes the content he/she shared including all written information and media content.
  • After the changes are done, user clicks Save button at the end of the edit page or presses Enter to save the changes.

Postconditions:

  • The content in the previous topic/comment will be replaced by the new content.

Constraints:

  • User cannot delete all the content in a post. To delete a post, see Delete own Post use case.

###5. Delete Own Post
Actor(s): Student, teacher

Goal: To delete a post the user doesn’t want to showcase anymore.

Preconditions:

  • User must be logged in.
  • User should be in the page where he/she created the topic/comment.
  • Created post must belong to the user.

Steps:

  • User clicks the delete button at the bottom of his/her post.
  • The system asks the user if he/she really wants to delete for confirmation.
  • In case of Yes, the system deletes the post.

Postconditions:

  • The post will be deleted forever and no user will have access to it.
  • The post will be removed from the posts lists of the user who created it.

Constraints:

  • The topics/comments with upvotes cannot be deleted.

Comments:

  • The reason for deletion constraint is that informative posts should not get deleted from the system.

###6. Post Removal
Actor(s): Moderators

Goal: Remove a post from the system if it has non-related, malicious or bad content.

Preconditions:

  • The post must be reported by at least one user.
  • Moderator should check the post and only if he/she finds it inappropriate, then the post may be deleted.

Steps:

  • Moderator clicks the delete button at the bottom of the post.
  • The system asks if he/she really wants to delete for confirmation.
  • In case of Yes, the system deletes the post.

Postconditions:

  • The post will be deleted forever and no user will have access to it.
  • The post will be removed from the posts lists of the user who created it.

Comments:

  • Moderators have the authorization to ban the creator of the post or send warnings to the creator of the post via e-mail.

###7. View a Post
Actor(s): Registered user, nonregistered user

Goal: View a post

Preconditions:

  • None

Steps:

  • Guest will search for a topic according to Search use case
  • Guest will view all the content of a topic

Postconditions:

  • None

###8. Tagging
Actor(s): Registered user, moderator

Goal: To add related tags to a topic so that it can be found by other users searching for similar topics

Preconditions:

  • User must be logged in
  • Only users that have edit access to a post can add/remove tags

Steps:

  • User will go to the Edit page of a post
  • User will click edit tags button in the Edit page
  • User clicks new tag and adds a tag or clicks remove tag and removes a selected tag
  • The system will try to match the given tags with the tags in the database. If some tags differ, the system will create new tags.

Postconditions:

  • The tag will be added to the post.

###9. Rating Users
Actor(s): Registered users

Goal: Rating other users

Preconditions:

  • User must be logged in.
  • User must be on the page that related what he or she wants rate.

Steps:

  • User goes to the profile page of the user he/she wants to rate.
  • User clicks rate user button.
  • User selects the rating from 1 to 5 in the pop-up box.
  • User writes the reasoning behind his rating in the description.
  • User clicks rate button to finish rating.

Postconditions:

  • Rated user's new rating will be calculated based on the entered rating by the
    rater user.

Constraints:

  • Rating user must himself/herself have an average user rating of 3.

###10. Rating Posts
Actor(s): Registered users

Goal: Rating other people posts

Preconditions:

  • User must be logged in.
  • User must be on the page that related what he or she wants rate.

Steps:

  • User goes to the page where the post he/she wants rate is in.
  • User clicks the up arrow or down arrow buttons to upvote or downvote the post.

Postconditions:

  • Rated post's new rating will be calculated based on the new upvote/downvote.

Constraints:

  • Rating user must himself/herself have a user rating of 3.

###11. Media Content Sharing
Actor(s): Student or teacher

Goal: Share images, videos and other media content to enrich the informativeness of a post

Preconditions:

  • User must be logged in
  • The post must belong to the user

Steps:

  • Users goes to page where his/her topic/comment is.
  • User clicks edit button at the end of the topic/comment.
  • In the edit page, user clicks one of add image, add video, add document buttons to share the media.
  • After the changes are done, the user clicks save button to save the changes made.

Postconditions:

  • Media is added to the post and can be seen by everyone using the system.

Constraints:

  • Video file size < 1 Gigabytes; format = .mpeg, .mp4, .avi
  • Image format = .jpeg, .bmp, .png, .gif
  • Document format = .pdf, .doc, .docx, .txt

###12. Add a Comment
Actor(s): Registered User

Goal: Adding a comment to a topic or comment

Preconditions:

  • User must be logged in.

Steps:

  • User finds the topic or comment he/she wants to comment on.
  • User clicks the reply button.
  • A text box appears where he/she can write his comment.
  • User can also add media to his/her comment according to Media Content Sharing use case.
  • User clicks save comment to save his/her comment.

Postconditions:

  • The comment will be visible by everyone using the system.
  • The comment will be saved to contributions page of the commenting user.

###13. Test Preparation
Actor(s): Teacher

Goal: Preparation of a test which will be solved by the students to test their knowledge in the topic

Preconditions:

  • User must be logged in
  • User must have at least one topic which he/she can prepare a test for.

Steps:

  • User clicks prepare a test button in his topic’s page.
  • A new test preparation page comes.
  • User can click add question to add new questions
    • Each question should have 5 options.
    • User should specify at least 2 of the options for a question.
    • Unspecified options will not be shown to the student.
  • User can add media content to his questions according to Media Content Sharing use case.
  • After adding a question, user can click remove question to remove a question.
  • After the test is ready, user presses create test button to create the test.

Postconditions:

  • The created test will be visible to everybody.
  • The created test will be shown under tests tab of the topic.

Constraints:

  • A test can have at most 25 questions.

###14. Solving a Test
Actor(s): Student

Goal: To solve a test in order to assess the knowledge in the topic

Preconditions:

  • User must be logged in

Steps:

  • User either solves a test prepared by a teacher about a specific topic or asks the system for a test according to Getting Automatic Test use case
  • Users chooses the options by clicking on checkboxes.
  • After test is completed, user presses submit test button
  • The result screen appears showing statistics about test such as
    • the number of correct answers
    • the number of wrong answers
    • each question is shown with the correct answer and the student answer

Postconditions:

  • Student's performance statistics will be updated with the results taken from this test

###15. Getting Automatic Test from System
Actor(s): Student

Goal: Getting automatic tests for self-assessment

Preconditions:

  • The user should be logged in

Steps:

  • User clicks take self test button in his/her profile page.
  • A pop-up screen appears asking for topics.
  • If user doesn’t select any topic, the system generates a test according to the users past activity.
  • After user clicks generate test in this pop-up screen, he/she is directed a test page where his/her test is ready to be solved.
  • The rest is according to Solving a Test use case.

Postconditions:

  • After test completion, according to the correct answer percentages with respect to topics, the system will the algorithms for generating automatic tests.

###16. Following
Actor(s): Registered users

Goal: Follow topics to get notifications about them and see what is going on

Preconditions:

  • The user should be logged in.

Steps:

  • User goes to a topic’s page.
  • User clicks the follow button to follow the topic.

Postconditions:

  • Followed user will be added to the following list of the following user.
  • Followed user will get a notification according to his/her notification preferences.

###17. Registration
Actor(s): Guest

Goal: Signing up to the system

Preconditions:

  • User must give an e-mail address and password

Steps:

  • User will click sign up button.
  • User will be directed to sign up page.
  • User will enter his e-mail address, password, desired username.
  • If the user wants to immediately become a teacher, he/she will have the option to choose so.
  • User will click sign up button.
  • An activation e-mail will be sent to the given e-mail address.
  • When the user clicks to the sent link, the account will be created.

Postconditions:

  • An account will be created for the user with the information provided by the user.

Constraints:

  • Given e-mail must not be in the account database.
  • Given password must be at least 5 characters, at most 20 characters.
  • If the user chooses to become a teacher, he/she will have a 5 post trial time. If his/her posts are received with downvotes, teacher privilege will be taken away from the user.

###18. Update the Profile
Actor(s): Registered User

Goal: Edit the profile, account information

Preconditions:

  • User must be logged in.

Steps:

  • User goes to his/her profile page.
  • User clicks the edit profile button.
  • User makes the desired changes on the profile.
  • User clicks the confirm changes button.

Postconditions:

  • System updates user’s profile and other users can see the updated profile.

###19. Login
Actor(s): Registered user

Goal: Login to the system

Preconditions:

  • User must have a verified account.

Steps:

  • User will enter username or e-mail address and password.
  • User presses the login button.

Postconditions:

  • User will sign-in the system.
  • User is headed to the homepage.

###20. Forgot My Password
Actor(s): Registered user

Goal: Create a new password over the previous one

Preconditions: None

Steps:

  • User clicks the Forgot my password button in the login page.
  • He/she is asked for his/her e-mail address.
  • An e-mail about further steps are sent to the given e-mail address.
  • After user clicks the link sent in the e-mail, he/she is asked for his/her new password, twice. If the new passwords match, the password of the user is updated in the database.

Postconditions:

  • Password of the user with the given e-mail is updated.

###21. Delete Account
Actor(s): Registered user

Goal: User deletes his own account

Preconditions: None

Steps:

  • User clicks edit in his profile page and then clicks delete account button.
  • He/she is asked for confirmation.
  • If answered yes, his/her account is deleted from the system.

Postconditions:

  • The account of the user is deleted from the database
  • All contributions of the user is deleted from the system
  • User is deleted from all lists he/she was in. (follower list, contributer list, …)

###22. Ban Account
Actor(s): Moderator

Goal: Suspending an account for a time which detected by act causing the ban.

Preconditions:

  • User must be logged in to the system.

Steps:

  • Administrator gets a report about a user.
  • If the report is accurate moderator bans the reported user's account.

Postconditions:

  • The user's account is deleted from the system. Steps for account deletion is carried out according to Account Deletion use case.

###23. View Contribution History
Actor(s): Student, teacher

Goal: To view previous collaborations in order to find them easily

Preconditions:

  • User must be logged in

Steps:

  • User goes to his/her own profile page.
  • Previous 5 contribution will be listed in profile page.
  • User can click view all button near contribution list to view all the contribution he/she made.

Postconditions:

  • None

Comments:

  • If user doesn’t have any contributions, list will be empty.

###24. Getting Notification
Actor(s): Registered user

Goal: To get notified about followed topics, users, replies, etc.

Preconditions:

  • User must have set the notification preset in his profile page to ON.

Steps:

  • On each event that user has chosen to get notified about, a notification with related information will be sent to user’s account.
  • Notifications later can be seen from notifications page of the website.
  • In case of mobile application, there will optionally be push-up notifications.

Postconditions:

  • None

###25. Change Language
Actor(s): Everyone visiting the page

Goal: To change the language of the system in order to understand what is going on.

Preconditions:

  • None

Steps:

  • In any page of the system, the user selects one of the language flags at the top right of the page to change the language.

Postconditions:

  • The language of the website will be changed.

Constraints:

  • Only English and Turkish languages will be supported.

Comments:

  • The system may remember the language preference of a nonregistered user from the IP address and show all the pages in that language. (Store only the ones that change the default language)
  • The system should remember the language preference registered user. (Store only the ones that change the default language)

###26. Save Content to Mobile App
Actor(s): Registered user

Goal: Save content in order to view them offline.

Preconditions:

  • User must be logged in.
  • User must be in the mobile platform.

Steps:

  • User will click the make available offline button in a topic page in order to view that topic in offline mode.

Postconditions:

  • The topic and all its media will be stored in user’s mobile device.

Constraints:

  • Only topics can be saved. Specific parts of a topic cannot be saved.
  • All saved material must be encrypted.

###27. Setting Topic Preferences
Actor(s): Registered user

Goal: Choosing topics that the user is interested in to get more related recommendations

Preconditions:

  • Registered user must be logged in.

Steps:

  • User clicks the manage topic preferences in his profile page.
  • To add a preference,
    • User searches for a specific topic in the search block.
    • User selects topics from the search results and adds them.
  • To remove a preference,
    • User selects the preferences from the list of current preferences.
    • User clicks remove button to remove the selected preferences.

Postconditions:

  • User’s topic preferences must be updated according to the given input.

Constraints:

  • User may only select topics from the search results. Arbitrary topics may not be added.

Home


Tutorials


Meetings


Customer Meetings


User Stories and Requirements


Project Design


Project Testing


Initial Plan


Manuals


###Milestones


###Peer Reviews


Members


Clone this wiki locally