diff --git a/server/__pycache__/consts.cpython-311.pyc b/server/__pycache__/consts.cpython-311.pyc
index 2ca87ef4877dfd3535f7985003fbc9593d344e4c..16e0d17e682de899d1bf7d8e9de0db95305ac2f0 100644
Binary files a/server/__pycache__/consts.cpython-311.pyc and b/server/__pycache__/consts.cpython-311.pyc differ
diff --git a/server/main.py b/server/main.py
index 162ace840424470c385052f0b71edd3d4c30923e..9e51bc4208faccf2b93200e9e049d83d9494121c 100644
--- a/server/main.py
+++ b/server/main.py
@@ -1,36 +1,32 @@
 from flask import Flask
 from http.server import HTTPServer, BaseHTTPRequestHandler
-from consts import DB_NAME, COLLECTION, MONGO_URI, MONGO_CERT_PATH, SSL_CERT_PATH, SSL_KEY_PATH, HOST, PORT
+from consts import DB_NAME, COLLECTION, SSL_CERT_PATH, SSL_KEY_PATH, HOST, PORT
 from map.get_markers import get_all_markers
-from pymongo import MongoClient
-from pymongo.server_api import ServerApi
 import ssl
 import keyboard
+import sqlite3
 
 app = Flask(__name__)
 terminate_server = 0
 
 
-# Initialise MongoDB connection
+# Initialise SQLite database connection
 def init_database():
-    try:
-        client = MongoClient(MONGO_URI,
-                            tls=True,
-                            tlsCertificateKeyFile=MONGO_CERT_PATH,
-                            server_api=ServerApi('1'))
-
-        db = client[DB_NAME]
-        collection = db[COLLECTION]
-        print("Connected to MongoDB")
-        return client
-    except Exception as e:
-        print(f"Failed to connect to MongoDB: {e}")
+    #try:
+        # Connect to the SQLite database
+        conn = sqlite3.connect('server/sql_db/icedb')
+
+        # Return the connection object
+        return conn
+    #except Exception as e:
+    #    print(f"Failed to connect to SQLite database: {e}")
+    #    return None
 
 
 class IceHTTPServer(HTTPServer):
-    def __init__(self, server_address, handler_class, client):
+    def __init__(self, server_address, handler_class, cursor):
         super().__init__(server_address, handler_class)
-        self.client = client
+        self.cursor = cursor
 
     def get_request(self):
         request, client_address = super().get_request()
@@ -40,13 +36,10 @@ class IceHTTPServer(HTTPServer):
 # Define custom HTTP class
 class IceHTTP(BaseHTTPRequestHandler):
     def __init__(self, request, client_address, server):
-        self.client = server.client
+        self.cursor = server.cursor  # Accessing cursor from server
         super().__init__(request, client_address, server)
 
     def do_GET(self):
-        db = self.client[DB_NAME]
-        col = db[COLLECTION] # Set collection pointer
-
         # Root path
         if self.path == '/':
             self.send_response(200)
@@ -56,14 +49,16 @@ class IceHTTP(BaseHTTPRequestHandler):
             self.wfile.write(b"Root path hit!")
 
         # Update_map endpoint
-        elif self.path == '/update_map': # NB: should be POST?
-            get_all_markers(self, col)
+        elif self.path == '/update_map':  # NB: should be POST?
+            get_all_markers(self, self.cursor)  # Accessing cursor from self
 
 # Listen for pressing of q key to terminate server
-def on_key_press(server, event):
+def on_key_press(server, event, cursor, conn):
     if event.name == 'q':
         print('Terminating server...')
         server.server_close()
+        cursor.close()
+        conn.close()
         keyboard.unhook_all()
         quit()
 
@@ -71,7 +66,8 @@ def on_key_press(server, event):
 # Start a server on port 8443 using self defined HTTP class
 if __name__ == "__main__":
     # Initialise database connection
-    client = init_database()
+    conn = init_database()
+    cursor = conn.cursor()
 
     try:
         # Load SSL certificate and private key
@@ -79,13 +75,15 @@ if __name__ == "__main__":
         ssl_context.load_cert_chain(SSL_CERT_PATH, SSL_KEY_PATH)
 
         # Create HTTP server with SSL support
-        server = IceHTTPServer((HOST, PORT), IceHTTP, client)
+        server = IceHTTPServer((HOST, PORT), IceHTTP, cursor)
         server.socket = ssl_context.wrap_socket(server.socket, server_side=True)
 
         print("Server running on port ", PORT)
 
         # Register key press event handler
-        keyboard.on_press(lambda event: on_key_press(server, event))
+        keyboard.on_press(lambda event: on_key_press(server, event, cursor, conn))
+
+        print("Server running on port ", PORT)
 
         # Run server indefinitely
         server.serve_forever()
diff --git a/server/map/__pycache__/get_markers.cpython-311.pyc b/server/map/__pycache__/get_markers.cpython-311.pyc
index 7069518c401a9926d6c76eb189af1c3fec74ac49..8159e27776dc6f9fa6d2b93036b8051095d2a074 100644
Binary files a/server/map/__pycache__/get_markers.cpython-311.pyc and b/server/map/__pycache__/get_markers.cpython-311.pyc differ
diff --git a/server/map/get_markers.py b/server/map/get_markers.py
index 257314f38b987a40d533054dbe15cf967475f6ab..17baa767d4d4aae2ac3cb187842f407971b7a582 100644
--- a/server/map/get_markers.py
+++ b/server/map/get_markers.py
@@ -4,25 +4,43 @@ from bson import json_util
 current_dir = os.path.dirname(__file__)
 parent_dir = os.path.abspath(os.path.join(current_dir, '..'))
 sys.path.append(parent_dir)
+import json
 
 
 # get_markers requests all marker data from mongoDB
-def get_all_markers(self, col):
+def get_all_markers(self, cursor):
     try:
-        # Fetch marker data from DB
-        marker_cursor = col.find({})
-        marker_data = list(marker_cursor)
-                
-        # Remove ObjectId field documents to allow for easy JSON to BSON conversion
-        for document in marker_data:
-            document.pop('_id', None)
-        if marker_data: # Data found in DB, convert from BSON to JSON
-            resp_code = 200 
-            marker_json_list = [json_util.dumps(document) for document in marker_data]
-            marker_json = "[" + ",".join(marker_json_list) + "]" 
-        else: # Data not found in DB
-            resp_code = 404 
-            marker_json = '[]'
+
+        # Fetch all data
+        cursor.execute('''
+            SELECT m.MeasurementID, m.SensorID, m.TimeMeasured, m.Latitude, m.Longitude,
+                   m.MeasuredThickness, m.Accuracy, s.SensorType, s.Active
+            FROM Measurement m
+            INNER JOIN Sensor s ON m.SensorID = s.SensorID
+        ''')
+
+        rows = cursor.fetchall()
+
+        data = []
+        for row in rows:
+            measurement = {
+                'MeasurementID': row[0],
+                'TimeMeasured': row[1],
+                'Latitude': row[2],
+                'Longitude': row[3],
+                'MeasuredThickness': row[4],
+                'Accuracy': row[5],
+                'Sensor': {
+                    'SensorID': row[6],
+                    'SensorType': row[7],
+                    'Active': bool(row[8])
+                }
+            }
+            data.append(measurement)
+
+        resp_code = 200
+        # Convert the list of dictionaries to JSON
+        marker_json = json.dumps(data, indent=4)
 
     except Exception as e:
         print(f"An error occurred while querying MongoDB: {e}")