Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import json
class FeedbackHandler:
def __init__(self, server_communicator, role, user_id):
self.server_communicator = server_communicator
self.user_id = user_id
self.role = role

def give_feedback(self):
menu_item_id = input("Enter the Menu Item ID: ")
rating = input("Enter your Rating (e.g., 4.5): ")
comment = input("Enter your Comment: ")

endpoint = "/give-feedback"
data = {
"UserID": self.user_id,
"MenuItemID": int(menu_item_id),
"Rating": float(rating),
"Comment": comment,
"RoleName": "Employee"
}

response = self.server_communicator.send_request(endpoint, data)
if response["status"] == "success":
print(response["message"])
else:
print(response["message"])

def view_feedback(self):
endpoint = "/view-feedback"
data = {"role_name": self.role}
response = self.server_communicator.send_request(endpoint, data)

if response["status"] == "success":
print(f"{'FoodName':<35} {'UserName':<25} {'Rating':<10} {'Comment':<70} {'Date':<20}")
for item in response['feedback']:
print(f"{item['FoodName']:<35} {item['UserName']:<25} {item['Rating']:<10} {item['Comment']:<70} {item['Date']:<20}")
else:
print("Failed to fetch feedback: ", response["message"])
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
import json
class MenuManager:
def __init__(self, server_communicator, role, user_id):
self.server_communicator = server_communicator
self.role = role
self.user_id = user_id

def add_menu_item(self):
food_name = input("Enter the food item name : ")
price = input("Enter Price : ")
mealtype = input("Meal Type : ")
mealtypeid = 0
if mealtype.upper() == "BREAKFAST":
mealtypeid = 1
elif mealtype.upper() == "LUNCH":
mealtypeid = 2
elif mealtype.upper() == "DINNER":
mealtypeid = 3

endpoint = "/add-menu-item"
data = {"Name": food_name, "Price": price, "MealTypeID": mealtypeid, "RoleName": "Admin", "AvailabilityStatus": 1}
response = self.server_communicator.send_request(endpoint, data)
if response["status"] == "success":
print(response["message"])
else:
print(response["message"])

def delete_menu_item(self):
item_id = int(input("Please enter food ID : "))
endpoint = "/delete-menu-item"
data = {"RoleName": "Admin", "MenuItemID": item_id}
response = self.server_communicator.send_request(endpoint, data)
if response["status"] == "success":
print(response["message"])
else:
print(response["message"])

def update_menu_item(self):
item_id = int(input("Please enter food ID to Update : "))
endpoint = "/update-menu-item"
new_price = int(input("Enter new price : "))
availability = input("Enter availability (Yes or No)")
if availability.upper() == "YES":
availability = 1
elif availability.upper() == "NO":
availability = 0
else:
print("Invalid Input")
return
data = {"RoleName": "Admin", "MenuItemID": item_id, "Price": new_price, "AvailabilityStatus": availability}
response = self.server_communicator.send_request(endpoint, data)
if response["status"] == "success":
print(response["message"])
else:
print(response["message"])

def update_item_availability(self):
item_id = int(input("Please enter food ID to Update : "))
endpoint = "/update-availability"
availability = input("Enter availability (Yes or No)")
if availability.upper() == "YES":
availability = 1
elif availability.upper() == "NO":
availability = 0
else:
print("Invalid Input")
return
data = {"RoleName": "Chef", "MenuItemID": item_id, "AvailabilityStatus": availability}

response = self.server_communicator.send_request(endpoint, data)
if response["status"] == "success":
print(response["message"])
else:
print(response["message"])

def add_moms_recipe(self):
print("Enter the mom's recipe (press Enter once to finish):")
recipe = []

while True:
line = input()
if line == "":
break
recipe.append(line)

recipe_text = "\n".join(recipe)

print("\nRecipe entered:")
print(recipe_text)

data = {
"UserID": self.user_id,
"Recipe": recipe_text,
"RoleName": self.role
}

endpoint = "/add-moms-recipe"
response = self.server_communicator.send_request(endpoint, data)

if response["status"] == "success":
print(response["message"])
else:
print(response["message"])



Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
class MenuViewer:
def __init__(self, server_communicator, role):
self.server_communicator = server_communicator
self.role = role

def view_menu(self):
endpoint = "/food_menu"
data = {"role_name": self.role}
response = self.server_communicator.send_request(endpoint, data)
print(f"{'ID':<5} {'Name':<35} {'Price':<10} {'AvailabilityStatus':<20}")
for item in response['menu']:
availability = "Yes" if item['AvailabilityStatus'] == 1 else "No"
print(f"{item['ID']:<5} {item['Name']:<35} {item['Price']:<10} {availability:<20}")

def view_low_rating_items(self):
endpoint = "/view-low-rating-items"
data = {"role_name": self.role}
response = self.server_communicator.send_request(endpoint, data)
if response["status"] == "success":
print(f"{'FoodName':<35} {'OverallRating':<10}")
for item in response['low_rating_items']:
print(f"{item['FoodName']:<35} {item['AvgRating']:<10.2f}")
else:
print("Failed to fetch low rating items: ", response["message"])

def view_momsrecipe(self):
endpoint = "/view-moms-recipe"
response = self.server_communicator.send_request(endpoint)
print(f"{'ID':<10} {'UserName':<25} {'Recipe':<70}")
for item in response['feedback']:
print(f"{item['UserID']:<10} {item['UserName']:<25} {item['Recipe']:<70}")
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
class RolloutManager:
def __init__(self, server_communicator, role, user_id):
self.server_communicator = server_communicator
self.role = role
self.user_id = user_id

def get_recomendation(self):
endpoint = "/view-recomendation"
data = {"RoleName": self.role}
response = self.server_communicator.send_request(endpoint, data)
print("\nBreakfast Recommendations\n")
print(f"{'ID':<5} {'Name':<35}")

food_id_for_roll_out = {"Breakfast": [], "Lunch": [], "Dinner": []}
for item in response['recomendations']['Breakfast']:
print(f"{item['ID']:<5} {item['Name']:<35}")

food_id_for_roll_out["Breakfast"] = input("Enter the Two ID for breakfast: ").split()

print("\nLunch Recommendations")
for item in response['recomendations']['Lunch']:
print(f"{item['ID']:<5} {item['Name']:<35}")

food_id_for_roll_out["Lunch"] = input("Enter the ID for Lunch: ").split()

print("\nDinner Recommendations")
for item in response['recomendations']['Dinner']:
print(f"{item['ID']:<5} {item['Name']:<35}")

food_id_for_roll_out["Dinner"] = input("Enter the ID for Dinner: ").split()

return food_id_for_roll_out

def roll_out_menu(self):
food_id_for_roll_out = self.get_recomendation()
endpoint = "/roll-out"
data = {"data": food_id_for_roll_out}
response = self.server_communicator.send_request(endpoint, data)
if response["status"] == "success":
print(response["message"])
else:
print(response["message"])
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import json

class UserPreferenceManager:
def __init__(self, server_communicator, role, user_id):
self.server_communicator = server_communicator
self.role = role
self.user_id = user_id

def update_user_profile(self):
endpoint = "/update-user-profile"
print("updateeeee")
diet_preference= self.get_diet_preference()
spice_level= self.get_spice_level()

cuisine_preference= self.get_cuisine_preference()
sweet_tooth= self.get_sweetness_preference()
data = {
"RoleName": "Employee",
"UserId": self.user_id,
"DietPreference": diet_preference,
"SpiceLevel": spice_level,
"CuisinePreference": cuisine_preference,
"SweetTooth": sweet_tooth
}
print(data)
response = self.server_communicator.send_request(endpoint, data)
if response["status"] == "success":
print(response["message"])
else:
print(response["message"])

def get_diet_preference(self):
while 1:
print("\nPlease select your diet preference:\n1. Vegetarian\n2. Non-Vegetarian\n3. Eggetarian")
spice_level_choice = int(input("Enter choice (1/2/3): "))
if spice_level_choice == 1:
return "Vegetarian"
elif spice_level_choice == 2:
return "Non-Vegetarian"
elif spice_level_choice == 3:
return "Eggetarian"
else:
print("Invalid Input")

def get_spice_level(self):
while 1:
print("\nPlease select your spice level:\n1. High\n2. Medium\n3. Low")
spice_level_choice = int(input("Enter choice (1/2/3): "))
if spice_level_choice == 1:
return "High"
elif spice_level_choice == 2:
return "Medium"
elif spice_level_choice == 3:
return "Low"
else:
print("Invalid Input")

def get_cuisine_preference(self):
while 1:
print("\nWhat do you prefer most?\n1. North Indian\n2. South Indian\n3. Other")
cuisine_preference_choice = int(input("Enter choice (1/2/3): "))
if cuisine_preference_choice == 1:
return "North Indian"
elif cuisine_preference_choice == 2:
return "South Indian"
elif cuisine_preference_choice == 3:
return "Other"
else:
print("Invalid Input")

def get_sweetness_preference(self):
while 1:
print("\nDo you have a sweet tooth?\n1. Yes\n2. No")
sweet_tooth_choice = int(input("Enter choice (1/2): "))
if sweet_tooth_choice == 1:
return 1
elif sweet_tooth_choice == 2:
return 0
else:
print("Invalid Input")

Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
import json

class VotingHandler:
def __init__(self, server_communicator, role, user_id):
self.server_communicator = server_communicator
self.role = role
self.user_id = user_id

def view_voting_items(self):
endpoint = "/voting-items"
data = {"UserID": self.user_id}
response = self.server_communicator.send_request(endpoint, data)
response = response["data"]
voting_items = {"Breakfast": [], "Lunch": [], "Dinner": []}

print("Breakfast Recommendations")
print(f"{'MenuItemID':<10} {'Name':<35}")
for item in response['Breakfast']:
print(f"{item['MenuItemID']:<10} {item['MenuItemName']:<35}")
voting_items['Breakfast'].append(item)

print("Lunch Recommendations")
print(f"{'MenuItemID':<10} {'Name':<35} ")
for item in response['Lunch']:
print(f"{item['MenuItemID']:<10} {item['MenuItemName']:<35} ")
voting_items['Lunch'].append(item)

print("Dinner Recommendations")
print(f"{'MenuItemID':<10} {'Name':<35}")
for item in response['Dinner']:
print(f"{item['MenuItemID']:<10} {item['MenuItemName']:<35} ")
voting_items['Dinner'].append(item)

return voting_items

def vote_for_menu(self):
voting_items = self.view_voting_items()
votes = {}
for meal_type in ["Breakfast", "Lunch", "Dinner"]:
valid_choices = [str(item['MenuItemID']) for item in voting_items[meal_type]]
while True:
menu_item_id = input(f"Enter the ID for {meal_type} ({', '.join(valid_choices)}): ")
if menu_item_id in valid_choices:
votes[meal_type] = menu_item_id
break
else:
print(f"Incorrect choice. Please enter a valid ID for {meal_type} ({', '.join(valid_choices)}).")

endpoint = "/voting"
data = {"employee_id": self.user_id, "data": votes}
response = self.server_communicator.send_request(endpoint, data)
if response["status"] == "success":
print(response["message"])
else:
print(response["message"])

def view_yesterday_voting(self):
endpoint = "/voting-items"
data = {}
response = self.server_communicator.send_request(endpoint, data)
categorized_items = response['data']

for meal_type, items in categorized_items.items():
print(f"\n{meal_type} Recommendations")
print(f"{'MenuItemID':<10} {'Name':<35} {'Votes':<5}")
for item in items:
print(f"{item['MenuItemID']:<10} {item['MenuItemName']:<35} {item['Votes']:<5}")
Loading