Starting from:

$30

CSC301-Pair Programming Solved

Pair Programming
Pair Programming​ is a common practice in software engineering as described in the lecture on "Agile". You can set up ​remote pair programming​ as well.

●     Decide roles (driver/navigator) and the feature to be developed (they should be big enough to spend 2 to 3 hours thinking about implementation and then coding) . Together break down the feature to multiple “checkpoints” and design the solution on paper. Estimate how long it will take you to finish this feature with the proposed design. This design will be the guide in coding your solution. Once you are happy with your design, the driver (using their own GitHub account) starts coding the solution while the navigator watches and helps whenever needed (no checking phones or going to get coffee).  After the allocated time is done (could be 30-90 minutes, you can take a break and switch roles). Repeat this enough times until the feature is done. Experiment with different variations to see what works best for you. You can then move on to the second feature and​ switch starting roles.

○     This includes the ​tests​ for the features you chose - make sure they are pair programmed as well. ●        In your ​README.md

                        ○    Should explain which features were pair programmed

                        ○    Should explain who the driver and navigator was for different parts of the features

○    Should give a ​reflection​ on how it went, and what you liked and disliked about this process

●     The commits should reflect who the driver was for each feature

○     Any​ work done on a particular feature should ​only ​be done by the driver for this feature - we will check!

 

Specification: COVID Monitor
For this assignment, you will be creating an interface (API or CLI) for COVID-19 data.​

There is not much starter code to start with - you will have to take the specifications of the app, and use the concepts from class to write a Python​               ​ program​           to make it work.​            

You will also write an interface ​            to demonstrate the functionality of your app. This can be done in​      two ways:

-       Using a Flask API: If you go with this option, you can use the starter code provided as your starting point

-       Using CLI: If you go with this option, you can simply start from scratch and treat it as a standalone Python app that you can call from your terminal.

Either way, you need to write clear instructions of how to run your flask server and work with it on the browser.

Going off of our theme that Software Development is not just coding, you will notice that the interface itself is not that difficult. We know that you can probably hack something together quickly that more or less works most of the time.

However, that is not what professionals do. You will have to think about and reflect on why you chose certain elements, including:

●     How to represent objects

●     The relationships between objects (coupling, cohesion)

●     Design of functions

●     Using design patterns effectively​     

                        ○    You can use the ones we mentioned in class, or others

●     Clean coding practices

The Starter Code
The starter code is meant to be set up as a Flask ​    project in your IDE. You can start by running​  main.py in the CovidMonitor folder​             ,​ which will set up a simple server similarly to the ones shown​             during lectures and tutorials. The starter code also comes with a file called unit_tests.py ​              in the​     tests folder. You can use the commands described in the Readme.md file included in the starter code.  

There is only one Python file in the starter code, main.py​     , which will have the main method that​               will start the program. You will have to add to it to fulfill the requirements of the program below (you can replace the contents of the main method entirely as well). We will run your code from this main method, so do not get rid of it. 

Requirements
Your program needs to be able to do the following while the app is running​            (we do not require​         external persistence in files apart from what’s listed below).  

1.    Add a new data file: You can assume the file is consistent and follows the format specified her​     e. You can use one of the files in this GitHub repo. The files have two​                 possible formats:

○     Time Series:​ You should implement this first. The user should be able to send a csv file to your programs as a data source. You should be able to parse and store the data. Please note that you are not asked to create a database; however, doing so, can be an additional functionality.

○    Daily reports:​ These are more detailed files that take in the data one day at a time. Your program needs to be able to take this information in as well.  You can choose how you want to expose your application to run and the endpoints for your application. With both of these methods, you need to send a success/failure response following the standard.

2.    Update existing files: If a file is uploaded again, you should update the data you store to reflect the new information

3.    Query data by one or more countries, provinces/states, combined_keys: The data can be any of the following:

○     Deaths

                        ○    Confirmed

                        ○    Active

                        ○    Recovered  

The data above can be requested for any one day or a period of time.  

4.    Your program should support returning the data in multiple formats:

○     JSON

                        ○    CSV

                        ○    Text (printed)

                        ○    Bonus: You can use libraries like ​ Matplotli​ b to plot the returned data instead.​ 

 

More products