-
Notifications
You must be signed in to change notification settings - Fork 1
Specifications
The data at the core of the application is grouped into two types of nodes (predictions and realisations) and links between those nodes. For now, a realisation can only be created in relation to a prediction.
field | Description | type | required |
---|---|---|---|
id | Unique ID for the prediction | number | automatically |
source type | select from a predefined array of types: Literature, Movies, TV series, Games, other | string | required |
literature_title | Title of the literary work | string | required1 |
literature_author | Author of the literary work | string | optional |
movie_title | Title of the movie | string | required1 |
movie_director | Director of the movie | string | optional |
series_title | Title of the TV series | string | required1 |
series_season | Season number of the series | number | optional |
series_episode | Episode number of the series | number | optional |
game_title | Title of the game | string | required1 |
game_studio | Game studio who produced the game | string | optional |
other_title | Title of the work | string | required1 |
other_creator | Person who made it | string | optional |
year_published | when the source work was first published | number | optional |
prediction_E | description of the prediction (limited to 300 chars), in English | string | required2 |
prediction_D | description of the prediction (limited to 300 chars), in German | string | required2 |
year_predicted | year for which the prediction is made, if available | number | optional |
category | select from a predefined array of categories, like transportation, health, surveillance | string | required |
more_info | hyperlink to a page where more info on the prediction can be found | string | optional |
timestamp created | time when the prediction was created | date | automatically |
timestamp last edited | time when the prediction was last edited | date | automatically |
headline | editors can assign a headline to a prediction in the backend | string | optional |
image | editors can attach an image to a prediction | img | optional |
editors_pick | editors can highlight a prediction from the backend as editor's pick | boolean | optional |
1 at least one of those properties must have a value, 2 at least on of those properties must have a value
field | Description | type | required |
---|---|---|---|
id | Unique ID for the realisation | number | automatically |
realisation_E | description of the realisation (limited to 300 chars) in English | string | required3 |
realisation_D | description of the realisation (limited to 300 chars) in German | string | required3 |
year_introduced | Year when realisation was first introduced | number | required |
more_info | hyperlink to a page where more info on the realisation can be found | string | optional |
image | editors can attach an image to a prediction | img | optional |
timestamp_created | time when the realisation was created | date | automatically |
timestamp_edited | time when the realisation was last edited | date | automatically |
3 at least one of those properties must have a value |
field | Description | type | required |
---|---|---|---|
node1 | Endpoint one of the connection | object? | required |
node2 | Endpoint two of the connection | object? | required |
timestamp_created | time when the connection was created | date | automatically |
timestamp_edited | time when the connection was last edited | date | automatically |
This list needs to be refined once we test it against our initial set of predictions
- Communication
- Energy
- Finance, Economics
- Food
- Health
- Home & Living
- Law
- Leisure
- Love, Friendship, Relationships
- Media
- Nature
- Politics
- Production
- Science
- Society
- Space
- Sports
- Surveillance
- Transportation
- War & Weaponry
- Work
proposed url structure would be:
dystopiatracker.com/p/
+ creator/
+ work/
+ prediction-id
eg. dystopiatracker.com/p/george-orwell/1984/id=12
First, we will focus on implementing two features: A card overview of all content and the ability for users to contribute data themselves.
Predictions are displayed as cards. The user can filter the view or select a prediction.
The user can apply three filters, separately or combined
- by category (select from dropdown)
- by media type (select from dropdown)
- by work (typeahead search) Every filtered view has a unique URL
For each view (home or any filters applied), the results are displayed in two groups.
- 1-8 latest matching predictions with property
editors_pick
. if no matches for the given filter, don't display this section - latest predictions
On mobile, only the category filter is displayed (and maybe the "search by work" field).
Any user, no registration needed, can enter data, i.e. a prediction or a realisation connected to a prediction.
On all list views, there is a button that leads to the input form. On desktop, the button is placed at the top left corner of the latest predictions (see image above), on mobile the button is floating above the content fixed in the bottom right corner (see image above).
The input process is designed in a way to avoid the creation of duplicates.
- User selects the source type.
- Based on the source type, the corresponding title field appears.
- User fills in title field.
- All existing predictions for the entered work are displayed.
- User either selects existing prediction to edit or creates a new prediction.
- User fills in remaining fields, publishes prediction.
- User is prompted to share the prediction / add a realisation / add another prediction.
Once a prediction is published, realisations can be connected to it. There are two trigger points for this.
- Right after a prediction is entered, the user clicks "Add realisation" on the Thank-you-screen.
- Every existing prediction comes with the same button to trigger the form for adding a realisation.
The application will launch in English and German. All interface elements will be available in both languages, the default being defined by browser settings (if browser set to German, show German, else: English).
Content is entered in the language the application is currently running in (meaning that prediction_E
or prediction_D
is shown) and will be translated by an editor later.
In the application, show only cards for which the respective content property (prediction_E
or prediction_D
) has a value.
The backend will be used by editors for quality assurance and to add missing info to existing entries. Thus, the following functionality needs to be provided.
- List of all entries that can be filtered by the same criteria as in the frontend
- All entries can be edited or unpublished
- All entries can be highlighted as
editors_pick