-
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 | The source where the prediction was made (a book, a movie, etc.) | id | required |
description_E | description of the prediction (limited to 300 chars), in English | string | required1 |
description_D | description of the prediction (limited to 300 chars), in German | string | required1 |
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_edited | time when the prediction was last edited | date | automatically |
headline_E | editors can assign a headline to a prediction in the backend | string | optional |
headline_D | editors can assign a headline to a prediction in the backend | string | optional |
image | editors can attach a specific image to a prediction | img_url | optional |
img_credit | credit info for image | string | optional |
editors_pick | editors can highlight a prediction from the backend as editor's pick | boolean | optional |
user | name of the user who submits the prediction | string | optional |
published | designates if a prediction is currently published | boolean | required |
1 at least one of those properties must have a value
field | Description | type | required |
---|---|---|---|
id | Unique ID for the source | number | automatically |
source_type | one of 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 | required2 |
movie_director | Director of the movie | string | optional |
series_title | Title of the TV series | string | required2 |
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 | required2 |
game_studio | Game studio who produced the game | string | optional |
other_title | Title of the work | string | required2 |
other_creator | Person who made it | string | optional |
year_published | when the source work was first published | number | optional |
more_info | hyperlink to a page where more info on the source can be found (IMDb, e.g.) | string | optional |
description | additional info on the source | string | optional |
image | image for the source | img_url | optional |
img_credit | credit info for image | string | optional |
2 at least one of those properties must have a value
field | Description | type | required |
---|---|---|---|
id | Unique ID for the realisation | number | automatically |
description_E | description of the realisation (limited to 300 chars) in English | string | required3 |
description_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 |
user | name of the user who submits the realisation | string | optional |
image | editors can attach an image to a realisation | img_url | optional |
img_credit | credit info for image | string | optional |
timestamp_created | time when the realisation was created | date | automatically |
timestamp_edited | time when the realisation was last edited | date | automatically |
published | designates if a realisation is currently published | boolean | required |
3 at least one of those properties must have a value |
field | Description | type | required |
---|---|---|---|
node1 | Endpoint one of the connection | id | required |
node2 | Endpoint two of the connection | id | 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 for a prediction 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 user hits the create button, then:
- User selects the source type.
- Based on the source type, the corresponding title and creator fields appear.
- 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.
Every prediction will have a permalink. This dedicated single page shows the prediction with all its connected realisations and optional headline and images added by the editors (we will do that for all editor's picks).
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
- Filter option: Show all entries where not all fields are filled
- All entries can be edited or unpublished
- All entries can be highlighted as
editors_pick