Last active
March 20, 2023 17:39
-
-
Save holmberd/1cba768adc5f553cd19bbfc9ff1fe5a5 to your computer and use it in GitHub Desktop.
Assignments
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Take home Assignments | |
| 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 | |
| ## Log Viewer | |
| 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" } | |
| ] | |
| } | |
| ``` | |
| ### Requirements | |
| #### Application | |
| - 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. | |
| #### User | |
| - 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. | |
| ## Haiku API | |
| 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 | |
| ### Requirements | |
| - 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. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment