Faces Album Management

Introduction
NOTE: Albums have been called Study Sets or - technically - Bundles before. A small glossary for the used terms can be found under Miscellaneous. Please enter all comments concerning the use cases on the discussion page.

As the current state of the spec focuses on a new release, earlier states of the spec can be found in the history of this page:
 * The spec for R2
 * The spec for R3

UC_FAC_AM_01 Create album
Status/Schedule
 * Status: implemented
 * Schedule: R2

Motivation
 * The user wants to create an album to save his own selection out of the Faces collection.

Triggers
 * This use case can be included by the use cases
 * UC_FAC_AM_12 Copy album content

Steps
 * 1) The user chooses to create a new album.
 * 2) The system displays the edit album mask (see Album Metadata Set). The owner of the album and his affiliated organisation will automatically be pre-filled as creator for the metadata record assigned to the album.
 * 3) The user enters an album name.
 * 4) (Optionally) The user enters additional information about the album: further creators (family name, given name) together with their affiliated organisation and a description of the album.
 * 5) The user confirms the entries.
 * 6) The system creates an album (container) with the given metadata in the state pending and displays a message (MSG_FAC_AM_01). When the use case war triggered by UC_FAC_AM_12 Copy album content, also the content of the selected albums will be saved. The use case ends successfully.

Actors Involved
 * Account user

Discussion
 * Talk:Faces_Album_Management

UC_FAC_AM_02a Select album for adding
Status/Schedule
 * Status: implemented
 * Schedule: R2

Motivation
 * The user wants to select one of his own private or shared albums to add pictures to it.

Pre-Condition
 * The user is the owner at least one private album or is sharing at least one private album.

Steps
 * 1) The user chooses to select an album for adding pictures.
 * 2) The system displays a list of all private albums the user is the owner of or the user is sharing.
 * 3) The user selects one album.
 * 4) The system sets the selected album as selected album for adding pictures. The use case ends successfully.

Actors Involved
 * Account user

UC_FAC_AM_02b Add picture to album
Status/Schedule
 * Status: implemented
 * Schedule: R2

Motivation
 * The user wants to add one or more picture to one of his private or shared albums.

Pre-Condition
 * One pending album for adding the pictures is selected (see UC_FAC_AM_02a Select album for adding).

Steps
 * 1) The user selects one picture for adding.
 * 2) The system adds the selected picture(s) to the selected album. The use case ends successfully.

Alternatives
 * 1.a The user selects more pictures (all pictures on one page, all pictures on all pages) for adding and confirms the choice. Continue with step 2.

Actors Involved
 * Account user

Constraints
 * Each picture can only be added once to each album. This means that it must be visible for the user, which pictures are already in which album and which are not.

Discussion
 * Talk:Faces_Album_Management

UC_FAC_AM_03 Remove picture from album
Status/Schedule
 * Status: implemented
 * Schedule: R3

Motivation
 * The user wants to remove one ore more picture from one of his private or shared albums.

Pre-Condition
 * A pending album is selected.
 * The user is the owner or is sharing the selected album.

Triggers
 * This use case can be included by the use cases
 * UC_FAC_BD_04_View album details

Steps
 * 1) The user selects one picture within the album for removing.
 * 2) The system removes the selected picture(s) from the selected album. The use case ends successfully.

Alternatives
 * 1.a The user selects more pictures (all pictures on one page, all pictures on all pages) within the album for removing and confirms the choice. Continue with step 2.

Actors Involved
 * Account user

UC_FAC_AM_04 Edit album
Status/Schedule
 * Status: implemented
 * Schedule: R2

Motivation
 * The user wants to edit the details of one of his own private or shared albums.

Pre-Condition
 * A pending album is selected.
 * The user is the owner or shared the selected album.

Triggers
 * This use case can be included by the use cases
 * UC_FAC_BD_04_View album details

