diff --git a/client/pizza_palace.py b/client/pizza_palace.py
index 974dd296224162a99332b67f857e977a652773d3..25db1b42df5e30609a8265e7b3a128142b27c40b 100644
--- a/client/pizza_palace.py
+++ b/client/pizza_palace.py
@@ -1,4 +1,4 @@
-import json
+import json, requests
 from tkinter import messagebox, ttk
 from tkinter import *
 
@@ -6,28 +6,63 @@ from tkinter import *
 root = Tk()
 
 ## Global Variables
-name = StringVar()
-age = StringVar()
+connect_url = StringVar()
 
 ## Subroutines
+def get_endpoint(endpoint):
+    return connect_url.get() + endpoint
+
 def submit(*args):
-    messagebox.showinfo("Not implemented")
+    messagebox.showinfo("Not implemented", "Not just yet...")
+
+def connect(*args):
+    try:
+        res = requests.get(get_endpoint("/"))
+        if res.status_code == 200:
+            # Success
+            # TODO check for valid JSON response, possibly change to /status endpoint
+            messagebox.showinfo("OK!", "Successfully connected")
+            connect_status_label.configure(text="Connected")
+            # TODO focus on other tab
+        else:
+            # Failure
+            # TODO failure message
+            pass
+    except:
+        # Failure
+        # TODO failure message
+        pass
 
 ## Main program code
 root.title("Pizza Palace")
+tab_control = ttk.Notebook(root)
+
+connect_frame = ttk.Frame(tab_control, padding="3 3 12 12")
+connect_frame.grid(column=0, row=0, sticky=(N, W, E, S))
+connect_frame.columnconfigure(0, weight=1)
+connect_frame.rowconfigure(0, weight=1)
 
-mainframe = ttk.Frame(root, padding="3 3 12 12")
-mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
-root.columnconfigure(0, weight=1)
-root.rowconfigure(0, weight=1)
+connect_url_label = ttk.Label(connect_frame, text="Server URL:")
+connect_url_field = ttk.Entry(connect_frame, width=20, textvariable=connect_url)
+connect_url_label.grid(column=1, row=1, sticky=(W, E))
+connect_url_field.grid(column=2, row=1, sticky=(W, E))
+connect_url.set("http://localhost:5000")
 
-submit_button = ttk.Button(mainframe, text="Go!", command=submit)
-submit_button.grid(column=2, row=3, sticky=(W, E))
+connect_status_label = ttk.Label(connect_frame, text="Not connected")
+connect_status_label.grid(column=1, row=2, sticky=(W, E))
 
-for child in mainframe.winfo_children():
+connect_submit_button = ttk.Button(connect_frame, text="Go!", command=connect)
+connect_submit_button.grid(column=1, row=3, sticky=(W, E))
+
+for child in connect_frame.winfo_children():
     child.grid_configure(padx=5, pady=5)
 
-submit_button.focus()
-root.bind("<Return>", submit)
+connect_submit_button.focus()
+connect_frame.bind("<Return>", submit)
+
+# TODO other tabs
+
+tab_control.add(connect_frame, text="Connect")
+tab_control.pack(expand=1, fill="both")
 
 root.mainloop()