Features List - Pancia/UniBull GitHub Wiki

User Stories (Forum):

As a student:

  1. I want to be able to ask questions by posting to forums
    1. Create an input text field
    2. Create a post button
    3. On post button click, make a post Rest call to server and store question in DB appropriately
  2. I want to be able to reply to posts and answer questions
    1. Create a reply button
    2. Create a reply input field
    3. On reply click, make server call to add reply within forum post
  3. I want to avoid having duplicate classrooms
    1. Check if user inputted class is in DB
    2. if not in DB, create a class
    3. if in DB, don’t create a class and display appropriate message

As a professor:

  1. I want to be able to reply to posts and answer questions (highlighted as professor’s post)
    1. Create a reply button
    2. Create an input text field
    3. On reply button click, make a post Rest call to server and store reply in DB appropriately
  2. I want to be able to endorse posts as “good”
    1. Create button to endorse post
    2. On endorse post click, add footnote “endorsed by …”

As a user:

  1. I want to be able to browse the forum.
    1. On user login, give users access to the appropriate forum for their viewing pleasure :)
  2. I want to be able to edit or remove my posts
    1. Add edit button to change post content
    2. Add remove button to remove post
    3. make a post Rest call to server and remove/change content in DB appropriately
  3. I want to be able to flag content as inappropriate
    1. Add report button
    2. Minimize content if x amount of people flag as inappropriate
      • notify moderator/administrator so they can take appropriate action (delete, redeem, etc)
    3. make a post Rest call to server and store attributes in DB appropriately
  4. I don’t want to see inactive (not necessarily old) classrooms when searching
    1. Check for activity on a classroom
    2. Hide classroom from search if inactive
  5. I want to be able to view (not edit) old forums
    1. Keep old classrooms in DB
    2. Remove posting functionality from old classrooms
  6. I want to be able to tag posts as a certain category (discussion, homework, study guide)
    1. Add tag field to posts
    2. Design list of categories
    3. Add tag selection during process of creating forum post
  7. I want to be able to search posts by title/content/tags
    1. Add search bar
    2. Add syntax for searching by title/content/tags, eg:
      • “#tag1 #tag2” OR “tag:asdf tag:fdsa”
      • “$title” OR “title:asdf”
      • “content”
  8. I want to be able to star/save posts so I can view them later more easily
    1. Add star functionality to each post
    2. Save data to user information

User Stories (Resources):

As a user:

  1. I want to be able to upload notes/resources
    1. Add an upload document button
    2. When clicked, show window/dialog to choose a document
    3. On submit, do some validation/pre-processing
      • limit amount of resources user can upload to x amount per day
    4. If validation passes, send data to correct REST endpoint
  2. I want to be able to download/view resources
    1. For each resource, have it be a link
    2. When the link is clicked, ask for open or download
    3. If open, then open it the resource appropriately, eg:
      • pdf => open it in the browser
      • doc => download and open with default app
      • if not openable, ask for location where to save
    4. If download, prompt for location
  3. I want to be able to flag resources as inappropriate or irrelevant/non-useful
    1. Add flag button by each resource
    2. Keep UI/design similar to that of flagging a post
    3. See post flagging behavior for more detail
  4. I want to be able to view resources by category (homework/notes/other)
    1. Add header dividers for each category
    2. Change uploading so as to require the specifying of the category

User Stories (Calendar/Sidebar):

As a user:

  1. I want to be able to view upcoming events/due dates
    1. Create a calendar
    2. Query the DB to get all the user’s events
    3. Let calendar show events
  2. I want to be able to add items to the calendar (with approval by x amount of other users)
    1. Add capability to update calendar with events
    2. Post event to forum for approval
    3. Add approval capability to forum posts classified as calendar/agenda items
  3. I want to be able to view the calendar as a calendar or agenda
    1. Design separate views for events/due dates/etc
    2. Add button for switching between calendar or agenda (list) view
  4. I want to be able to have a personal calendar that differentiates from classroom specific calendars which I have complete control over
    1. Have a “My Calendar” link to personal calendar
    2. Have calendars specific to classrooms in sidebars
  5. I want to be able to add classroom calendar items to my personal calendar