User Stories - OmegaOoh/ku-tangtee GitHub Wiki

User stories

User needs Acceptance criteria
As a student: I want to filter activities using my interested category so I can join my interested activities. Given user login and select the activity categories. When the user presses a filter or search button. Then show the activities that match the selected categories.
As a student: I want to search for specific activities that I want to join so I can join some important activities that may not have categories. Given the user login and type in the search bar. When the user presses enter or clicks the magnifying glass button. Then show the activity that matches with the name that is typed in the search bar.
As a student: I want to join my friend group so I can communicate with my friends. Given user login and on the home page. When a user clicks accept group invitation or click join the group. Then the user gets into the group chat.
As a student: I want to create my profile account so other people can see my profile and know who I am. Given user login and in profile editing page. When a user edits the profile, uploads the profile picture, and clicks save changes. Then the profile changed from the previous one.
As a student: I want to leave the activity when I do not want to do it anymore so I will not have to worry about that activity anymore. Given the user login and the activity page. When the user clicks the leave button. Then delete the data of that activity for the user.
As a student: I want to communicate with event organizers so I can ask for more activity information. Given the user login and the activity page. When the user clicks the help button. Then navigate the user to the page that he uses to chat to event organizers.
As a student: I want to send the images in group chat so I can promote the activities in the group. Given user login and in the group chat page. When the user clicks the + button or image button. Then let the user add images to send.
As a student: I want to invite my friends to join my activity so I can have the same interests as my friends. Given the user login and the activity page. When a user clicks on the sharing activity button and chooses a friend to send to. Then send an invitation to that friend.
As a student: I want to receive notifications when so I won't miss attending activities. Given users either login or do not log in. When event organizers send notifications. Then the user receives notifications for the activities.
As a student: I want to see my friend's interests so we can share interests. Given user login and in friend profile page. When a user clicks on a friend profile. Then show my friend interested categories.
As a student: I want to give some reasons when I have to be absent from some activities so I will not get marked or penalized. Given the user login and the activity page. When the user is absent from the activity, the event organizer flags him and clicks on the flag button. Then navigate to the page to write a message to event organizers.
As the university and faculty: I want to announce events and activities to students so my students can know about upcoming events and activities. Given user login as University or Faculty and in the activity creation page. When the user presses publish activity. Then publish the activity with details to students.
As the university and faculty: I want to have Event Organizers to manage and check attendance for students so I can do my work and not have to worry much about the events. Given user login as University or Faculty and in the activity group page. When clicking add the moderator button with the selected person. Then notice that person to approve to be event organizer.
As the university and faculty: I want to communicate with my faculty students in some ways so I can give some advice to my students. Given user login as University or Faculty and in advisor group chat. When students ask questions and you type back some answers. Then press the send button to send the advice.
As event organizers: I want to create events full of details such as description, date, and location so participants won't be confused. Given user login as Event Organizer. When the user gets into the activity editing page. Then display the options that can be edited.
As event organizers: I want to manage people to join the events so I can see who joins my activity and communicate with my participants. Given user login as Event Organizer and in a group chat page. When the user presses the member list button. Then shows a list of members for this event. When the user types messages and presses the send button. Then the messages to the participants.
As an event organizer: I want to check attendance for event participants so I can know who joins my activity and who does not join my activity. Given user login as Event Organizer and in an attendance check page. When the user presses the check button on a participant in the list. Then mark that person attended the activity.
As event organizers: I want to ask the absent participant if he has a reasonable cause to be absent so I can know his reason to be absent and if it is really important, I won't give him a penalty. Given user login as Event Organizer and in a private chat to an absent participant. When the user receives a reasonable reason and presses the flag button on the participant detail. Then unflag that person.
As event organizers: I want to send out notifications to notify event participants so participants won't miss my activity. Given user login as Event Organizer and in activity setting page. When the user sets the notification day such as 1 day before activity and then presses confirm. Then the system will automatically send notification to all participants when it is 1 day before activity.
As event organizers: I want to get feedback after the activity so that I can know how to improve the activity. Given user login as Event Organizer and in activity summary page. When participants send feedback to the activity. Then the system shows the summary result.
⚠️ **GitHub.com Fallback** ⚠️