For better graphical representation of the requirements, the software's users (also known as actors) and their interactions with the system can be summarized with Use Case diagrams.
These Use Case scenarios do not go into a lot of detail, however, they depict a high-level overview of the relationship between Use Cases, actors, and the software itself.
The following Use Case scenarios are demonstrated by Unified Modeling Language (UML) diagrams.
If you are not familiar with the use of UML, find more information here.
Use Case Diagram
Note:
The full Use Case diagram can be accessed from here.
Use Astah to open it.
Actors
User
Administrator
Software's tasks
User
View lecture
Search lectures
View ATC members
View Events
Contact ATC
Note
Some lectures have neither videos nor files.
Administrator
Manage harvesting
Maintain database
Manage navigation
Maintain ATC members
Use Case Scenarios
View lecture functionality
Use Case
VIEW LECTURE
Summary
View lecture and its details (title, speaker, date, abstract, event details, sponsor, keywords)
Actor
User
Precondition
Lecture exists in CDS
Postcondition
Harvested from CDS
Base sequence
1. Lecture exists 2. Click on a lecture to watch 3. System talks through HTTP request to the REST API to ask for the called lecture 4. System checks if the lecture exists in the database 5. System sends back an HTTP response 6. System checks if the lecture is a single video, a two-channel video, has files or none. 7. System displays the lecture with its details accordingly
Note
If CDS is down, the videos and files cannot be reached (!) – an error message will be displayed that will originate from CDS. Everything else has a copy in the system’s separate database (title, speaker, date, abstract, event details, sponsor etc.) that are not dependent on CDS and can be displayed regardless.
Search lectures functionality
Use Case
SEARCH LECTURES
Summary
Search lectures and/or browse from search results
Actor
User
Precondition
Lectures exist in CDS
Postcondition
Harvested from CDS
Base sequence
1. Click on the search bar to search 2. Fill the search bar with content 3. Hit Enter OR click on the Search Icon 4. System checks if the search value in the Search bar has content a) If not, the system generates an empty search and displays all the lectures available b) If yes, go to step 5 5. System sets the search term with the searched value 6. System navigates to the search route after the query and displays the first page of the results
Note
- Empty search lists all the lectures available. - A guide (?) to help how to search is available next to the search bar: You can search by title, speaker, series, abstract, sponsor and keywords. The default search operator is AND. For an OR search, use | between words, ex. particle | physics. For exact match, use double quotes, like this: "dark matter"
View ATC members functionality
Use Case
VIEW ATC MEMBERS
Summary
View the members of the Academic Training Committee (ATC) and their mission
Actor
User
Precondition
-
Postcondition
-
Base sequence
1. Click on the ‘About’ button to view the members of the ATC a) In the header b) In the footer 2. System navigates to the site of the ‘About Us’ that displays the description of the ATC and the current members of it
Note
-
View Events functionality
Use Case
VIEW EVENTS
Summary
Navigate to and view the full programme of the CERN Academic Training Lecture series
Actor
User
Precondition
Category 72 exists on Indico (Academic Training Lecture Regular Programme)
Postcondition
-
Base sequence
1. Click on the ‘Events’ button to view the full programme of the CERN Academic Training Lecture series a) In the header b) In the footer 2. System navigates to Indico
Note
If Indico is down, the full programme cannot be reached.
Contact ATC functionality
Use Case
CONTACT ATC
Summary
Contact the ATC through a dedicated email address
Actor
User
Precondition
The atc-contact@cern.ch must be configured in the CERN e-groups
Postcondition
-
Base sequence
1. Contact the ATC members either: a) Through the ‘Contact’ button on the header/footer OR b) ‘Submit a suggestion for future topics’ button 2. System opens the default email agent with the email address
Note
Cancel can be made anytime.
Manage harvesting functionality
Use Case
MANAGE HARVESTING
Summary
Harvest lectures from CDS
Actor
Administrator
Precondition
Lectures exist in CDS
Postcondition
OAI-PMH mechanism for MARCXML translation
Base sequence
1. Run the backend 2. Login in the database with admin credentials 3. Add lecture 4. Migrate lectures a) in case of harvest failure, send an email to academictraining-site-admins@cern.ch
Note
- The lecture’s details are retrieved from a MARCXML file that needs conversion before harvesting the records from CDS to the database. This is necessary, because MARCXML has data fields with unique numbers that correspond to a tag, and subfields that correspond to a character. Since it is not easily readable, it must be translated. That is the OAI-PMH mechanism (translation from XML to JSON). - The information that does not exist on CDS is obtained from the lecture's Indico event (Indico API).
Maintain database functionality
Use Case
MAINTAIN DATABASE
Summary
Manage database once change occurs or update is required
Actor
Administrator
Precondition
Lectures harvested
Postcondition
Admin logged in, git repository cloned
Base sequence
1. Run the backend 2. Login in the database with admin credentials 3. Add/modify lecture fields 4. Migrate lectures a) in case of harvest failure, send an email to academictraining-site-admins@cern.ch
Note
The abstract must be cleansed, because it might have features that are not needed.
Manage navigation functionality
Use Case
MANAGE NAVIGATION
Summary
Manage navigation of the project to render the app at different URLs
Actor
Administrator
Precondition
-
Postcondition
Admin logged in, git repository cloned
Base sequence
1. Add path(s) / URLs 2. Define route(s) of the path(s) 3. Add outlet to path
Note
A default blank page is added in case of a route that has no endpoint (it leads nowhere).
Maintain ATC members functionality
Use Case
MAINTAIN ATC MEMBERS
Summary
Maintain the ATC members on the About Us page, update members in case of change
Actor
Administrator
Precondition
-
Postcondition
About Us page exists
Base sequence
1. Take the list of ATC members 2. Update or add a new member by the following: a) key b) name c) profile d) position e) department 3. Update About Us page 4. Save changes
Note
The profile pictures of the members must be downloaded and added to the project repository.