Skip to content

Requirements

Before we touch any of the code, let's understand the initial requirements of the project that are presented in User Stories.

The following requirements are based on the problem defined in the Project Description, mandatory elements from CERN’s design guidelines and general regulations for the CERN Logo usage.

Note for maintainers (!):

The requirements listed below must be respected, however, it can be extended if further wishes from the Academic Training Committee (ATC) occur. If anything new is present [31 July 2022 - ], do not forget to add it to this list for effective future maintenance.

1. Functional Requirements

  1. As a user, I want to see the lectures displayed by thumbnail picture, speaker and date, so I can watch the lecture that I want.
  2. As a user, I want a search bar, so I can search lectures by title, speaker, date, abstract, sponsor and keywords.
  3. As a user, I want a Contact button that navigates to the email address of the stakeholders (ATC members), so I can contact them, give feedback or send a suggestion for future lecture.
  4. As a user, I want an Events button, so I can access and see the Full programme of the Academic Training Lectures (Indico).
  5. As a user, I want a button that navigates to an About Page, so I can see who the members of the ATC are.
  6. As a user, I want the title, speaker, date, event details, abstract (description of the lecture), duration and sponsor displayed for each lecture, so I can see the details of it.
  7. As a user, I want a permanent header to find the About, Contact, and Events links, so I do not have to search or scroll for it for too long.
  8. As a user, I want the lectures displayed chronologically on the Main Page and on the Search Result Page, so I can see the most recent first.
  9. As a user, I want a dropdown menu of Relevance that sorts the search results by score (Most relevant), by date (Newest first and Oldest first), so I can sort in the order I want to see them.
  10. As a user, I want to see the number of results after each search, so I know how many lectures were found for my search term.
  11. As a user, I want to see a message displayed when no results are found after a search, so I know, I must change the search term, and look for something else.
  12. As a user, I want to see the search bar permanently, so I can search for a lecture whenever I want.
  13. As a user, I want a Help tooltip next to the search bar, so I know how to use the search engine the most efficient way as possible.
  14. As a user, I want to be able to find exact matches, so I can find the exact lecture that I want.
  15. As a user, I want the software to be able to display also two-channel lectures, so I can see one for the recording of the speaker and one for the slides used to illustrate the lecture.
  16. As a user, I want a list of files displayed on the page of a lecture, if video is not present, so I can access and view non-video lectures as well.
  17. As an administrator, I want to be able to harvest new lectures from the Academic Training Lecture series, so I can keep the software up to date.
  18. As an administrator, I want to be warned if the harvesting fails, so I can avoid risks of the site being out of date.
  19. As an administrator, I want to be able to include additional details from the event of the lectures (Indico), if it is not present already in the CDS, so I do not miss details that are needed by the stakeholders.
  20. As an administrator, I want to be able to update the ATC members, so I can display an up-to-date information about the members and the Committee mission.

2. Non-Functional Requirements

  1. The software must be publicly accessible on the internet.
  2. There must be a logo specific to THIS software that gives the brand of the ATC.
  3. The Academic Training lectures must be accessible separately from the collection on CDS.
  4. The software must display mixed results. While the majority of the lectures are recorded and stored as videos, the old records are archived in PDFs, so they must also be managed.
  5. The lecture harvesting should be automatic, performant (compare video loading speed on the site and in CDS; ensure no overhead appears due to the site views/scripts), and persistent to eventual CDS changes.
  6. The software must use cold colors (ex. blue, black, white), as this is the general color scheme of CERN.
  7. The site views, links and navigation must be user-friendly.
  8. Despite the fact the CERN is bilingual (French and/or English), this software must display the details of lectures in English.
  9. The software must have the domain name .cern.ch.
  10. The software must be designed responsive, so that it can be viewed on smaller screens too, like on tablet and/or mobile devices. Since it is not possible to test it on every single device in the world, it is important to have responsive layout on some of the most popular devices (like iPhone 8, Samsung Galaxy S8, Google Pixel and Nexus 7).
  11. The software must be usable from multiple browsers: Google Chrome, Firefox, Samsung Internet, Safari, Microsoft Edge, and Opera.
  12. In order to ensure future maintainability, the software must make use of technologies in which CERN and the community have expertise.
  13. The CERN toolbar must be displayed at the top of the software in the standard way, including a link to the homepage of CERN, to Sign In and to the CERN Directory.
  14. The CERN logo should always be used in the footer and be an active link to the homepage of CERN.
  15. The CERN logo should never be used at the top left corner or in the header.
  16. The CERN logo should not be animated or have states or scripted interactions.
  17. The CERN logo should be no less than 60px wide, and its correct proportions must be respected.
  18. A descriptive documentation site must be created and written for future maintenance.

Note:

Regulations for optional CERN elements are not stated here.