|
|
|
# Specifications of User Stories for the Sharing Platform
|
|
|
|
|
|
|
|
|
|
|
|
## Roles
|
|
|
|
The following roles will be supported
|
|
|
|
- **Anonymous User**: any user that is not authenticated.
|
|
|
|
- **Authenticated User**: a user that is authenticated.
|
|
|
|
An authenticated user is typically also authenticated against the gitlab backend. Hence he/she has also authorizations to view certain repositories.
|
|
|
|
- **User**: Any user, either anonymous or authenticated.
|
|
|
|
- **Creator**: the creator/author of a sharing item. A creator may provide content to the sharing platform.
|
|
|
|
- **Instructor**: an authenticated user, that has has some elevated access rights (e.g. an instructor may see the sample solution of an exercise, while a non-instructor may see only the conceptual formulation)
|
|
|
|
|
|
|
|
Further Roles
|
|
|
|
- **Publisher**: An entity responsible for making the resource available. Typically a publisher acts as a proxy for the creator.
|
|
|
|
|
|
|
|
## Concepts
|
|
|
|
|
|
|
|
The sharing platform supports the following concepts:
|
|
|
|
|
|
|
|
- **sharing item**: a sharing item is a piece of work, a creator wants to provide via the sharing platform. A sharing item may be structured, in the sense that it may consist of a hierarchy of files, as can be stored in a git repository. A sharing item must have [metadata information](technical/MetaData Documentation), in order to be presented as a search result.
|
|
|
|
|
|
|
|
A *sharing item* may hierarchically consist of nested sharing items. Further details can be found in the [MetaData Documentation](technical/MetaData Documentation)
|
|
|
|
|
|
|
|
Examples of *sharing items* are text exercises, programming exercises (with templates, automatic tests and sample solution), lecture slides, or also some link collections.
|
|
|
|
|
|
|
|
- **basket**: a collection of sharing items that a user want's to check out collectively.
|
|
|
|
|
|
|
|
- **watchlist**: a collection of sharing items that a user want's to monitor over time (e.g. want's to
|
|
|
|
get notified, if an item is updated)
|
|
|
|
|
|
|
|
## User Stories
|
|
|
|
|
|
|
|
In the following you find a set of user stories (US).
|
|
|
|
|
|
|
|
### US Input: Provide Content to the Sharing Platform
|
|
|
|
|
|
|
|
A creator want's to provide one or more sharing items, to enable other users to reuse its content for their own purpose.
|
|
|
|
|
|
|
|
#### US Input.1: Direct Provision of Sharing Content via GIT
|
|
|
|
|
|
|
|
A creator or a publisher maintains his content directly via the git repository. I.e. he/she typically maintains his content in his local repository, and pushes relevant progress into the git repository on the sharing platform.
|
|
|
|
|
|
|
|
#### US Input.2: Provision of Sharing Content via associated tools
|
|
|
|
|
|
|
|
Further tools can register with the sharing platform/gitlab in order to provide a more user-friendly interface for content creators and maintainers.
|
|
|
|
|
|
|
|
#### US Input.3: Update of Sharing Content
|
|
|
|
|
|
|
|
A creator or pubisher updates his content either directly in gitlab, or in an external tool, in order to make the update available via the sharing plattform to his interested users.
|
|
|
|
|
|
|
|
#### US Input.4: Deletion of Sharing Content
|
|
|
|
|
|
|
|
A creator or publisher removes his content either directly in gitlab, or via an external tool. The content is not available via the sharing plattform any more.
|
|
|
|
|
|
|
|
### US Search: Find Content on Sharing Platform
|
|
|
|
|
|
|
|
A user wants to find specific sharing items in order to use it in its own context. To this end he/she can search the sharing platform according to its meta data.
|
|
|
|
|
|
|
|
The result of the search may vary according to the user's access rights in gitlab.
|
|
|
|
|
|
|
|
### US Collect: Collect several search hits and remember search hits
|
|
|
|
|
|
|
|
|
|
|
|
#### US Collect.0.1: Add a sharing item to a basket
|
|
|
|
|
|
|
|
A user wants to collect potential search hits in a basket, in order to store it, or to handle it collectively (e.g. for a download, or an export to another tool)
|
|
|
|
|
|
|
|
#### US Collect.0.2: Add a sharing item to a watch list
|
|
|
|
|
|
|
|
A user wants to put potential search hits onto a watch list, in order to retrieve it later, or to be able to be informed about changes to the items on the watchlist.
|
|
|
|
|
|
|
|
#### US Collect.1: Reuse Content by Download
|
|
|
|
|
|
|
|
A user can download a sharing item via a zip file.
|
|
|
|
**Remark:** Download is currently only available for authenticated users.
|
|
|
|
|
|
|
|
#### US Collect.2: Reuse Content by repository clone
|
|
|
|
|
|
|
|
A user can reuse a sharing item by cloning from the repository (provided, he/she has access rights accordingly).
|
|
|
|
|
|
|
|
#### US Collect.3: Reuse Content via an associated tool
|
|
|
|
|
|
|
|
A user can reuse a sharing item by exporting it into an appropriate tool (e.g. a programming learning platform) to reuse it for its own course.
|
|
|
|
|