---
# System prepended metadata

title: Requirements
tags: [planning]

---

# Requirements

###### tags: `planning`

## Must have

1. The user is able to pass to the algorithm a file containing the reviews.
2. As a result, the user must obtain a summary of the data in a file that includes the following:
    1. A general overview of the data:
       - The user must be able to visualize the priority of the categories based on amount of negative comments.
       - The user must be able to visualize a general average rating over time.
       - The user must be able to visualize the overall positive/negative ratio of all reviews.
    2.  Per category: 
       - The user must be able to visualize the average rating of the category over time.
       - The user must be able to visualize the current ratio of negative comments of the category.
       - The user must be able to visualize a subset of the list of comments of that specific category, over the past month. 
    3. Per platform:
        - The user must be able to visualize the change in amount of comments in that platform over time.
        - The user must be able to visualize the ratio of negative comments in that platform.
        - The user must be able to visualize the ratio of present categories in that platform.

## Should have

1. The user should be able to visualize the data in an interactive local webpage.
2. In the webpage, the user should be able to:
    1. Filter the data. 
    2. Modify the graphs to be based on a desired period of time.
    3. Download a static version of the overview directly from the webpage.

3. The user could be able to modify directly from the webpage the list of categories to which the comments are classified to.


## Could have

1. The user could be able to filter the URLs on certain key words. 
2. The user could be able to filter by iTV webpage. For instance, the user could be able to see which feedback was given in a 404 error page, or in the actual feedback section.
3. The reviews could be stored in a database.
4. The reviews could be automatically collected from the different sources. 
5. The visualization could be updated live on the webpage.


## Non-functional requirements

The following requirements are not prioritize as they should all be taken in consideration at the same degree.
- The model is able to translate the Dutch comments into an English language. In case of english comments, the translator must keep the comment the same.
- The model is able to give a sentiment about the comment.
- The model is able to classify comments, based on a hard-coded list of keywords.
- The framework used for the backend is Django.
- The framework used for the frontend is React.
- The backend and frontend should communicate through API calls.


