Bash project

Please send a ZIP file containing the solutions using the webpage https://homework.wmi.amu.edu.pl/sop (make sure to select the right task to submit). The page checks the contents of the ZIP file, so it should have the required file/files inside, otherwise the submission wil be rejected (it can have other files if needed). There is no deadline really: If you want a grade, please submit and drop me a note and I will grade it.

Do not throw your solution away after submitting it. If something happens (hopefully not) to my server, you may be required to send it again.

This task is not meant to be made in groups. If a solution is signed by more than one author, the score will be divided between them. You may be asked to defend your solution (you can be asked questions so I can be sure you really are the authors).

I know that for some of you the tasks are easy, for some they are very difficult. Overcoming these difficulties is very important in the learning process. Unfortunately sometimes you will be completely stuck. You may seek help from your fellow students, but it should come as hints, not solutions. Of curse you can also ask me for help.

Students from abroad may be surprised that such things have to be written here, unfortunately Polish students feel plagiarism often pays.

Plagiarism will not be tolerated and will be most severely punished. Failing the course (which is the obvious consequence) may be the least of your worries. I will not be conducting an investigation to find the true author: all offending solutions will be reported to the appropriate disciplinary commitee.

In my opinion the best way to learn programming (and we are programming, albeit in bash) is by scrathing one’s own itch. If you have an idea for a project you would rather write instead of those described below, it may be possible for you to do that instead. The tasks below should be used as a model – you need to write a description of your project in a similar manner and have it accepted by me. I will not grade projects that were not agreed upon. We may agree on one big project or two easier ones.

Task

(20 pt). Write a script stock.sh, which displays data about stock prices using data from https://www.alphavantage.co/documentation.

Scoring

Hints

{
    "Meta Data": {
        "1. Information": "Intraday (5min) open, high, low, close prices and volume",
        "2. Symbol": "MSFT",
        "3. Last Refreshed": "2019-03-05 16:00:00",
        "4. Interval": "5min",
        "5. Output Size": "Compact",
        "6. Time Zone": "US/Eastern"
    },
    "Time Series (5min)": {
        "2019-03-05 16:00:00": {
            "1. open": "111.9400",
            "2. high": "112.0050",
            "3. low": "111.6800",
            "4. close": "111.6800",
            "5. volume": "6319144"
        },
        "2019-03-05 15:55:00": {
            "1. open": "111.9200",
            "2. high": "111.9600",
            "3. low": "111.8500",
            "4. close": "111.9600",
            "5. volume": "393544"
        },
        "2019-03-05 15:50:00": {
            "1. open": "111.8450",
            "2. high": "111.9400",
            "3. low": "111.8400",
            "4. close": "111.9100",
            "5. volume": "285607"
        }
    }
}

Although it might be possible to parse this file with regular expression etc., it is probably best to use a specialized tool like jq. It is a complex tool (akin to sed, but for JSON), yet you just need to extract some data from a file and this should be fairly easy.

Sample script invocations