# 📖 INSTRUCTIONS (please don’t edit here) Consider the core requirements of a messaging app (e.g. discord, instagram) * a) Register, login and log out * b) See a list of channels * c) Create a channel, join a channel, invite someone else to a channel, and leave a channel * d) Within a channel, view all messages, view the members of the channel, and the details of the channel * e) Within a channel, send a message now, or send a message at a specified time in the future * f) Within a channel, edit, share between channels, remove, pin, unpin, react, or un-react to a message * g) View anyone's user profile, and modify one's profile (name, email, handle, and profile photo) * h) Search for messages based on a search string * i) Modify a user's admin permissions: (MEMBER, OWNER) * j) Send a message directly to a user (or group of users) via direct messaging (DM). **🟢 In groups, this is your task:** 1. Pick 1-2 of the above lines (e.g line a, f) Write a few user stories (role, goal, benefit) that encompasses all of the requirements for that line (should be around 3 user stories per line) 2. Write acceptance criteria for each user story. (rule based or scenario) 3. For example, if the requirement given to me by a client was “make them be able to add their friends”. Then we can convert that as: > User Story 1: **As a** user, **I want to be able to** add friends to my profile, **so that I can** more easily stay in touch with them. > **Acceptance criteria:** > * There should be a button called “send friend request” > * When the cursor hovers over the button it changes colour to green > * When the cursor hovers over the button, the cursor changes to a pointer hand icon > * After the button is clicked, it should now say “friend request sent” > * After the button is clicked, the button should become greyed out and unclickable > * If they’ve accepted my friend request then the button should say “friends ✓” *** # 📝 EDIT DOWN HERE *** ## AERO Line: c) Create a channel, join a channel, invite someone else to a channel, and leave a channel User Story 1: As a UNSW student, I want to be able to create a private channel so that I can communicate with my group members for a course that I am taking this term. **Acceptance Criteria:** 1. Click on the create channel button 2. A field to type the name of the channel 3. I should be able to choose if I want to make the channel public / private 4. I should be able to select the members User Story 2: As a UNSW Staff Member, I want to be able to create a public channel so that I can make annoucements regarding a course I am teaching. **Acceptance Criteria:** - The user can create a public channel - While creating the channel, the user should be able to input a name - Given that a public channel is created, the user should be able to add a series of others users as a part of its creation - The channel should be visible to all members as it is a public channel Use Case: Create a channel Goal in context: a user can create a public channel Scope: UNSW Treats Level: Primary Task Preconditions: user should be authenticate and authorised Success End Condition: user should be able to invite non-members to the channel Failed End Condition: channel does not exist, user is not a member of the channel, user cannot invite non-members to the channel Primary Actor: user Trigger: create channel button in a Team Success Scenario 1 *** ## BOOST Line: User Story 1: Acceptance Criteria: *** ## CRUNCHIE Line: User Story 1: Acceptance Criteria: *** ## DREAM Line: User Story 1: Acceptance Criteria: *** ## EGGS Line: User Story 1: Acceptance Criteria: ***