diff --git a/Lab2/__pycache__/database_helper.cpython-310.pyc b/Lab2/__pycache__/database_helper.cpython-310.pyc
index 3ebbc7beb6dff05b871c1ac6c6b345a31a21ff7e..adb1fc481d008e3961a353b6de73c0183b481ad2 100644
Binary files a/Lab2/__pycache__/database_helper.cpython-310.pyc and b/Lab2/__pycache__/database_helper.cpython-310.pyc differ
diff --git a/Lab2/__pycache__/server.cpython-310.pyc b/Lab2/__pycache__/server.cpython-310.pyc
index d9221492281ddef57ac6629235aaeb7ff1bc2918..6c064d338417cf4b6e71c129cd25d4444cad19d5 100644
Binary files a/Lab2/__pycache__/server.cpython-310.pyc and b/Lab2/__pycache__/server.cpython-310.pyc differ
diff --git a/Lab2/database.db b/Lab2/database.db
index df5370f416fc0b03b3b7453c4ffa0a2129de1920..54ebaacbed664a2c1e4e273e1e464e8ab799fc61 100644
Binary files a/Lab2/database.db and b/Lab2/database.db differ
diff --git a/Lab2/database_helper.py b/Lab2/database_helper.py
index c6047fc703ff7de4b3df1ed319a64b8e5830affb..9c812170bf3e2b227e510656d4bfa15b1e08ffd2 100644
--- a/Lab2/database_helper.py
+++ b/Lab2/database_helper.py
@@ -59,7 +59,6 @@ def log_in(token, email):
         return False
 
 
-
 def log_out(token):
     try:
         cursor = get_db().cursor()
@@ -72,3 +71,43 @@ def log_out(token):
         return False
     except:
         return False
+
+
+def tokenToEmail(token):
+    try:
+        cursor = get_db().cursor()
+        cursor.execute("SELECT * FROM LOGGEDINUSERS WHERE TOKEN=?;", [token])
+        result = cursor.fetchone()
+        email = result[1]
+        if email:
+            return email
+        return None
+    except:
+        return None
+
+
+def is_online(token):
+    try:
+        cursor = get_db().cursor()
+        cursor.execute("SELECT * FROM LOGGEDINUSERS WHERE TOKEN=?;", [token])
+        result = cursor.fetchone()
+        if result:
+            return True
+        return False
+    except:
+        return False
+
+
+def get_data_email(email):
+    try:
+        cursor = get_db().cursor()
+        cursor.execute("SELECT * FROM USERS WHERE EMAIL=?;", [email])
+        result = cursor.fetchone()
+        if result:
+            data = []
+            for r in result:
+                data.append(r)
+            return data
+        return None
+    except:
+        return None
diff --git a/Lab2/server.py b/Lab2/server.py
index edf405a79ee56cdafb7ddb531990e9086cbb6f51..bc7ad6523b1b7355af03d115e537f03ae3f07ddf 100644
--- a/Lab2/server.py
+++ b/Lab2/server.py
@@ -8,12 +8,22 @@ app = Flask(__name__)
 
 #database_helper.create_database()
 
+
 @app.route("/", methods = ['GET'])
 def hello_world():
     return "<p>Hello, Lab_2!</p>", 200
 
 
-@app.route("/sign_up", methods = ['POST'])
+@app.route("/delete", methods = ['GET'])
+def delete():
+    resp = database_helper.clean_db()
+    if resp:
+        return "", 200
+    else:
+        return "", 409
+
+
+@app.route("/users/sign_up", methods = ['POST'])
 def sign_up():
     data = request.get_json()
     if ('email' in data and isinstance(data['email'], str)
@@ -38,7 +48,8 @@ def sign_up():
     else:
         return "", 400
 
-@app.route("/sign_in", methods = ['POST'])
+
+@app.route("/users/sign_in", methods = ['POST'])
 def sign_in():
     data = request.get_json()
     if('email' in data
@@ -54,7 +65,8 @@ def sign_in():
     else:
         return "", 400
 
-@app.route("/sign_out", methods = ['POST'])
+
+@app.route("/users/sign_out", methods = ['POST'])
 def sign_out():
     data = request.get_json()
     if('token' in data):
@@ -66,15 +78,45 @@ def sign_out():
         return "", 400
 
 
-@app.route("/delete", methods = ['GET'])
-def delete():
-    resp = database_helper.clean_db()
-    if resp:
-        return "", 200
+@app.route("/account/change_password", methods = ['PUT'])
+def change_password():
+    data = request.get_json()
+    if('token' in data and 'oldPassword' in data and 'newPassword' in data):
+        return True
+        #return "", 204
     else:
-        return "", 409
+        return "", 400
 
 
+@app.route("/account/get/data/<token>", methods = ['GET'])
+def get_user_data_token(token):
+    email = database_helper.tokenToEmail(token)
+    if email:
+        return get_user_data_email(token, email)
+    else:
+        return "", 403
+
+
+@app.route("/account/get/data/<token>/<email>", methods = ['GET'])
+def get_user_data_email(token, email):
+    if database_helper.is_online(token):
+        data = database_helper.get_data_email(email)
+        if data:
+            value = {
+                "firstname": data[0],
+                "familyname": data[1],
+                "gender": data[2],
+                "city": data[3],
+                "country": data[4],
+                "email": data[5],
+                "password": data[6],
+            }
+            return jsonify(value), 200
+        else:
+            return "", 404
+    else:
+        return "", 403
+
 def generate_token():
     characters = string.ascii_letters + string.digits
     return ''.join(random.choices(characters, k=36))