diff --git a/.vscode/launch.json b/.vscode/launch.json index d0a3a7d..129b229 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -10,13 +10,13 @@ "request": "launch", "module": "flask", "env": { - "FLASK_APP": "BreCal", + "FLASK_APP": "src/server/BreCal", "FLASK_DEBUG": "1" }, "args": [ - "run", - "--no-debugger", - "--no-reload" + "run" //, +// "--no-debugger", + //"--no-reload" ], "jinja": true, "justMyCode": true diff --git a/README.md b/README.md index ea15ea3..2fb0a6d 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,21 @@ ___ Projekt zur verbesserten Kommunikation der maritimen Partner bei Schiffsanläufen in Bremen. -## Requirements +## Anforderungen + +## Architektur + +Die Architektur besteht aus einer Datenbank und einem in Python implementierten Backend, das eine API zu Verfügung stellt. Diese API ist als OpenAPI 3.0 spezifiziert. +Die Anwendung selbst kommuniziert nur über diese API mit der Datenbank. Es sind damit unterschiedliche Anwendungsplattformen denkbar, etwa eine Web-, Mobile- oder Windows Desktop Anwendung. +In dieser [Folie](docs/Architektur.pptx) ist ein Bild / Überblick enthalten. + +Ein erster Gedanke des Datenbank-Layouts sieht folgendermaßen aus: +![image](docs/datenbank.jpeg) + +## Entwicklung + +### Postman -## Development Zum Debuggen der Flask App verwende ich dieses Tutorial: https://code.visualstudio.com/docs/python/tutorial-flask#_create-a-project-environment-for-the-flask-tutorial diff --git a/docs/datenbank.jpeg b/docs/datenbank.jpeg new file mode 100644 index 0000000..52658c4 Binary files /dev/null and b/docs/datenbank.jpeg differ diff --git a/src/server/BreCal/__init__.py b/src/server/BreCal/__init__.py index 5a358da..fab50e6 100644 --- a/src/server/BreCal/__init__.py +++ b/src/server/BreCal/__init__.py @@ -4,6 +4,9 @@ import os from .api import shipcalls from .api import verify +from .api import participant +from .api import times +from .api import notifications def create_app(test_config=None): @@ -25,5 +28,8 @@ def create_app(test_config=None): # Add blueprints app.register_blueprint(shipcalls.bp) app.register_blueprint(verify.bp) + app.register_blueprint(participant.bp) + app.register_blueprint(times.bp) + app.register_blueprint(notifications.bp) return app diff --git a/src/server/BreCal/impl/participant.py b/src/server/BreCal/impl/participant.py index 1091ce5..208a93d 100644 --- a/src/server/BreCal/impl/participant.py +++ b/src/server/BreCal/impl/participant.py @@ -1,3 +1,4 @@ +import sys import json import mariadb @@ -8,13 +9,19 @@ def GetParticipant(options): """ - conn = mariadb.connect(host="localhost", user="ds", password="kle1nes") + try: + conn = mariadb.connect(host="lager", user="ds", password="Gurkensalat48", database="bremen_calling") + except mariadb.Error as e: + print(f"Error connecting to the database: {e}") + sys.exit(1) cur = conn.cursor() - query = "SELECT p.id, p.name, p.street, p.postal_code, p.city, p.flags FROM participant p INNER JOIN user u WHERE u.participant_id = p.id AND u.id = {id} " + id = options["user_id"] + query = "SELECT p.id, p.name, p.street, p.postal_code, p.city, p.flags FROM participant p INNER JOIN user u WHERE u.participant_id = p.id AND u.id = %d " + data = [id] + cur.execute(query, data) - cur.execute(query) for (id, name, street, postal_code, city, flags) in cur: @@ -22,12 +29,12 @@ def GetParticipant(options): # All the parameters are present in the options argument return json.dumps({ - "city": city, "id": id, + "city": city, "name": name, "postal code": postal_code, "street": street, }), 200 - + return json.dumps([]), 200