From 065834373273778910768bc8ff4a79703125cbd6 Mon Sep 17 00:00:00 2001 From: Ishav Sohal Date: Sun, 17 Dec 2023 23:52:12 -0500 Subject: [PATCH 1/5] fixed recommendations, updated food carbon emissions --- backend/models/energy.py | 18 +++++--- backend/models/food.py | 73 +++++++++++++++++++++----------- backend/models/transportation.py | 34 ++++++++++----- 3 files changed, 85 insertions(+), 40 deletions(-) diff --git a/backend/models/energy.py b/backend/models/energy.py index 6469aa2..bd8ad46 100644 --- a/backend/models/energy.py +++ b/backend/models/energy.py @@ -20,7 +20,6 @@ class EnergyEntry(CARBON_MODEL): electricity: int # measured in kWh province: str household: int - metric_threshold = 200/3 def __init__(self, oid: ObjectId, user_id: ObjectId, carbon_emissions: int, date: Union[str, datetime], heating_oil: int, natural_gas: int, province: str, household: int, electricity: int) -> None: @@ -123,10 +122,10 @@ def from_json(doc: json) -> EnergyEntry: ) def from_energy_entry(energy_entry: EnergyEntry) -> EnergyEntryRecommendation: - submetric_threshold = EnergyEntry.metric_threshold/3 - heating_oil_recommendation = "Heating oil emissions look good!" - natural_gas_recommendation = "Natural gas emissions look good!" - electricity_recommendation = "Electricity emissions look good!" + submetric_threshold = 11 + heating_oil_recommendation = "Looking good!" + natural_gas_recommendation = "Looking good!" + electricity_recommendation = "Looking good!" heating_oil_carbon_emissions = energy_entry.heating_oil * 2.753 natural_gas_carbon_emissions = energy_entry.natural_gas * 1.96 @@ -162,12 +161,21 @@ def from_energy_entry(energy_entry: EnergyEntry) -> EnergyEntryRecommendation: electricity_carbon_emissions = (energy_entry.electricity * 0.84) / energy_entry.household if heating_oil_carbon_emissions > submetric_threshold: + recommendation1 = "" + recommendation2 = "" + recommendation3 = "" heating_oil_recommendation = "Heating oil emissions too high" if natural_gas_carbon_emissions > submetric_threshold: + recommendation1 = "" + recommendation2 = "" + recommendation3 = "" natural_gas_recommendation = "Natural gas emissions too high" if electricity_carbon_emissions > submetric_threshold: + recommendation1 = "Avoid phantom power by unplugging devices you are not actually using (like your chargers or toasters!)" + recommendation2 = "Consider investing in ENERGY STAR certified products" + recommendation3 = "Be conservative by opting to dress up/down instead of turning on the AC/heater." electricity_recommendation = "Electricity emissions too high" return EnergyEntryRecommendation(heating_oil_recommendation, natural_gas_recommendation, electricity_recommendation) diff --git a/backend/models/food.py b/backend/models/food.py index 00ad1cb..51f6154 100644 --- a/backend/models/food.py +++ b/backend/models/food.py @@ -23,7 +23,6 @@ class FoodEntry(CARBON_MODEL): cheese: int milk: int food_waste: int - metric_threshold = 200/3 # food measurements in # of 100g servings def __init__(self, oid: ObjectId, user_id: ObjectId, carbon_emissions: int, date: Union[str, datetime], @@ -73,14 +72,14 @@ def from_json(doc: json) -> FoodEntry: ) def calculate_carbon_emissions(self) -> float: - beef_carbon_emissions = self.beef * 15.5 - lamb_carbon_emissions = self.lamb * 5.84 - pork_carbon_emissions = self.pork * 2.4 - chicken_carbon_emissions = self.chicken * 1.8 - fish_carbon_emissions = self.fish * 1.8 - cheese_carbon_emissions = self.cheese * 2.79 + beef_carbon_emissions = self.beef * 9.9 + lamb_carbon_emissions = self.lamb * 3.9 + pork_carbon_emissions = self.pork * 1.2 + chicken_carbon_emissions = self.chicken * 0.98 + fish_carbon_emissions = self.fish * 1.3 + cheese_carbon_emissions = self.cheese * 2.3 milk_carbon_emissions = self.milk * 0.8 - food_waste_carbon_emissions = self.food_waste * 0.25 + food_waste_carbon_emissions = self.food_waste * 0.0025 return sum([beef_carbon_emissions, lamb_carbon_emissions, pork_carbon_emissions, chicken_carbon_emissions, fish_carbon_emissions, cheese_carbon_emissions, milk_carbon_emissions, food_waste_carbon_emissions]) @@ -140,47 +139,71 @@ def from_json(doc: json) -> FoodEntry: @staticmethod def from_food_entry(food_entry: FoodEntry) -> FoodEntryRecomendation: - submetric_threshold = FoodEntry.metric_threshold/8 - beef_recommendation = "Beef emissions look good!" - lamb_recommendation = "Lamb emissions look good!" - pork_recommendation = "Pork emissions look good!" - chicken_recommendation = "Chicken emissions look good!" - fish_recommendation = "Fish emissions look good!" - cheese_recommendation = "Cheese emissions look good!" - milk_recommendation = "Milk emissions look good!" - food_waste_recommendation = "Food waste emissions look good!" - - beef_carbon_emissions = food_entry.beef * 15.5 - lamb_carbon_emissions = food_entry.lamb * 5.84 - pork_carbon_emissions = food_entry.pork * 2.4 - chicken_carbon_emissions = food_entry.chicken * 1.8 - fish_carbon_emissions = food_entry.fish * 1.8 - cheese_carbon_emissions = food_entry.cheese * 2.79 + submetric_threshold = 11 + beef_recommendation = "Looking good!" + lamb_recommendation = "Looking good!" + pork_recommendation = "Looking good!" + chicken_recommendation = "Looking good!" + fish_recommendation = "Looking good!" + cheese_recommendation = "Looking good!" + milk_recommendation = "Looking good!" + food_waste_recommendation = "Looking good!" + + beef_carbon_emissions = food_entry.beef * 9.9 + lamb_carbon_emissions = food_entry.lamb * 3.9 + pork_carbon_emissions = food_entry.pork * 1.2 + chicken_carbon_emissions = food_entry.chicken * 0.98 + fish_carbon_emissions = food_entry.fish * 1.3 + cheese_carbon_emissions = food_entry.cheese * 2.3 milk_carbon_emissions = food_entry.milk * 0.8 - food_waste_carbon_emissions = food_entry.food_waste * 0.25 + food_waste_carbon_emissions = food_entry.food_waste * 0.0025 if beef_carbon_emissions > submetric_threshold: + recommendation1 = "Try opting for white meat (fish, chicken, etc.)" + recommendation2 = "Consider alternate forms of protein (chicken, fish, eggs, etc.)" + recommendation3 = "Try opting for low-impact plant protein sources like peas, legumes and tofu" beef_recommendation = "Beef emissions too high" if lamb_carbon_emissions > submetric_threshold: + recommendation1 = "Try opting for white meat (fish, chicken, etc.)" + recommendation2 = "Consider alternate forms of protein (chicken, fish, eggs, etc.)" + recommendation3 = "Try opting for low-impact plant protein sources like peas, legumes and tofu" lamb_recommendation = "Lamb emissions too high" if pork_carbon_emissions > submetric_threshold: + recommendation1 = "Try opting for white meat (fish, chicken, etc.)" + recommendation2 = "Consider alternate forms of protein (chicken, fish, eggs, etc.)" + recommendation3 = "Try opting for low-impact plant protein sources like peas, legumes and tofu" pork_recommendation = "Pork emissions too high" if chicken_carbon_emissions > submetric_threshold: + recommendation1 = "Try opting for low-impact plant protein sources (peas, legumes and tofu)" + recommendation2 = "Consider alternate forms of protein (eggs, whey, etc.)" + recommendation3 = "Consider opting for seitan" chicken_recommendation = "Chicken emissions too high" if fish_carbon_emissions > submetric_threshold: + recommendation1 = "Consider alternate forms of protein (chicken, eggs, whey, etc.)" + recommendation2 = "Try opting for low-impact plant protein sources (peas, legumes and tofu)" + recommendation3 = "" fish_recommendation = "Fish emissions too high" if cheese_carbon_emissions > submetric_threshold: + recommendation1 = "Consider alternatives to cheese spreads (hummus, guacamole, etc.)" + recommendation2 = "Consider plant-based cheeses (made from nuts, soy, or tapioca)" + recommendation3 = "Consider alternatives to cheese (tofu, tempeh, etc.)" cheese_recommendation = "Cheese emissions too high" if milk_carbon_emissions > submetric_threshold: + recommendation1 = "Consider opting for almond milk" + recommendation2 = "Consider opting for soy milk" + recommendation3 = "Consider opting for oat milk" milk_recommendation = "Milk emissions too high" if food_waste_carbon_emissions > submetric_threshold: + recommendation1 = "Meal planning! Create a realistic shopping list so you only buy what you need" + recommendation2 = "Carefully assess the expiry date of all food items that you purchase" + recommendation3 = "First in First out (FIFO)! Use older ingredients first before they expire." food_waste_recommendation = "Food waste emissions too high" return FoodEntryRecomendation(beef_recommendation, lamb_recommendation, pork_recommendation, chicken_recommendation, diff --git a/backend/models/transportation.py b/backend/models/transportation.py index 1ba7886..7990415 100644 --- a/backend/models/transportation.py +++ b/backend/models/transportation.py @@ -4,7 +4,7 @@ from __future__ import annotations from typing import Union -import json +import json, random from datetime import datetime from models.abstract_carbon_model import CARBON_MODEL from models.abstract_db_model import DB_MODEL @@ -22,7 +22,6 @@ class TransportationEntry(CARBON_MODEL): electric_car: int gasoline_car: int fuel_efficieny: float - metric_threshold = 200/3 def __init__(self, oid: ObjectId, user_id: ObjectId, carbon_emissions: int, date: Union[str, datetime], bus: int, train: int, motorbike: int, electric_car: int, gasoline_car: int, fuel_efficiency: float) -> None: @@ -82,7 +81,6 @@ class TransportationEntryRecommendation(DB_MODEL): motorbike_recommendation: str electric_car_recommendation: str gasoline_car_recommendation: str - metric_threshold: int def __init__(self, bus_recommendation: str, train_recommendation: str, motorbike_recommendation: str, electric_car_recommendation: str, gasoline_car_recommendation: str) -> None: @@ -114,12 +112,12 @@ def from_json(doc: json) -> TransportationEntry: @staticmethod def from_transportation_entry(transportation_entry: TransportationEntry) -> TransportationEntryRecommendation: - submetric_threshold = TransportationEntry.metric_threshold/5 - bus_recommendation = "Bus emissions look good!" - train_recommendation = "Train emissions look good!" - motorbike_recommendation = "Motorbike emissions look good!" - electric_car_recommendation = "Electric car emissions look good!" - gasoline_car_recommendation = "Gasoline emissions look good!" + submetric_threshold = 11 + bus_recommendation = "Looking good!" + train_recommendation = "Looking good!" + motorbike_recommendation = "Looking good!" + electric_car_recommendation = "Looking good!" + gasoline_car_recommendation = "Looking good!" bus_carbon_emissions = transportation_entry.bus * 0.103 train_carbon_emissions = transportation_entry.train * 0.037 @@ -128,18 +126,34 @@ def from_transportation_entry(transportation_entry: TransportationEntry) -> Tran gasoline_car_carbon_emissions = ((transportation_entry.fuel_efficiency * 2.3)/100) * transportation_entry.gasoline_car if bus_carbon_emissions > submetric_threshold: - bus_recommendation = "Bus emissions too high" + recommendation1 = "Consider walking or biking short distances" + recommendation2 = "" + recommendation3 = "" + recommendations = [recommendation1, recommendation2, recommendation3] + bus_recommendation = random.choice(recommendations) if train_carbon_emissions > submetric_threshold: + recommendation1 = "Consider walking or biking short distances" + recommendation2 = "Consider local public transport when possible (buses, trams)" + recommendation3 = "" train_recommendation = "Train emissions too high" if motorbike_carbon_emissions > submetric_threshold: + recommendation1 = "Consider walking or biking short distances" + recommendation2 = "Consider taking public transportation more often" + recommendation3 = "Consider carpooling when possible" motorbike_recommendation = "Motorbike emissions too high" if electric_car_carbon_emissions > submetric_threshold: + recommendation1 = "Consider taking public transportation more often" + recommendation2 = "Consider carpooling when possible" + recommendation3 = "Consider walking or biking short distances" electric_car_recommendation = "Electric car emissions too high" if gasoline_car_carbon_emissions > submetric_threshold: + recommendation1 = "Consider taking public transportation more often" + recommendation2 = "Consider carpooling when possible" + recommendation3 = "Consider walking or biking short distances" gasoline_car_recommendation = "Gasoline car emissions too high" From 7f698822cf6c4c6522a52423aee1560f37674ba4 Mon Sep 17 00:00:00 2001 From: Ishav Sohal Date: Mon, 18 Dec 2023 00:03:35 -0500 Subject: [PATCH 2/5] randomly chose recommendation for each submetric --- backend/models/energy.py | 26 +++++++++++++++----------- backend/models/food.py | 25 +++++++++++++++++-------- backend/models/transportation.py | 22 +++++++++++++--------- 3 files changed, 45 insertions(+), 28 deletions(-) diff --git a/backend/models/energy.py b/backend/models/energy.py index bd8ad46..eb6d9e8 100644 --- a/backend/models/energy.py +++ b/backend/models/energy.py @@ -3,6 +3,7 @@ """ from __future__ import annotations +import random from typing import Union import json from datetime import datetime @@ -161,22 +162,25 @@ def from_energy_entry(energy_entry: EnergyEntry) -> EnergyEntryRecommendation: electricity_carbon_emissions = (energy_entry.electricity * 0.84) / energy_entry.household if heating_oil_carbon_emissions > submetric_threshold: - recommendation1 = "" - recommendation2 = "" - recommendation3 = "" - heating_oil_recommendation = "Heating oil emissions too high" + recommendation1 = "Be conservative by opting to dress up/down instead of turning on the AC/heater." + recommendation2 = "Consider investing in ENERGY STAR certified products" + recommendation3 = "Consider improving your home insulation, if applicable" + recommendations = [recommendation1, recommendation2, recommendation3] + heating_oil_recommendation = random.choice(recommendations) if natural_gas_carbon_emissions > submetric_threshold: - recommendation1 = "" - recommendation2 = "" - recommendation3 = "" - natural_gas_recommendation = "Natural gas emissions too high" + recommendation1 = "Consider replacing natural gas heating systems with electic alternatives" + recommendation2 = "Consider investing in ENERGY STAR certified products" + recommendation3 = "Consider improving your home insulation, if applicable" + recommendations = [recommendation1, recommendation2, recommendation3] + natural_gas_recommendation = random.choice(recommendations) if electricity_carbon_emissions > submetric_threshold: - recommendation1 = "Avoid phantom power by unplugging devices you are not actually using (like your chargers or toasters!)" + recommendation1 = "Avoid phantom power by unplugging devices you are not actually using (ex.chargers, toasters, etc.)" recommendation2 = "Consider investing in ENERGY STAR certified products" - recommendation3 = "Be conservative by opting to dress up/down instead of turning on the AC/heater." - electricity_recommendation = "Electricity emissions too high" + recommendation3 = "Be conservative by opting to dress up/down instead of turning on the AC/heater" + recommendations = [recommendation1, recommendation2, recommendation3] + electricity_recommendation = random.choice(recommendations) return EnergyEntryRecommendation(heating_oil_recommendation, natural_gas_recommendation, electricity_recommendation) diff --git a/backend/models/food.py b/backend/models/food.py index 51f6154..3ffced2 100644 --- a/backend/models/food.py +++ b/backend/models/food.py @@ -3,6 +3,7 @@ """ from __future__ import annotations +import random from typing import Union import json from datetime import datetime @@ -162,49 +163,57 @@ def from_food_entry(food_entry: FoodEntry) -> FoodEntryRecomendation: recommendation1 = "Try opting for white meat (fish, chicken, etc.)" recommendation2 = "Consider alternate forms of protein (chicken, fish, eggs, etc.)" recommendation3 = "Try opting for low-impact plant protein sources like peas, legumes and tofu" - beef_recommendation = "Beef emissions too high" + recommendations = [recommendation1, recommendation2, recommendation3] + beef_recommendation = random.choice(recommendations) if lamb_carbon_emissions > submetric_threshold: recommendation1 = "Try opting for white meat (fish, chicken, etc.)" recommendation2 = "Consider alternate forms of protein (chicken, fish, eggs, etc.)" recommendation3 = "Try opting for low-impact plant protein sources like peas, legumes and tofu" - lamb_recommendation = "Lamb emissions too high" + recommendations = [recommendation1, recommendation2, recommendation3] + lamb_recommendation = random.choice(recommendations) if pork_carbon_emissions > submetric_threshold: recommendation1 = "Try opting for white meat (fish, chicken, etc.)" recommendation2 = "Consider alternate forms of protein (chicken, fish, eggs, etc.)" recommendation3 = "Try opting for low-impact plant protein sources like peas, legumes and tofu" - pork_recommendation = "Pork emissions too high" + recommendations = [recommendation1, recommendation2, recommendation3] + pork_recommendation = random.choice(recommendations) if chicken_carbon_emissions > submetric_threshold: recommendation1 = "Try opting for low-impact plant protein sources (peas, legumes and tofu)" recommendation2 = "Consider alternate forms of protein (eggs, whey, etc.)" recommendation3 = "Consider opting for seitan" - chicken_recommendation = "Chicken emissions too high" + recommendations = [recommendation1, recommendation2, recommendation3] + chicken_recommendation = random.choice(recommendations) if fish_carbon_emissions > submetric_threshold: recommendation1 = "Consider alternate forms of protein (chicken, eggs, whey, etc.)" recommendation2 = "Try opting for low-impact plant protein sources (peas, legumes and tofu)" recommendation3 = "" - fish_recommendation = "Fish emissions too high" + recommendations = [recommendation1, recommendation2, recommendation3] + fish_recommendation = random.choice(recommendations) if cheese_carbon_emissions > submetric_threshold: recommendation1 = "Consider alternatives to cheese spreads (hummus, guacamole, etc.)" recommendation2 = "Consider plant-based cheeses (made from nuts, soy, or tapioca)" recommendation3 = "Consider alternatives to cheese (tofu, tempeh, etc.)" - cheese_recommendation = "Cheese emissions too high" + recommendations = [recommendation1, recommendation2, recommendation3] + cheese_recommendation = random.choice(recommendations) if milk_carbon_emissions > submetric_threshold: recommendation1 = "Consider opting for almond milk" recommendation2 = "Consider opting for soy milk" recommendation3 = "Consider opting for oat milk" - milk_recommendation = "Milk emissions too high" + recommendations = [recommendation1, recommendation2, recommendation3] + milk_recommendation = random.choice(recommendations) if food_waste_carbon_emissions > submetric_threshold: recommendation1 = "Meal planning! Create a realistic shopping list so you only buy what you need" recommendation2 = "Carefully assess the expiry date of all food items that you purchase" recommendation3 = "First in First out (FIFO)! Use older ingredients first before they expire." - food_waste_recommendation = "Food waste emissions too high" + recommendations = [recommendation1, recommendation2, recommendation3] + food_waste_recommendation = random.choice(recommendations) return FoodEntryRecomendation(beef_recommendation, lamb_recommendation, pork_recommendation, chicken_recommendation, fish_recommendation, cheese_recommendation, milk_recommendation, food_waste_recommendation) diff --git a/backend/models/transportation.py b/backend/models/transportation.py index 7990415..63d13b3 100644 --- a/backend/models/transportation.py +++ b/backend/models/transportation.py @@ -126,35 +126,39 @@ def from_transportation_entry(transportation_entry: TransportationEntry) -> Tran gasoline_car_carbon_emissions = ((transportation_entry.fuel_efficiency * 2.3)/100) * transportation_entry.gasoline_car if bus_carbon_emissions > submetric_threshold: - recommendation1 = "Consider walking or biking short distances" - recommendation2 = "" - recommendation3 = "" + recommendation1 = "Consider walking short distances" + recommendation2 = "Consider riding an E-Bike or E-scooter when possible" + recommendation3 = "Consider riding a bicycle when travelling short distances" recommendations = [recommendation1, recommendation2, recommendation3] bus_recommendation = random.choice(recommendations) if train_carbon_emissions > submetric_threshold: - recommendation1 = "Consider walking or biking short distances" + recommendation1 = "Consider walking short distances" recommendation2 = "Consider local public transport when possible (buses, trams)" - recommendation3 = "" - train_recommendation = "Train emissions too high" + recommendation3 = "Consider riding a bicycle, E-Bike or E-scooter when travelling short distances" + recommendations = [recommendation1, recommendation2, recommendation3] + train_recommendation = random.choice(recommendations) if motorbike_carbon_emissions > submetric_threshold: recommendation1 = "Consider walking or biking short distances" recommendation2 = "Consider taking public transportation more often" recommendation3 = "Consider carpooling when possible" - motorbike_recommendation = "Motorbike emissions too high" + recommendations = [recommendation1, recommendation2, recommendation3] + motorbike_recommendation = random.choice(recommendations) if electric_car_carbon_emissions > submetric_threshold: recommendation1 = "Consider taking public transportation more often" recommendation2 = "Consider carpooling when possible" recommendation3 = "Consider walking or biking short distances" - electric_car_recommendation = "Electric car emissions too high" + recommendations = [recommendation1, recommendation2, recommendation3] + electric_car_recommendation = random.choice(recommendations) if gasoline_car_carbon_emissions > submetric_threshold: recommendation1 = "Consider taking public transportation more often" recommendation2 = "Consider carpooling when possible" recommendation3 = "Consider walking or biking short distances" - gasoline_car_recommendation = "Gasoline car emissions too high" + recommendations = [recommendation1, recommendation2, recommendation3] + gasoline_car_recommendation = random.choice(recommendations) return TransportationEntryRecommendation(bus_recommendation, train_recommendation, From 630c0da7725f01543e0ebc4c6e1785df564492ce Mon Sep 17 00:00:00 2001 From: Ishav Sohal Date: Mon, 18 Dec 2023 00:07:27 -0500 Subject: [PATCH 3/5] fixed linting --- backend/models/transportation.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/models/transportation.py b/backend/models/transportation.py index 63d13b3..63b701c 100644 --- a/backend/models/transportation.py +++ b/backend/models/transportation.py @@ -4,7 +4,8 @@ from __future__ import annotations from typing import Union -import json, random +import json +import random from datetime import datetime from models.abstract_carbon_model import CARBON_MODEL from models.abstract_db_model import DB_MODEL From ad02ca6a4984b27a65d8f754f013e9ed31ab9b7a Mon Sep 17 00:00:00 2001 From: Ishav Sohal Date: Mon, 18 Dec 2023 00:23:21 -0500 Subject: [PATCH 4/5] fixed spelling error --- backend/models/food.py | 4 ++-- backend/routes/food.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/models/food.py b/backend/models/food.py index 3ffced2..3a3f161 100644 --- a/backend/models/food.py +++ b/backend/models/food.py @@ -89,7 +89,7 @@ def __repr__(self) -> str: return f'Food ID: {self.oid.__str__()}' -class FoodEntryRecomendation(CARBON_MODEL): +class FoodEntryRecommendation(CARBON_MODEL): beef_recommendation: str lamb_recommendation: str pork_recommendation: str @@ -139,7 +139,7 @@ def from_json(doc: json) -> FoodEntry: @staticmethod - def from_food_entry(food_entry: FoodEntry) -> FoodEntryRecomendation: + def from_food_entry(food_entry: FoodEntry) -> FoodEntryRecommendation: submetric_threshold = 11 beef_recommendation = "Looking good!" lamb_recommendation = "Looking good!" diff --git a/backend/routes/food.py b/backend/routes/food.py index dd71c13..b9ade57 100644 --- a/backend/routes/food.py +++ b/backend/routes/food.py @@ -5,7 +5,7 @@ from bson import ObjectId from flask import Blueprint, Response, abort, jsonify, request -from models.food import FoodEntry, FoodEntryRecomendation +from models.food import FoodEntry, FoodEntryRecommendation from mongodb_api.carbon_track_db import CarbonTrackDB from routes import carbon_auth from utils.FirebaseAPI import FirebaseAPI @@ -111,7 +111,7 @@ def get_food_recommendation_for_today() -> Response: return get_food_metric_for_today() else: item = FoodEntry.from_json(item) - food_recommendation = FoodEntryRecomendation.from_food_entry(item).to_json() + food_recommendation = FoodEntryRecommendation.from_food_entry(item).to_json() return jsonify({'food_recommendation': food_recommendation}) except CarbonTrackError as e: abort(code=400, description=f"{e}") \ No newline at end of file From efcb8e743ec12d8809ab82c904b3e0ff16c8bb2c Mon Sep 17 00:00:00 2001 From: Ishav Sohal Date: Mon, 18 Dec 2023 00:44:11 -0500 Subject: [PATCH 5/5] spelling error --- backend/models/energy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/models/energy.py b/backend/models/energy.py index 0e90202..e8cebb1 100644 --- a/backend/models/energy.py +++ b/backend/models/energy.py @@ -173,7 +173,7 @@ def from_energy_entry(energy_entry: EnergyEntry) -> EnergyEntryRecommendation: heating_oil_recommendation = random.choice(recommendations) if natural_gas_carbon_emissions > submetric_threshold: - recommendation1 = "Consider replacing natural gas heating systems with electic alternatives" + recommendation1 = "Consider replacing natural gas heating systems with electric alternatives" recommendation2 = "Consider investing in ENERGY STAR certified products" recommendation3 = "Consider improving your home insulation, if applicable" recommendations = [recommendation1, recommendation2, recommendation3]