yyl / CalendarAppDesign

A design of calendar app on mobile phone.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CalendarAppDesign

A design of calendar app on mobile phone.

Requirements

  1. The user should be able to create, manage and check the events.
  2. The user should be notified by upcoming event.

Actors

  1. User: the person who uses the app.

Scenarios

newMeetingAnnouncedByBoss

Participating actors:

mike:User

Flow of events:

  • today when mike is at work, his boss, jack, announces a new meeting tomorrow 10 a.m.
  • to help himself remember the event, mike creates a new event with his calendar app. He inputs the date, time, location, when to notify and the name of the event, and then saves it.
  • the next day, at 9 a.m., mike's phone buzzes. When he pick up the phone, mike realizes the meeting is within one hour, so he starts preparing relevant materials.

InterviewRescheduled

Participating actors:

mike:User

Flow of events:

  • mike, who tries to land a job, receives a phone call from company x, saying that due to time conflicts, his interview with the company has been scheduled to another time, but the location is the same.
  • mike thanks for the update, and then decides to modify the event of this interview on his calendar app.
  • mike opens the app, selects the event, and modifies only the time and data, keeps other information unchanged, and then saves the event. The event has been updated.

Use cases

Use cases

createEvent

Participating actors

initialized by User

Flow of events

  • User requests to create a new event.
    • The app presents User with a form.
  • User specifies a name, time and date, location, whether enable notification, and if do when to notify, for the event. Then User saves the event.
    • The app notifies User the event has been created.
    • If User enables the notification function, when the time has come to the time User setup as the notification time, the app notifies User the event is coming up.

Entry condition

  • User must know necessary information of the event.

Exit condition

  • A new event exists.
  • User receives notification that the event has been created.
  • The event is available to be browsed.

editEvent

Participating actors

initialized by User

Flow of events

  • User requests to edit an existing event.
    • The app presents User with a form showing the information of the event.
  • User changes fields accordingly. Then User saves the event.
    • The app notifies User the event has been updated.
    • If User enables the notification function, when the time has come to the time User setup as the notification time, the app notifies User the event is coming up.

Entry condition

  • The event must exist.
  • User must know necessary information of the event.

Exit condition

  • The information of the event has been updated.
  • User receives notification.

checkEvent

Participating actors

initialized by User

Flow of events

  • User requests to check his/her events.
    • The app presents events as bullet lists for each day of the current month.
  • User selects one event.
    • The app presents the information of the event including xxxx.

Entry condition

  • The event must exist.

Exit condition

  • User knows his/her events now.

Class diagram

Class diagram

  • Follow MVC architecture style, because
    • There exist multiple views (Year, Month, Week, Day) for one single type of object (Calendar event)
    • The interaction of the object is fixed (create, edit, delete)
  • View is an abstract interface, which requires subclass to do the implementation

Sequence diagram (TODO:fix)

sq_createEvent

sq_shareEvent

Questions

  1. where should I put the function of notifying upcoming events?
  2. should the shareEvent include EmailApp, or provide its own sharing function?

About

A design of calendar app on mobile phone.