Steps
 * 1) The user chooses to edit the selected album.
 * 2) The system displays the edit album mask.
 * 3) (Optionally) The user edits the metadata values, adds new metadata values or modifies existing metadata values and confirms the changes.
 * 4) The system stores the changes and displays a message (MSG_FAC_AM_02). The use case ends successfully.

Actors Involved
 * Account user

UC_FAC_AM_05 Delete album
Status/Schedule
 * Status: implemented
 * Schedule: R2 (without the Note Pads)

Motivation
 * The user wants to delete one of his private albums because he doesn't need it any more.

Pre-Condition
 * A pending or submitted album is selected.
 * The user is the owner of the album.
 * The album is not shared with other users.

Triggers
 * This use case can be included by the use cases
 * UC_FAC_BD_04_View album details

Steps
 * 1) The user chooses to delete the album.
 * 2) Not implemented yet: The system checks if one or several note pads of the album exists and asks for a confirmation to delete the selected album together with all existing corresponding note pads.
 * 3) The user confirms the deletion of the album and all existing corresponding note pads.
 * 4) The system deletes the selected album and all existing corresponding note pads and displays a message (MSG_FAC_AM_03). If the album was in state submitted, the system first sets it back to pending and than deletes it. The use case ends successfully

Alternatives
 * 3.a The user does not confirm the deletion of the album and/or all existing corresponding note pads. The use case ends without success.

Actors Involved
 * Account user

Remarks
 * When the album can not be deleted because it is shared with other users, the delete button should be disabled. But to explain that to the user, some information should be available as mouse over.

UC_FAC_AM_06 Release album
Status/Schedule
 * Status: implemented
 * Schedule: R2 (without the Note Pads)

Motivation
 * The user wants to publish one of his private albums. Afterwards, the album details will be accessible for the public and every account user can view the pictures in it.

Pre-Condition
 * A pending or submitted album is selected.
 * The user is the owner of the album.

Triggers
 * This use case can be included by the use cases
 * UC_FAC_BD_04_View album details

Steps
 * 1) The user chooses to release the album.
 * 2) The system displays a list of all corresponding pending and submitted note pads the user is the owner of so the user can decide whether one or several of these note pads shall be released, too.
 * 3) Not implemented yet: (Optionally) The user selects one or more displayed note pads which should be released, too.
 * 3.1 Extension point: release note pad
 * 3.1.1 If the user wants to release immediately one or more corresponding note pads, include use case UC_FAC_NP_05 Release note pad.
 * 1) The system prompts for a confirmation of the releasing.
 * 2) The user confirms the releasing.
 * 3) The system changes the state of the album to released (when the album state was pending it automatically goes to submitted and then to released) and displays a message (MSG_FAC_AM_04). The use case ends successfully.

Actors Involved
 * Account user

UC_FAC_AM_07 Withdraw album
Status/Schedule
 * Status: implemented
 * Schedule: R2 (without the Note Pads)

Motivation
 * The user wants to withdraw one of his published albums because the album should no longer be accessible via the collection.

Pre-Condition
 * A released album is selected.
 * The user is the owner of the album.

Triggers
 * This use case can be included by the use cases
 * UC_FAC_BD_04_View album details

Steps
 * 1) The user chooses to withdraw the album.
 * 2) The system prompts for a reason for the withdrawal.
 * 3) The user enters a reason and confirms the withdrawal.
 * 4) The system changes the state of the album to withdrawn and stores the withdrawal comment. The system displays a message (MSG_FAC_AM_05). The use case ends successfully.

Actors Involved
 * Account user

Further Information
 * As note pads can only be viewed via accessing the corresponding album, the not pad does not have to be withdrawn. It is enough when the album is withdrawn.

UC_FAC_AM_08 Export album
Status/Schedule
 * Status: implemented
 * Schedule: R2

Motivation
 * The user wants to export the pictures and/or the metadata of the pictures within one album.

Pre-Condition
 * An album is selected.

Triggers
 * This use case can be included by the use cases
 * UC_FAC_BD_04_View album details

Steps
 * 1) The user chooses to export the pictures of an album.
 * 2) The system displays the export album mask.
 * 3) The user selected one export format (plain CSV, CSV-file and pictures in ZIP-file, pictures only in ZIP-file, XML-file and pictures in ZIP-file, XML only).
 * 4) If the user chooses an export format which includes the pictures, the user selects one or more picture resolutions (thumbnail, web resolution 819x1024, original resolution 2835x3543).
 * 5) The user confirms his selection(s).
 * 6) The system displays the short version of the faces release agreement.
 * 7) The user accepts the release agreement.
 * 8) The system creates the required data in the required export format and puts all files together with the faces release agreement in a zip-file, which is made available for saving for the user. In addition, the system updates the export statistics. The use case ends successfully.

Actors Involved
 * Account user

Alternatives
 * 8.a The user does not accept the release agreement. The use case ends without success.

UC_FAC_AM_09 Share album
Status/Schedule
 * Status: in design
 * Schedule: ???

Motivation
 * The user wants to share one of his private albums with one or more Faces users.
 * See more details below in the scenario "Sharing of an album".

Triggers
 * This use case can be included by the use cases
 * UC_FAC_BD_04_View album details

Pre-Condition
 * One pending album is selected.
 * The user is the owner of the album.

Steps
 * 1) The user chooses to share the selected album.
 * 2) The system displays the share album entry mask (similar to an email send form) and a list of user groups the user has the right to see (= user groups the user has created and user groups the user is a member of).
 * 3) (Optionally) The user chooses to view the members of a selected user group.
 * 3.1 The system displays the members of the selected user group (members can be individual users, other user groups or organizational units).
 * 1) (Optionally) The user enters a valid e-mail address for each user he wants to share the album with, adds a message (some free text) to the  general invitation and confirms his input.
 * 2) (Optionally) The user selects one or several user groups which whom he wants to share the album, adds a message (some free text) to the  | general notification and confirms his input.
 * 3) The system sets the state of the album to submitted and displays a message (MSG_FAC_AM_06). Further on, it sends the e-Mails (for single users the invitation mail and for user groups the notification mail) to each e-mail address and/or participant of a user group and creates a shared note pad (item) in the state pending with the owner of the corresponding album as note pad owner and the shared album as corresponding album. The use case ends successfully.

Actors Involved
 * Account user

Remarks
 * This use case consists of two steps:
 * "submit for sharing album" use case that would submit the album and will automatically create a shared notepad
 * "add shared users to an album"

Discussion
 * Talk:Faces_Album_Management.

UC_FAC_AM_10 Confirm shared user
Status/Schedule
 * Status: in design
 * Schedule: ???

Motivation
 * An album owner offers another user the possibility to share one of his albums. Now the user wants to confirm this sharing.
 * When sharing the album with an already existing user group, this confirmation is not necessary.

Pre-Condition
 * One user is selected.
 * The selected user got an e-mail invitation to share an album.

Steps
 * 1) The selected user chooses to confirm the sharing of the album by following the link provided in the e-mail.
 * 2) The user already has a Faces account. Extension point: log on to the system
 * 2.1 If the user is not logged on to the Faces system, include UC_FAC_UM_01 Log on to the system.
 * 1) The system displays a target page that contains a button to confirm the sharing explicitly.
 * 2) The user confirms the sharing.
 * 3) The system updates the properties of the album: it adds the user name to the provided e-mail address and gives the user the right priviledges for sharing the album (the confirmation can make internal log-in as administrator and make a corresponding grant to the invited person (current user handle, granting of a collaborator role for Album X to User A)). Further on the system logs the joining of the new user in the shared note pad and displays a message (MSG_FAC_AM_07). Now the user is a shared user of the album. The use case ends successfully.

Actors Involved
 * Account user

Alternatives
 * 2.a The user does not have a Faces account. He first has to apply for one. When he gets the account, continue with step 1.
 * 5.a The album for sharing has been deleted in the meantime or the invited user was deleted (unshare) from the list of possible shared users. The system displays a message (MSG_FAC_AM_08). The use case ends without success.
 * 5.b The sharing of the album has already been confirmed by the user (he clicks on the same link a second time). The system displays a message (MSG_FAC_AM_09). The use case ends without success.

Remarks
 * When a user does not want to share the album, he just ignored the e-mail invitation.

Discussion
 * Talk:Faces_Album_Management.

UC_FAC_AM_11 Unshare album
Status/Schedule
 * Status: in design
 * Schedule: ???

Motivation
 * The owner of the album wants to remove one or more shared users, invited users or user groups of one of his albums.

Pre-Condition
 * One submitted album is selected.
 * The user is the owner of the album.
 * The album is shared at least with one shared user.

Triggers
 * This use case can be included by the use cases
 * UC_FAC_BD_04_View album details

Steps
 * 1) The user chooses to remove one or more shared users, invited users or user groups of the selected album.
 * 2) The system displays a list of all shared and invited users (invited users are only recorded via the entered e-mail address) and user groups.
 * 3) The user deletes one or more of the shared or invited users or user groups.
 * 4) The system updates the shared and invited users and user groups of the album, sends all deleted shared users and user groups a notification via e-mail and displays a message (MSG_FAC_AM_10). Further on, the system logs the leaving of the shared user/user group in the shared note pad. Additionally the system creates a copy of the current version of the album and stores this copy as pending album for each unshared user. If the user has one or several private note pads linked to the originally shared album, this note pads will be deleted from the shared album and attached to the new created album of the user. The use case ends successfully.

Actors Involved
 * Account user

Discussion
 * Talk:Faces_Album_Management.

UC_FAC_AM_12 Copy album content
Status/Schedule
 * Status: in design
 * Schedule: ???

Motivation
 * The user wants to copy (merge) the content (pictures) of one or more albums to another new created or already available album.

Pre-Condition
 * One or more albums (from which the user wants to copy the pictures) are selected.
 * The album(s) are in the state released or, when the user is the owner of the album, pending.

Triggers
 * This use case can be included by the use cases
 * UC_FAC_BD_05 View album list

Steps
 * 1) The user chooses to copy the content of the selected album(s) to another album.
 * 2) The system asks the user if he wants to copy the content in a new album or in an already available private album the user is the owner of or shares.
 * 3) The user choses to copy the content in an already available album.
 * 4) The system displays a list of all pending albums the user is the owner of or shares.
 * 5) The user selects one target album where the content shall be inserted.
 * 6) The system copies the pictures from the original selected albums(s) to the selected target album and displays a message (MSG_FAC_AM_11). The use case ends successfully.

Alternatives
 * 3.a The user chooses to copy the content in a new album. Continue with UC_FAC_AM_01 Create album.

Actors Involved
 * Account user

Comments
 * It should be possible to copy the content of the album when viewing the pictures of the album and also when viewing just lists of album (see Triggers for this use case).

Discussion
 * Talk:Faces_Album_Management.

= Additional Information =

Album Metadata Set
An album has the following attributes:
 * Title
 * The title of the album.
 * (string, mandatory, once)


 * Description
 * A short description of an album.
 * (string, optional, once)


 * Creator
 * The creator of an album.
 * (string, mandatory, many)


 * Creator.Organization
 * The organization associated with the creator of the album.
 * (string, mandatory, many)

Properties

 * PID
 * The cit-able URL of the album.
 * (url, mandatory, once)


 * State
 * The state of an album.
 * (list, mandatory, once)
 * List contains: pending, released, withdrawn
 * pending: The album is created, can be edited by the user himself and can be shared with other selected users.
 * released: The album is visible for all Faces users and can not be edited any more.
 * withdrawn: The album is only visible for users who know the exact URL.

