For this project, we are going to create an app that keeps an eye on the Bitcoin price - via the BitMex exchange. The app will contact the exchange every two seconds to obtain the latest Bitcoin price. It must compare the latest Bitcoin price with the previously obtained price (obtained two seconds before) and display it in a specific colour, depending on whether the price moved up, down or stayed unchanged. The app must also sound an alarm if the price moves above or below any of the user-entered price levels. During each week, we will do a predetermined section of the required work – called a Sprint in Agile Development (a specific project management style used extensively in many IT development projects).   In this first sprint, we will enable the user to add and remove price levels to the levelsList   class PriceChecker(): # Constructor def __init__(self): self.levelsList = [] # Properties # A property is defined like a method, but you use it in your # code like a variable (no parentheses need to followed it when used in your code) # Refer: https://www.youtube.com/watch?v=jCzT9XFZ5bw # Refer BP411 slides: Week 2 - Chapter 10 - Slides about Encapsulation and properties @property def levelsList(self): return self.__levelsList @levelsList.setter def levelsList(self, newValue): self.__levelsList = newValue # Class Methods # ============= # Method: Sort and Display the levelsList def displayList(self): print(chr(27) + "[2J") # Clear the screen print("Price Levels In The List") print("========================") # Sort the list in reverse order ... # Print the items in the list (Based on the above sort, numbers should appear from large to small.) ... # Display the menu and get user input about what methods to execute next def displayMenu(self): min = 0 max = 3 errorMsg = "Please enter a valid option between " + str(min) + " and " + str(max) print("MENU OPTIONS") print("============") print("1. Add a price level") print("2. Remove a price level") print("3. Remove all price levels") print("0. Exit the program") print(" ") # Get user input. Keep on requesting input until the user enters a valid number between min and max selection = 99 while selection < min or selection > max: try: selection = int(input("Please enter one of the options: ")) except: print(errorMsg) # user did not enter a number continue # skip the following if statement if(selection < min or selection > max): print(errorMsg) # user entered a number outside the required range return selection # When this return is finally reached, selection will have a value between (and including) min and max # Method: Append a new price level to the levelsList def addLevel(self): try: # Let the user enter a new float value and append it to the list ... except: # Print and error message if the user entered invalid input ... # Method: Remove an existing price level from the levelsList def removeLevel(self): try: # Let the user enter a new float value. If found in the list, remove it from the list ... except: # Print and error message if the user entered invalid input ... # Method: Set levelsList to an empty list def removeAllLevels(self): # Set levelsList to an empty list ... # ************************************************************************************************* # Main Code Section # ************************************************************************************************* # Create an object based on the PriceChecker class checkerObj = PriceChecker() # Display the levelsList and Menu; and then get user input for what actions to take userInput = 99 while userInput != 0: checkerObj.displayList() userInput = checkerObj.displayMenu() if(userInput == 1): checkerObj.addLevel() elif(userInput == 2): checkerObj.removeLevel() elif(userInput == 3): checkerObj.removeAllLevels()

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

For this project, we are going to create an app that keeps an eye on the Bitcoin price - via the BitMex exchange.

The app will contact the exchange every two seconds to obtain the latest Bitcoin price. It must compare the latest Bitcoin price with the previously obtained price (obtained two seconds before) and display it in a specific colour, depending on whether the price moved up, down or stayed unchanged.

The app must also sound an alarm if the price moves above or below any of the user-entered price levels.

During each week, we will do a predetermined section of the required work – called a Sprint in Agile Development (a specific project management style used extensively in many IT development projects).

 

In this first sprint, we will enable the user to add and remove price levels to the levelsList

 

class PriceChecker():
# Constructor
def __init__(self):
self.levelsList = []

# Properties
# A property is defined like a method, but you use it in your
# code like a variable (no parentheses need to followed it when used in your code)
# Refer: https://www.youtube.com/watch?v=jCzT9XFZ5bw
# Refer BP411 slides: Week 2 - Chapter 10 - Slides about Encapsulation and properties
@property
def levelsList(self):
return self.__levelsList
@levelsList.setter
def levelsList(self, newValue):
self.__levelsList = newValue

# Class Methods
# =============

# Method: Sort and Display the levelsList
def displayList(self):
print(chr(27) + "[2J") # Clear the screen
print("Price Levels In The List")
print("========================")
# Sort the list in reverse order
...
# Print the items in the list (Based on the above sort, numbers should appear from large to small.)
...

# Display the menu and get user input about what methods to execute next
def displayMenu(self):
min = 0
max = 3
errorMsg = "Please enter a valid option between " + str(min) + " and " + str(max)

print("MENU OPTIONS")
print("============")
print("1. Add a price level")
print("2. Remove a price level")
print("3. Remove all price levels")
print("0. Exit the program")
print(" ")

# Get user input. Keep on requesting input until the user enters a valid number between min and max
selection = 99
while selection < min or selection > max:
try:
selection = int(input("Please enter one of the options: "))
except:
print(errorMsg) # user did not enter a number
continue # skip the following if statement
if(selection < min or selection > max):
print(errorMsg) # user entered a number outside the required range
return selection # When this return is finally reached, selection will have a value between (and including) min and max

# Method: Append a new price level to the levelsList
def addLevel(self):
try:
# Let the user enter a new float value and append it to the list
...
except:
# Print and error message if the user entered invalid input
...

# Method: Remove an existing price level from the levelsList
def removeLevel(self):
try:
# Let the user enter a new float value. If found in the list, remove it from the list
...
except:
# Print and error message if the user entered invalid input
...

# Method: Set levelsList to an empty list
def removeAllLevels(self):
# Set levelsList to an empty list
...

# *************************************************************************************************
# Main Code Section
# *************************************************************************************************

# Create an object based on the PriceChecker class
checkerObj = PriceChecker()

# Display the levelsList and Menu; and then get user input for what actions to take
userInput = 99
while userInput != 0:
checkerObj.displayList()
userInput = checkerObj.displayMenu()
if(userInput == 1):
checkerObj.addLevel()
elif(userInput == 2):
checkerObj.removeLevel()
elif(userInput == 3):
checkerObj.removeAllLevels()

Expert Solution
steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY