Updated Feature List

Key features Extended features Features
    The service provider shall have a configuration view.
x   The service provider shall have a calendar view.
x   The configuration view and calendar view do not need to be separate.
x   The service provider shall be able to create free time slots.
x   The service provider shall be able to delete free time slots.
    The service provider shall be able to create free time slots for multiple customers per unique time slot (e.g. group time slots).
  x The service provider shall be able to update time slots.
x   The service provider shall be able to cancel booked time slots.
x   Upon log in, the service provider shall view the calendar starting on the first non-past time range containing booked time slots, or the current date’s time range if there are no booked time slots. A time range consists of one week.
  x The service provider may page back in time to view his/her past bookings.
x   The service provider may page forward in time across time ranges to view/create free/booked time slots.
    The service provider shall log in.
    The service provider shall be able to create/register and unregister user accounts.
  x A service provider shall be able to see the total training hours per week or overall with a user.
    A service provider shall have a way to enter search categories to allow customers to find him/her: name, location, service. A service provider may leave these blank.
    A service provider may select a private or a public state. In a private state, the service provider may be searched and viewed by users, but users may not register themselves with the service provider (which allows them to book time slots). In a public state, users may register themselves.
    A private service provider may view a list of registration requests from users.
     
x   The user shall have a calendar view.
x   A user shall be unable to select a non-free time slot booked by another user. Such time slots are invisible to the user.
x   A user shall be able to select any free time slot.
x   A user shall be able to book any free time slot.
x   Any free time slot selected by a user for booking may become non-free before booking if another user books it.
x   A user shall be unable to book any non-free time slot.
x   Either before, or as a result of, requesting to book, the user shall receive a notification for every time slot that is selected and which is no longer free, informing the user that booking will fail on each. [Optional] The notification may list the remaining selected timeslot(s) (if any), and ask the user if he/she still wishes to book them.
x   A user may book multiple timeslots.
  x A user may book multiple timeslots in a single booking event.
    A user shall have to log in.
x   Upon log in, the user shall view the calendar starting on the first time range containing booked time slots with the user, or the first time range containing free time slots if the user has no booked time slots. An applicable time range consists of one week.
  x The user may page back in time to view his/her past bookings.
x   The user may page forward in time across time ranges to view/select free time slots.
  x A user shall be able to see the total training hours per week or overall with a service provider. These features do not yet have a GUI sketch.
  x A user shall be able to select a service provider from a list of service providers with which the user has been registered. These features do not yet have a GUI sketch.
x   Each calendar viewed by the user is specific to the selected service provider.
    A user shall have a way to search for service providers by categories: name, location, service. These features do not have a GUI sketch.
    A nonblocked user may find and book with a “public” service provider. Other users may find a “private” service provider, and request to be made “trusted”; only “trusted” users may book with “private” service providers. These features do not have a GUI sketch.

GUI Sketches

Architecture

No modifications.

Use-cases

No modifications.

Updated Domain Model

Updated Domain Model

Class Diagram

Class diagram

Code documentation

Generated using YARD directly from the source code in the documentation branch in project repository.

HTML version.

Resources

No modifications.

Updated Activity Diagram

Updated Domain Model

Updated Actors

Service Provider

Runs business and schedules appointments with customers.

Customer

Uses services provided by the Service Provider through scheduled time slots in their calendar.