---
# System prepended metadata

title: Tut 09 - User Stories

---

Consider the core requirements of **UNSW Treats** (like Microsoft Teams, but for UNSW):
Ability to:

* Register, login and log out
* See a list of channels
* Create a channel, join a channel, invite someone else to a channel, and leave a channel
* Within a channel, view all messages, view the members of the channel, and the details of the channel
* Within a channel, send a message now, or send a message at a specified time in the future
* Within a channel, edit, share between channels, remove, pin, unpin, react, or un-react to a message
* View anyone's user profile, and modify one's profile (name, email, handle, and profile photo)
* Search for messages based on a search string
* Modify a user's admin permissions: (MEMBER, OWNER)
* Send a message directly to a user (or group of users) via direct messaging (DM).

Pick **one** of the above and write a series of user stories that encompass each requirement:
1. Discuss as a class the potential target audience, and use this as your type of user.
1. Write acceptance criteria for each story and discuss when to use Scenario-based and Rule-based acceptance criteria.

**AERO** ✈️
> []
```
*** View anyone's user profile, and modify one's profile (name, email, handle, and profile photo)**

As a User, I want to be able to click into anyone's profile and see their name, email, handle and profile photo and be able to modify my own parameters, so that I am able to idenitify myself correctly within the channel. 

When messaging other members of my team, I want to be able to personalise my profile details so other users can identify me quickly and accurately.

The system should allow me and others to change my profile picture, name, email and handle that will be visible to each other.😌🫥

When @Jonathan uses this app, he would like to be able to see other members details quickly and be able to contact them through their preferred email address.

Acceptance criteria:
- The condition that must be satisifed in order for this process to work is that the user must be logged in and in the appropriate channel such that they have the permissions to view someone's profile. 
- Implement a specific page with all relevant information that is simple and easy to use. 
- An input box for each element where the user can type in their information. 
```

**BOOST**
```
Login
- As a registered user, I want to type in my username and password to log into my personal account.

- As an unregistered user, I want to get the option to register

- As a registered user, I want a quick login using a QR code, and through multiple devices

- As a user, I want the option to use 2-Factor Auth when logging in

- As a registered user and when login is validated, I want an extra security through personal questions, out of 3 options.

Acceptance Criteria:
- Intuitive input location
- Multiple devices are registered under the user
- There are devices that is already logged in when starting or reloading
```

**CRUNCHIE**
```
Send a message directly to a user (or group of users) via direct messaging (DM)
User Stories:
As a logged in user ,I want to send message directly to my friends,  sothat the program need to take the contents of message and send it to target user correctly.

As a logged in user, I want to send messages so that I can communicate with others.

Given a logged in user, they should have access to a messaging tab where there are spaces to input person they want to send message to and message. When the 'send' button is pressed, the message will be delivered, and shown on a chat log
```


**DREAM**
```
Search for messages based on a search string
As a <role>, I want to <goal>, to recieve <benefit>.

User Stories:
- As a user, I want to click into the searchbox, to start typing my search string.
- As a user, I want to start typing a search string, and have suggestions show up
  to pick the correct message.
- As a user, I want to be able to add a filter for users, to narrow the search content
  to specific users.
- As a user, I want to be able to add a filter for channels, to narrow the search
  content to specific channels.
- As a user, I want to be able to add a filter for message tags, to narrow the
  search content to specific messages that have the tag.

Acceptance Criteria:
The search functionality must be easy to find
Additional criteria must be easy to access for more refined searches
- There is a search button
- Search starts once user clicks the search button
- Search is performed on user names and messages once user starts typing
- Search options appear beneath search bar as user types
```

**EGGS**
```
Direct message
As a logged in user I would want to send a message to somebody or a group of people. I want the messages to encompass a variety of media forms and the capacity to express myself through them. 
As a logged in user I want to view all messages directed towards me by other users.
```