Sharing of an album
Share an album
 * Each user can share an own pending album with other users (for the states released and withdrawn sharing an album does not make sense).
 * Sharing an album means that next to the owner of the album also further selected users can add and remove pictures from it and can edit the metadata of the album. But they can not release, delete or withdraw the album.
 * Each shared user of the album can create himself one ore several private note pad related to the album. Further on, a shared note pad for all shared users will automatically be created.
 * For sharing an album, the owner has to select one or more users.

Selecting an shared user
 * 1) The owner of the album has to enter a valid e-mail address of the user he wants to share the album.
 * 2) The selected user will get a notification via e-mail.

Activation of the shared user role
 * 1) The selected user has to confirm the sharing of the album by following a link within the e-mail.
 * 2) * When the user is already logged in he comes to a confirmation page within Faces.
 * 3) * When the user is not logged in, he first has to log on to the system and will then come to the confirmation page.
 * 4) When the confirmation is finished the user gets the rights as collaborator of the shared album.

Delete a shared album
 * It can happen that the owner wants to delete an shared album. Therefore he first has to unshare the album with all shared users before he can delete the album.

Working with a shared album
 * It could happen that more users are adding and removing pictures from the same album at the same time. In this situation, each step only needs a second.
 * The system always saves the latest version. If a user tries to remove a picture which has been previously removed by another user, the FW will return an exception which can be handled as an error message.
 * If another user wants to add a member to an older version of an album, then we have to provide the information that the album has been changed in a meantime by another user and /or ask the user to reload the latest version of the album.

Versioning of an album
 * All shared users (incl. the owner) of an album will have the possibility to view the technical event log of the album.
 * To save also the intellectual changes of an album, all users are recommended to comment their changes in the shared note pad.

Unshare an album
 * The owner of an album is possible to delete a shared user of his album. That action includes that the prior shared user will get a notification by the system. During this process, a copy of the album will be created and saved as private album for the unshared album. So all existing note pads will have a new album they are corresponding to.
 * It is not possible that shared users (after they have confirmed their participation) delete themselves from the list of shared users. If they really want this, they have to contact the owner, who can remove them.

Invitation for Sharing an Album

 * Subject: Invitation for sharing an album within FACES
 * "User X invited you for sharing his album Y."
 * Free text from the user
 * " How to follow this invitation?
 * If you already have an FACES account, please follow this link (link to confirm-share, evtl. via log-in).
 * If you do not have yet an FACES account you first have to apply for an account here (link to Faces request account form). When your account has been accepted, please confirm the sharing of the album here (link to confirm-share, evtl. via log-in)."

Notification for Sharing an Album with a user group

 * Subject: Your user group XY is sharing an album within FACES
 * "User X is sharing his album Y with your user group XY."
 * Free text from the user
 * " If you don't want to be in this user group, please contact the creator of the user group ()"

Information for Unsharing an Album

 * Subject: Unsharing of a FACES album
 * "User x has deleted you from the list of shared users for his album Y. For details, please contact the user personal."

User Groups

 * To create a user group, the user needs the priviledges (via the role User-Group Admin).
 * The creator of a user group is not automatically a member of the user group.
 * Each user can see following user groups:
 * the ones he created
 * the ones he is a member of
 * User groups can be created in a sort of Admin Interface plug in for Faces.
 * For the creation of a user group the creator must know the user names of the required users (there won't be displayed a list with all users).
 * As user groups can also be created based on all members of one or several organizational units, it is not always possible to view all users of an user group.
 * Some specification about user groups can be found under PubMan Func Spec User Management

= Further Development =

1. Controlled Vocabulary
 * perhaps in a later step, the adding of authors (with their corresponding affiliations) can be based on normed files like in PubMan --> CONE integration