User Stories
Updated 1,119 Days AgoPublic

User Stories

The following user stories shall help outlining the application structure and explain how the different components contribute to the overall functionality of the application.

Rob logs in to the webmail to check for new messages

  1. He opens the webmail location in his browser
  2. He enters his username and password at the login prompt
  3. The main navigation shows a badge near the mail icon indicating 5 new messages
  4. Rob clicks the mail icon in the main navigation to open the mail view

Involved components and events:

  1. The shell renders the login form
  2. Upon submit, the shell authenticates through the JMAP adapter and activates the / route
  3. The shell emits the shell.session.authenticate event and the mail app fetches the number of unread messages from the server.
  4. The shell.ui activates the /mail route. the mail app renders the mail view and fetches the mailboxlist and the inbox messages from the JMAP data store.

Mary opens an email message for reading

  1. In the message list she clicks the new and yet unread message from Jane
  2. The message content is displayed in the preview pane on the right
  3. Next to the email sender name a green icon indicates that Jane is now online on Jabber
  4. After a few seconds, the clicked row in the message list looses the "unread" indicator

Involved components and events:

  1. The mail app activates the /mail/message/md2f58fbc8 route
  2. The mail app fetches the message from the JMAP store and emits the mail.model.message.load event. The jabber app compares the message headers (from, to, cc) with the presence information from the roster.
  3. The mail app renders the mail view and emit the mail.view.message.render event. The jabber app extends the message header view with presence indicators for sender and recipients.
  4. Once the message is shown for 5 seconds, the unread flag is removed from the message model which updates the list view. The changes are synchronized to the server through the JMAP data store.

Jane writes a holiday greetings email to her friends & family

  1. Jane clicks the "Compose" button
  2. In the "To" fields she starts typing the name of her mom
  3. A list of matching contacts from her address book pops up as suggestions
  4. She picks her mom from the list which is then added to the recipients list
  5. In order to not forget any of her friends, she opens the address book to select further recipients from the list while browsing through
  6. Jane enters the email subject into the according field
  7. She starts typing the message in the composition area
  8. Before sending the message, she runs the spell correction to find typos
  9. Jane clicks the "Send" button to finally send the message
  10. She opens the "Sent" folder to verify that the message has been send and stored

[Involved components to follow here]

Gregg receives an event invitation

  1. A notification bubble announces a new message arrived in the inbox
  2. Gregg clicks the Inbox folder to see the message list with a new unread message on top
  3. In the message list he clicks the new and yet unread message
  4. The message content is displayed in the preview pane on the right
  5. The message is detected to contain an iTip event invitation attachment and a box in the preview pane asks Gregg whether for RSVP (Accept, Maybe, Decline)
  6. Gregg clicks the Check Calendar button to see his calendar for the requested day
  7. Since he has no other events listed for that afternoon, he accepts the invitation
  8. The event is added to his personal calendar and a reply to the organizer is sent
  9. Notification bubbles confirm these actions

To be continued ...

Last Author
bruederli
Projects
None
Subscribers
vincent, Adityab, petersen