diff --git a/base.Dockerfile b/base.Dockerfile index 0569307..43f727a 100644 --- a/base.Dockerfile +++ b/base.Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.10 as real_base_image +FROM python:3.10 as pool_base_image WORKDIR /pool_data diff --git a/compose_up_cmd.sh b/compose_up_cmd.sh index 8748503..ffe3cc7 100755 --- a/compose_up_cmd.sh +++ b/compose_up_cmd.sh @@ -2,6 +2,6 @@ docker-compose rm -f docker system prune -f docker volume prune -f -docker build -t real_base_image -f base.Dockerfile . +docker build -t pool_base_image -f base.Dockerfile . docker-compose up --remove-orphans --build -d -docker logs -f realtracker_web +docker logs -f pool_data_web diff --git a/docker-compose.yml b/docker-compose.yml index cb4ee19..eeb547c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,13 +2,13 @@ version: '3.1' services: - realtracker_web: - container_name: realtracker_web + pool_data_web: + container_name: pool_data_web build: context: . dockerfile: flask.Dockerfile volumes: - - ./src/flask:/realestate_tracker/src/flask + - ./src/flask:/pool_data_web/src/flask ports: - "80:80" - "5000:5000" diff --git a/flask.Dockerfile b/flask.Dockerfile index 652d5b0..665926d 100644 --- a/flask.Dockerfile +++ b/flask.Dockerfile @@ -1,8 +1,9 @@ -FROM real_base_image as flask +FROM pool_base_image as flask COPY requirements.txt . ENV FLASK_ENV development ENV FLASK_DEBUG 1 -#ENTRYPOINT ["python", "src/flask/realtracker_web.py"] + +ENTRYPOINT ["flask", "--app", "/pool_data_web/src/flask/pool_data", "run", "--host=0.0.0.0"] diff --git a/src/flask/mongo/build_db.py b/src/flask/mongo/build_db.py index 0ce7620..108a4ff 100644 --- a/src/flask/mongo/build_db.py +++ b/src/flask/mongo/build_db.py @@ -14,16 +14,15 @@ class pool_data: #already created from here #we can get self.db.real_db etc self.db = db_conn() - - def record_exists(self, address): + def record_exists(self, date, test_user): """ This function will accept an address if it find that address in the database it will return True and set set the existing_record variable of the class to the queried record """ - query = { "address" : f"{address}" } - record = self.db.real_db.find_one(query) + query = { "date" : f"{date}", "test_user": f"{test_user}"} + record = self.db.pool_db.find_one(query) if record: self.existing_record = record return True @@ -31,20 +30,18 @@ class pool_data: return False - def create_re_record(self, address, rooms, pool_link, like_out_of_five, - pool = "", requested_price="", user_price="", - suburb="", actual_price=""): + def create_re_record(self, ph, total_chlorine, free_chlorine, alkalinity, + date, test_user, salt=""): """ create_re_record creates a whole new record - takes the required 8 inputs - 1. address - 2. rooms - 3. pool - 4. realeastate link - 5. like out of 5 - 6. requested_price - THe price the current owner wants if known - 7. user_price - what does the user think the price of hte house should be/what offer they've put down - 8. actual_price - after sold what price the house went for + takes the required 7 inputs + 1. ph + 2. total_chlorine + 3. free_chlorine + 4. alkalinity + 5. date + 6. test_user + 7. salt (optional) It will autogenerate the id string this string will be automatically selected on view in future @@ -52,17 +49,15 @@ class pool_data: key = self.create_id() insert_record = { "_id" : f"{key}", - "address": f"{address}", - "rooms": f"{rooms}", - "pool": f"{pool}", - "pool_link": f"{pool_link}", - "like_out_of_five": f"{like_out_of_five}", - "requested_price": f"{requested_price}", - "user_price": f"{user_price}", - "actual_price": f"{actual_price}", - "suburb" : f"{suburb}" + "ph": f"{ph}", + "total_chlorine": f"{total_chlorine}", + "free_chlorine": f"{free_chlorine}", + "alkalinity": f"{alkalinity}", + "salt": f"{salt}", + "date": f"{date}", + "test_user": f"{test_user}" } - self.db.real_db.insert_one(insert_record) + self.db.pool_db.insert_one(insert_record) def update_re_record(self, id, field, value): """ @@ -74,7 +69,7 @@ class pool_data: query = { "_id": f"{id}"} update_val = {"$set": {f"{field}": f"{value}" }} - self.db.real_db.update_one(query, update_val) + self.db.pool_db.update_one(query, update_val) def create_id(self): alphabet = string.ascii_letters + string.digits diff --git a/src/flask/mongo/get_conn.py b/src/flask/mongo/get_conn.py index 5766f99..1d67637 100644 --- a/src/flask/mongo/get_conn.py +++ b/src/flask/mongo/get_conn.py @@ -7,13 +7,13 @@ class db_conn: self.db_pass = os.getenv('MONGO_PASS') self.db_host = os.getenv('MONGO_HOST') self.client = self.get_client() - self.db = self.client['realestate_db'] - self.real_db = self.db['realestate_data'] + self.db = self.client['pool_db'] + self.pool_db = self.db['pool_data'] self.users = self.db['users'] self.inspections = self.db['inspections_db'] def get_client(self): - CONNECTION_STRING = f"mongodb://{self.db_user}:{self.db_pass}@{self.db_host}/realestate_db?authSource=admin" + CONNECTION_STRING = f"mongodb://{self.db_user}:{self.db_pass}@{self.db_host}/pool_db?authSource=admin" return MongoClient(CONNECTION_STRING) diff --git a/src/flask/mongo/query_db.py b/src/flask/mongo/query_db.py index 4030e8b..c8aa476 100644 --- a/src/flask/mongo/query_db.py +++ b/src/flask/mongo/query_db.py @@ -3,7 +3,7 @@ import secrets from mongo.get_conn import db_conn -class realestate_query: +class pool_query: """ This class will allow us to interact with our data to interact @@ -15,14 +15,14 @@ class realestate_query: #we can get self.db.real_db etc self.db = db_conn() - def record_exists(self, address): + def record_exists(self, test_user, date): """ This function will accept an address if it find that address in the database it will return True and set set the existing_record variable of the class to the queried record """ - query = { "address" : f"{address}" } + query = { "test_user" : f"{test_user}", "date" : f"{date}"} record = self.db.real_db.find_one(query) if record: self.existing_record = record @@ -30,14 +30,14 @@ class realestate_query: else: return False - def get_top(self, num_limit): + def get_top(self, num_limit, value_field): """ This function will return the - top n records based on like_out_of_five + last n records of the chosen value field It will take the number of records you want to return as a parameter """ - records = self.db.real_db.find({}, {"address": 1, "_id": 0, "realestate_link": 1, "user_price": 1}).sort("like_out_of_five", -1).limit(num_limit) + records = self.db.pool_db.find({}, {"test_user": 1, "_id": 0, "date": 1, f"{value_field}": 1}).sort("date", -1).limit(num_limit) return records def user_check(self, username, password): diff --git a/src/flask/pool_data.py b/src/flask/pool_data.py index 7c26b9d..2f9ebe6 100644 --- a/src/flask/pool_data.py +++ b/src/flask/pool_data.py @@ -21,31 +21,28 @@ def index(): @app.route("/updater", methods=["GET", "POST"]) def updater(): query_db = pool_database_query.pool_query() - query = query_db.get_top(10) + query = query_db.get_top(10, "ph") if request.method == "POST": database = pool_database.pool_data() new_record = { - "address": f'{request.form["address"]}', - "rooms" : f'{request.form["rooms"]}', - "real_estate_link": f'{request.form["real_estate_link"]}', - "like_out_of_five": f'{request.form["like_out_of_five"]}', - "pool": f'{request.form["pool"]}', - "requested_price": f'{request.form["requested_price"]}', - "user_price": f'{request.form["user_price"]}', - "actual_price": f'{request.form["actual_price"]}', - "suburb" : f'{request.form["suburb"]}' + "ph": f'{request.form["ph"]}', + "total_chlorine" : f'{request.form["total_chlorine"]}', + "free_chlorine": f'{request.form["free_chlorine"]}', + "alkalinity": f'{request.form["alkalinity"]}', + "salt": f'{request.form["salt"]}', + "date": f'{request.form["date"]}', + "test_user": f'{request.form["test_user"]}', } - if database.record_exists(new_record["address"]): + if database.record_exists(new_record["date"], new_record["test_user"]): for field in database.existing_record: for new_field in new_record: if field == new_field: if database.existing_record[field] != new_record[field]: database.update_re_record(database.existing_record["_id"], field, new_record[field]) else: - database.create_re_record(new_record["address"], new_record["rooms"], new_record["real_estate_link"], - new_record["like_out_of_five"], new_record["pool"], new_record["requested_price"], - new_record["user_price"], new_record["actual_price"], new_record["suburb"]) + database.create_re_record(new_record["ph"], new_record["total_chlorine"], new_record["free_chlorine"], + new_record["alkalinity"], new_record["date"], new_record["test_user"], new_record["salt"]) return render_template("updater.html", list=query) @@ -56,21 +53,21 @@ def updater(): def pool_data_update(): database = pool_database.pool_data() new_record = request.json - if database.record_exists(new_record["address"]): + if database.record_exists(new_record["date"], new_record["test_user"]): for field in database.existing_record: for new_field in new_record: if field == new_field: if database.existing_record[field] != new_record[field]: database.update_re_record(database.existing_record["_id"], field, new_record[field]) else: - database.create_re_record(new_record["address"], new_record["rooms"], new_record["real_estate_link"], - new_record["like_out_of_five"], new_record["pool"], new_record["requested_price"], - new_record["user_price"], new_record["actual_price"]) + database.create_re_record(new_record["ph"], new_record["total_chlorine"], new_record["free_chlorine"], + new_record["alkalinity"], new_record["date"], new_record["test_user"], new_record["salt"]) -@app.route("/pool_top/") + +@app.route("/pool_top//") def user_detail(id): query_db = pool_database_query.pool_query() - query = query_db.get_top(return_number) + query = query_db.get_top(return_number, field) return jsonify([row.to_json() for row in query]) if __name__ == '__main__': diff --git a/src/flask/templates/index.html b/src/flask/templates/index.html index ab0ef99..95490ec 100644 --- a/src/flask/templates/index.html +++ b/src/flask/templates/index.html @@ -1,5 +1,5 @@
-

Login to Realestate Tracker

+

Login to Pool Data Tracker

{% if try_again %}

Login Failed Please try Again

{% endif %} diff --git a/src/flask/templates/updater.html b/src/flask/templates/updater.html index 5106825..a36d46c 100644 --- a/src/flask/templates/updater.html +++ b/src/flask/templates/updater.html @@ -7,40 +7,32 @@
- -

+ +

- -

+ +

- -

+ +

- -

+ +

- -

+ +

- -

+ +

- -

-
-
- -

-
-
- -

+ +