Functional Requirements
Access
anonymous access to public data
Public metadata should be visible for all persons, to follow FAIR principles.
login via home institution
Members of institutes that are members of one of the following networks should be able to log in with their institutional account:
- DFN
- Helmholtz Association
- GEANT
- eduGAIN
Collection
relate item to collection
contact, relate item to a collection, to show it's affiliation to a certain item group. An item should only be related to one collection at a time.
remove item collection relation
contact, remove item from collection, to show that it does not belong to that group of items anymore.
Contact (User)
create user
admin, create users in the backend and add them to our curated user pool.
update user
admin, update user details, to reflect changes.
delete user
admin, delete user, if not necessary anymore. user can only be deleted if there are no relations to items anymore.
relate user to item
contact, add user to my item, to show the user's relations to this item.
update contact relation
contact, update contact relation, to show new role of contact (i.e. data provider). Only contact roles can be updated. This can be seen as a kind of tag. contact details have to be updated by an admin in the backend.
remove contact relation
contact, remove the relation of a contact to the current item. This does not remove the user behind that contact. The person that initially created the item can not be deleted, because then there would be no one to edit the item anymore.
Event
create and relate event to item
contact, add event to my item, to show an action of the item (i.e. deployment). Events are create and related to an item in one step. You can not create an event somewhere else and then relate it to an item.
edit event
contact, update event, mainly to correct date errors and typos.
remove event relation
contact, remove event relation to item, to correct event relations. The event itself is not deleted, but it's association to an item.
Field
add field to item
contact, add field to item, to enter custom data that does not fit in one of the other categories.
update field
contact, update field, to reflect real world changes.
delete field
Frame
create frame for item
contact, add frame to my item, to show the position of my item in a carrier system. There can only be one reference frame per item.
edit frame
contact, update frame, to reflect item position changes.
remove frame from item
contact, remove frame from item. There is no direct removal options, but you can empty all fields and save the frame.
History
create snapshots
user, create snapshot for current item configuration, to look up historical configurations. One reason is to better validate measured data.
cite snapshots
user, I want a persistent identifier for every metadata snapshot, to cite it in publications
Image
add image to item
contact, add images to my item, to show how it looks like.
edit image
contact, update image, to have a new image description and/or a new image at the same image slot.
remove image
contact, remove image. Removes the image relation to the item. The file one the server is not deleted.
Implicit
map item hierarchy to directory structure
admin, I want the item hierarchy to be mappable to a directory structure, so that users find data of their items according to the existing item hierarchy.
Example: vessel:he:tsg -> ../vessel/he/tsg
Item
find item
find items via freetext search that searches over item attributes, where ID and long name should be prioritized.
anonymous, search all public items. user, search items of all statuses.
download search result
search result lists should be downloadable as .tab file.
filter items
items should be filterable by:
- type
- model
- manufacturer
- parameter
- mission
- event type
- event
- contact
- owner
- resource type
- status
view item
anonymous, view all public items, to follow FAIR principles
create item
user, create items, to add all of my real world items
update item
contact, update my items, to reflect changes in the real world
delete item
contact, remove item, to reflect real world changes (loss, total failure, ...) items are not finally deleted. Their status is set to "decom". There may be still a lot of relations from past missions or other sources to an item. Therefore a deletion would lead to errors and incomplete historical data.
change item parent
contact, change item parent, to reflect unmounting from or mounting to a platform. The contact should be asked if an unmount or mount event should be created. Furthermore, the contact should be asked if a version of the current state should be created.
Mission
find mission
find missions via freetext search that searches over mission attributes.
anonymous, search all missions.
view mission
create mission
user, create mission, to group my mission participating items.
update mission
mission manager, update my missions, to reflect real world changes.
delete mission
mission manager, delete my missions.
Parameter
create and relate parameter to item
contact, add parameter to my item, to show what this item is able to measure. Parameters are create and related to an item in one step. You can not create a parameter somewhere else and then relate it to an item.
edit parameter
contact, update parameter, mainly to correct typos.
remove parameter relation
contact, remove parameter relation to item, to reflect capability updates/downgrades. The parameter itself is also deleted.
Property
create and relate property to item
contact, add property to my item, to show all kinds of ranges for this item (i.e. operation depth). Properties are create and related to an item in one step. You can not create a property somewhere else and then relate it to an item.
edit property
contact, update property, to reflect changes in item ranges.
remove property relation
contact, delete property relation to item, to reflect real world changes. The property itself is also deleted.
Resource
upload new resource and relate to item
contact, add new resource, to my item, (relate documents like certificates, manuals, ...). It is recommended to first upload resources in a repository and then relate them via persistent identifier.
relate existing resource to item
contact, relate existing resource from a repository to my item via persistent identifier (documents like certificates, manuals, ...). This should be the recommended method of relating important resources.
edit item resource relation
contact, update existing resource relation, correct errors.