There are two assignments in this document that are expected to be completed. All of the requirments for an assignment needs to be fullfilled.
Each assignment source-code should live in a separate repository, Github or GitLab, and should be accessibly to the reviewer of the assignment. Once completed can send links to both of the repositories to: insert@email.ere
Build and application that consumes data from a log_data.json file and renders it as an HTML table on the page. A user may interact with the data by interacting with the headers to change the column order.
Log from: https://en.wikipedia.org/wiki/The_Oregon_Trail_(1971_video_game)
{
"success": true,
"logs": [
{ "datetime": "2013-10-15T19:15:05", "type": "ERROR", "name": "Death", "message": "Nicole has died of dysentry", "source": "com.devcpu.oregontrail.uhoh" },
{ "datetime": "2013-10-15T19:14:05", "type": "WARN", "name": "Injury", "message": "Mary has a broken arm", "source": "com.devcpu.oregontrail.whoops" },
{ "datetime": "2013-10-15T19:12:05", "type": "INFO", "name": "Birth", "message": "Janet gave birth to twins", "source": "com.devcpu.oregontrail.uhoh" },
{ "datetime": "2013-10-15T19:11:05", "type": "WARN", "name": "Broke down", "message": "Your wagon has broken a wheel", "source": "com.devcpu.oregontrail.wheeeeeel" },
{ "datetime": "2013-10-15T12:10:05", "type": "ERROR", "name": "Death", "message": "6 of your oxen have perished overnight!", "source": "com.devcpu.oregantrail.oxentoxin" },
{ "datetime": "2013-10-15T10:09:05", "type": "INFO", "name": "Crossing", "message": "You are faced with crossing a large river.", "source": "com.devcpu.oregantrail.gumboots.betterHavePacked" },
{ "datetime": "2013-10-15T09:05:05", "type": "INFO", "name": "Traveller", "message": "Judas has joined your group", "source": "com.devcpu.oregantrail.start" },
{ "datetime": "2013-10-15T09:05:05", "type": "INFO", "name": "Traveller", "message": "Jesus has joined your group", "source": "com.devcpu.oregantrail.start" },
{ "datetime": "2013-10-15T09:05:05", "type": "INFO", "name": "Traveller", "message": "Sarah has joined your group", "source": "com.devcpu.oregantrail.start" },
{ "datetime": "2013-10-15T09:05:05", "type": "INFO", "name": "Traveller", "message": "Nicole has joined your group", "source": "com.devcpu.oregantrail.start" },
{ "datetime": "2013-10-15T09:05:05", "type": "INFO", "name": "PackedItem", "message": "You have decided to pack 5 chickens", "source": "com.devcpu.oregantrail.packinTime" },
{ "datetime": "2013-10-15T09:05:05", "type": "INFO", "name": "PackedItem", "message": "You have decided to pack a knife", "source": "com.devcpu.oregantrail.packinTime" },
{ "datetime": "2013-10-15T09:05:05", "type": "INFO", "name": "PackedItem", "message": "You have decided to pack an axe", "source": "com.devcpu.oregantrail.packinTime" },
{ "datetime": "2013-10-15T09:05:05", "type": "INFO", "name": "PackedItem", "message": "You have decided to pack 20 cast iron pans", "source": "com.devcpu.oregantrail.packinTime" },
{ "datetime": "2013-10-15T09:05:05", "type": "INFO", "name": "PackedItem", "message": "You have decided to pack bullets", "source": "com.devcpu.oregantrail.poorBuffalo" },
{ "datetime": "2013-10-15T09:05:05", "type": "INFO", "name": "PackedItem", "message": "You have decided to pack a rifle", "source": "com.devcpu.oregantrail.poorBuffalo" },
{ "datetime": "2013-10-15T09:05:05", "type": "INFO", "name": "PackedItem", "message": "You have decided to pack 10 oxen", "source": "com.devcpu.oregantrail.packinTime" },
{ "datetime": "2013-10-15T09:05:05", "type": "INFO", "name": "Start", "message": "You have started your journey", "source": "com.devcpu.oregantrail.start" }
]
}
- The application should be written in React + Typescript.
- The application should consume the json data in the log_data.json file.
- The application should display a table where each row represents an entry in the log_data.json file.
- The application should contain content that explains the purpose of the page, data and table functionality.
- The application should display an error if the table fails to load, e.g. missing or corrupt log_data.json file.
- A user should be able to interact with the whole table on a small screen.
- A user should be able to interact with the whole table on a large screen.
- A user should be able to order table columns by interaction with the table headers.
- A user should be able to order table columns by descending order where it makes sense.
- A user should be able to order table columns by ascending order where it makes sense.
Build a command-line application that retrives Haiku messages from the specified endpoint and prints them in order.
API Endpoint: https://haiku.kremer.dev/?keyword=stanza1
- Should accept a list of keywords as an argument.
- Should fetch the Haiku messages from the specified endpoint and print them in order.
- On success prints messages as an JSON array with the following data structure:
- message
- response-code
- response-time (in milliseconds)
- On error prints the error message and exists with error code 1.