diff --git a/app/lib/main.dart b/app/lib/main.dart
index 74415606f3c004a5558d4192a3f8af238a0d255c..e2e024ffd4d626b0b70e9307b048ce37d75ec39e 100644
--- a/app/lib/main.dart
+++ b/app/lib/main.dart
@@ -1,7 +1,11 @@
 import 'package:flutter/material.dart';
 import 'package:http/http.dart' as http;
+import 'dart:convert';
+import 'dart:async';
 
-const SERVER_URI = "https://127.0.0.1:8443";
+const serverURI = "https://127.0.0.1:8443";
+const mapEndpoint = serverURI + "/update_map";
+const fetchInterval = 5;
 
 void main() {
   runApp(const App());
@@ -18,9 +22,49 @@ class App extends StatelessWidget {
   }
 }
 
-// Default page
-class DefaultPage extends StatelessWidget {
-  const DefaultPage({super.key});
+Future<void> fetchData() async {
+  final response = await http.get(Uri.parse(mapEndpoint));
+
+  if (response.statusCode == 200) {
+    // Parse the JSON response
+    Map<String, dynamic> data = jsonDecode(response.body);
+    
+    // NB temporary test print
+    print(data);
+  } else { // Handle the error case
+    print('Failed to fetch data. Status code: ${response.statusCode}');
+  }
+}
+
+class DefaultPage extends StatefulWidget {
+  const DefaultPage({Key? key}) : super(key: key);
+
+  @override
+  _DefaultPageState createState() => _DefaultPageState();
+}
+
+class _DefaultPageState extends State<DefaultPage> {
+  late Timer _timer;
+
+  @override
+  void initState() {
+    super.initState();
+    // Call fetchData when the widget is first created
+    fetchData();
+
+    // Schedule fetchData to run periodically based on FETCH_INTERVAL const
+    const Duration fiveMinutes = Duration(minutes: fetchInterval);
+    _timer = Timer.periodic(fiveMinutes, (timer) {
+      fetchData();
+    });
+  }
+
+  @override
+  void dispose() {
+    // Cancel the timer when the widget is disposed to avoid memory leaks
+    _timer.cancel();
+    super.dispose();
+  }
 
   @override
   Widget build(BuildContext context) {
@@ -39,9 +83,8 @@ class DefaultPage extends StatelessWidget {
             const SizedBox(height: 20),
             ElevatedButton(
               onPressed: () async {
-                // Attempt to connect to server
-                var response = await http.get(Uri.parse(SERVER_URI));
-                
+                // Attempt to connect to the server
+                var response = await http.get(Uri.parse(serverURI));
                 print('Response from server: ${response.body}');
               },
               child: const Text('Some text'),