diff --git a/app/package-lock.json b/app/package-lock.json index 0c43740..572c494 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -33,7 +33,7 @@ "post": "^0.0.1", "postcss": "^8.4.32", "tailwindcss": "^3.3.5", - "vite": "^5.0.0" + "vite": "^5.0.8" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -5290,9 +5290,9 @@ } }, "node_modules/vite": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.5.tgz", - "integrity": "sha512-OekeWqR9Ls56f3zd4CaxzbbS11gqYkEiBtnWFFgYR2WV8oPJRRKq0mpskYy/XaoCL3L7VINDhqqOMNDiYdGvGg==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.8.tgz", + "integrity": "sha512-jYMALd8aeqR3yS9xlHd0OzQJndS9fH5ylVgWdB+pxTwxLKdO1pgC5Dlb398BUxpfaBxa4M9oT7j1g503Gaj5IQ==", "dev": true, "dependencies": { "esbuild": "^0.19.3", diff --git a/app/package.json b/app/package.json index e0db960..2c21eec 100644 --- a/app/package.json +++ b/app/package.json @@ -36,6 +36,6 @@ "post": "^0.0.1", "postcss": "^8.4.32", "tailwindcss": "^3.3.5", - "vite": "^5.0.0" + "vite": "^5.0.8" } } diff --git a/app/src/components/Hero.jsx b/app/src/components/Hero.jsx index da25526..cf09adb 100644 --- a/app/src/components/Hero.jsx +++ b/app/src/components/Hero.jsx @@ -6,10 +6,8 @@ import { navLinks } from "../constants"; import { logo, menu, close } from "../assets"; -const Hero = () => { - +const Hero = () => { const [data,setData] = useState([{}]) - // Reset Boiska function resetField() { var footballField = document.getElementById('footballField'); @@ -21,30 +19,25 @@ const Hero = () => { } // Wysłanie zapytania do serwera function sentQuestion() { - var ball = document.querySelector('.football'); if (ball) { var x = ball.style.left; var y = ball.style.top; - - var query = "/LRegresion" + x + "&" + y - alert(query) - fetch("/LRegresion").then( + var query = "http://localhost:5000/LRegresion" + x + "&" + y + fetch(query).then( res => res.json ).then( data => { setData(data) - console.log(data)`` + console.log(data) } ) - - } else { alert('Piłka nie jest obecnie na boisku.'); } } + /* Funkcja dodająca listener do boiska*/ - function boiskoListener(){ var x = event.clientX - footballField.getBoundingClientRect().left; var y = event.clientY - footballField.getBoundingClientRect().top; @@ -63,7 +56,7 @@ const Hero = () => { useEffect(()=>{ var footballField = document.getElementById('footballField'); footballField.addEventListener('click', boiskoListener) - },[]); + }); /*zwracany komponent zawierajacy boisko*/ diff --git a/app/src/flask-server/modele/__pycache__/modele.cpython-310.pyc b/app/src/flask-server/modele/__pycache__/modele.cpython-310.pyc new file mode 100644 index 0000000..4189fbf Binary files /dev/null and b/app/src/flask-server/modele/__pycache__/modele.cpython-310.pyc differ diff --git a/app/src/flask-server/modele/modele.py b/app/src/flask-server/modele/modele.py new file mode 100644 index 0000000..df04525 --- /dev/null +++ b/app/src/flask-server/modele/modele.py @@ -0,0 +1,13 @@ +from joblib import load +import pandas as pd + +# Funkcja zwraca prawdopodobieństwo zdobycia gola +def LogisticRegression_predict_proba(position_x, position_y, distance_to_goalM, angle, match_minute, Number_Intervening_Opponents, Number_Intervening_Teammates, isFoot, isHead): + model = load('regresja_logistyczna.joblib') + + X_new = pd.DataFrame(columns=['position_x', 'position_y', 'distance_to_goalM', 'angle','match_minute', 'Number_Intervening_Opponents','Number_Intervening_Teammates', 'isFoot', 'isHead']) + X_new.loc[len(X_new.index)] = [position_x, position_y, distance_to_goalM, angle, match_minute, Number_Intervening_Opponents, Number_Intervening_Teammates, isFoot, isHead] + + return model.predict_proba(X_new)[0][1].round(2) + +#kolejne modele diff --git a/app/src/flask-server/server.py b/app/src/flask-server/server.py index 1c4ee4d..d4ee77f 100644 --- a/app/src/flask-server/server.py +++ b/app/src/flask-server/server.py @@ -1,5 +1,7 @@ from flask import Flask from flask_cors import CORS +from modele.modele import LogisticRegression_predict_proba + app = Flask(__name__) CORS(app) @@ -9,10 +11,18 @@ CORS(app) def members(): return{"members":["Member1","Member2","Member3"]} + +# zapytanie o regresje logistyczną na podstawie pozycji piłki + @app.route("/LRegresion&") def LRegresion(x,y): - num = x+y - return str(num) + + x = int(x[0:2]) + y = int(y[0:2]) + response = LogisticRegression_predict_proba(9.23, -2.24, 9.5, 13.67, 13, 3, 0, 1, 0) + return {"response":[str(response),"proces"]} + +# uruchomienie serwera if __name__ == "__main__": app.run(debug = True) \ No newline at end of file