diff --git a/src/public/javascripts/dialogs/help.js b/src/public/javascripts/dialogs/help.js
new file mode 100644
index 000000000..91ebe9ba3
--- /dev/null
+++ b/src/public/javascripts/dialogs/help.js
@@ -0,0 +1,11 @@
+const $dialog = $("#help-dialog");
+
+async function showDialog() {
+    glob.activeDialog = $dialog;
+
+    $dialog.modal();
+}
+
+export default {
+    showDialog
+}
\ No newline at end of file
diff --git a/src/public/javascripts/dialogs/sql_console.js b/src/public/javascripts/dialogs/sql_console.js
index 917eda1e7..19698b385 100644
--- a/src/public/javascripts/dialogs/sql_console.js
+++ b/src/public/javascripts/dialogs/sql_console.js
@@ -1,4 +1,3 @@
-import utils from '../services/utils.js';
 import libraryLoader from '../services/library_loader.js';
 import server from '../services/server.js';
 import infoService from "../services/info.js";
@@ -8,6 +7,7 @@ const $query = $('#sql-console-query');
 const $executeButton = $('#sql-console-execute');
 const $resultHead = $('#sql-console-results thead');
 const $resultBody = $('#sql-console-results tbody');
+const $tables = $("#sql-console-tables");
 
 let codeEditor;
 
@@ -20,6 +20,31 @@ function showDialog() {
 }
 
 async function initEditor() {
+    server.get('sql/schema').then(tables => {
+        $tables.empty();
+
+        for (const table of tables) {
+            const $tableLink = $('').text(table.name);
+
+            const $columns = $("
");
+
+            for (const column of table.columns) {
+                $columns.append(
+                    $("")
+                        .append($("| ").text(column.name))
+                        .append($(" | ").text(column.type))
+                );
+            }
+
+            $tableLink
+                .attr("title", $columns.html())
+                .tooltip({ html: true })
+                .click(() => codeEditor.setValue("SELECT * FROM " + table.name + " LIMIT 100"));
+
+            $tables.append($tableLink).append(" ");
+        }
+    });
+
     if (!codeEditor) {
         await libraryLoader.requireLibrary(libraryLoader.CODE_MIRROR);
 
diff --git a/src/public/javascripts/services/entrypoints.js b/src/public/javascripts/services/entrypoints.js
index c4f249e4e..8da3cd1b9 100644
--- a/src/public/javascripts/services/entrypoints.js
+++ b/src/public/javascripts/services/entrypoints.js
@@ -12,6 +12,7 @@ import recentChangesDialog from "../dialogs/recent_changes.js";
 import sqlConsoleDialog from "../dialogs/sql_console.js";
 import searchNotesService from "./search_notes.js";
 import attributesDialog from "../dialogs/attributes.js";
+import helpDialog from "../dialogs/help.js";
 import protectedSessionService from "./protected_session.js";
 
 function registerEntrypoints() {
@@ -54,6 +55,10 @@ function registerEntrypoints() {
 
     $("#options-button").click(optionsDialog.showDialog);
 
+    $("#show-help-button").click(helpDialog.showDialog);
+    utils.bindShortcut('alt+h', helpDialog.showDialog);
+
+    $("#open-sql-console-button").click(sqlConsoleDialog.showDialog);
     utils.bindShortcut('alt+o', sqlConsoleDialog.showDialog);
 
     if (utils.isElectron()) {
diff --git a/src/public/libraries/jqueryui/AUTHORS.txt b/src/public/libraries/jqueryui/AUTHORS.txt
deleted file mode 100644
index a75056b94..000000000
--- a/src/public/libraries/jqueryui/AUTHORS.txt
+++ /dev/null
@@ -1,333 +0,0 @@
-Authors ordered by first contribution
-A list of current team members is available at http://jqueryui.com/about
-
-Paul Bakaus 
-Richard Worth 
-Yehuda Katz 
-Sean Catchpole 
-John Resig 
-Tane Piper 
-Dmitri Gaskin 
-Klaus Hartl 
-Stefan Petre 
-Gilles van den Hoven 
-Micheil Bryan Smith 
-Jörn Zaefferer 
-Marc Grabanski 
-Keith Wood 
-Brandon Aaron 
-Scott González 
-Eduardo Lundgren 
-Aaron Eisenberger 
-Joan Piedra 
-Bruno Basto 
-Remy Sharp 
-Bohdan Ganicky 
-David Bolter 
-Chi Cheng 
-Ca-Phun Ung 
-Ariel Flesler 
-Maggie Wachs 
-Scott Jehl 
-Todd Parker 
-Andrew Powell 
-Brant Burnett 
-Douglas Neiner 
-Paul Irish 
-Ralph Whitbeck 
-Thibault Duplessis 
-Dominique Vincent 
-Jack Hsu 
-Adam Sontag 
-Carl Fürstenberg 
-Kevin Dalman 
-Alberto Fernández Capel 
-Jacek Jędrzejewski (http://jacek.jedrzejewski.name)
-Ting Kuei 
-Samuel Cormier-Iijima 
-Jon Palmer 
-Ben Hollis 
-Justin MacCarthy 
-Eyal Kobrigo 
-Tiago Freire 
-Diego Tres 
-Holger Rüprich 
-Ziling Zhao 
-Mike Alsup 
-Robson Braga Araujo 
-Pierre-Henri Ausseil 
-Christopher McCulloh 
-Andrew Newcomb 
-Lim Chee Aun 
-Jorge Barreiro 
-Daniel Steigerwald 
-John Firebaugh 
-John Enters 
-Andrey Kapitcyn 
-Dmitry Petrov 
-Eric Hynds 
-Chairat Sunthornwiphat 
-Josh Varner 
-Stéphane Raimbault 
-Jay Merrifield 
-J. Ryan Stinnett 
-Peter Heiberg 
-Alex Dovenmuehle 
-Jamie Gegerson 
-Raymond Schwartz 
-Phillip Barnes 
-Kyle Wilkinson 
-Khaled AlHourani 
-Marian Rudzynski 
-Jean-Francois Remy 
-Doug Blood 
-Filippo Cavallarin 
-Heiko Henning 
-Aliaksandr Rahalevich 
-Mario Visic 
-Xavi Ramirez 
-Max Schnur 
-Saji Nediyanchath 
-Corey Frang 
-Aaron Peterson 
-Ivan Peters 
-Mohamed Cherif Bouchelaghem 
-Marcos Sousa 
-Michael DellaNoce 
-George Marshall 
-Tobias Brunner 
-Martin Solli 
-David Petersen 
-Dan Heberden 
-William Kevin Manire 
-Gilmore Davidson 
-Michael Wu 
-Adam Parod 
-Guillaume Gautreau 
-Marcel Toele 
-Dan Streetman 
-Matt Hoskins 
-Giovanni Giacobbi 
-Kyle Florence 
-Pavol Hluchý 
-Hans Hillen 
-Mark Johnson 
-Trey Hunner 
-Shane Whittet 
-Edward A Faulkner 
-Adam Baratz 
-Kato Kazuyoshi 
-Eike Send 
-Kris Borchers 
-Eddie Monge 
-Israel Tsadok 
-Carson McDonald 
-Jason Davies 
-Garrison Locke 
-David Murdoch 
-Benjamin Scott Boyle 
-Jesse Baird 
-Jonathan Vingiano 
-Dylan Just 
-Hiroshi Tomita 
-Glenn Goodrich 
-Tarafder Ashek-E-Elahi 
-Ryan Neufeld 
-Marc Neuwirth 
-Philip Graham 
-Benjamin Sterling 
-Wesley Walser 
-Kouhei Sutou 
-Karl Kirch 
-Chris Kelly 
-Jason Oster 
-Felix Nagel 
-Alexander Polomoshnov 
-David Leal 
-Igor Milla 
-Dave Methvin 
-Florian Gutmann 
-Marwan Al Jubeh 
-Milan Broum 
-Sebastian Sauer 
-Gaëtan Muller 
-Michel Weimerskirch 
-William Griffiths 
-Stojce Slavkovski 
-David Soms 
-David De Sloovere 
-Michael P. Jung 
-Shannon Pekary 
-Dan Wellman 
-Matthew Edward Hutton 
-James Khoury 
-Rob Loach 
-Alberto Monteiro 
-Alex Rhea 
-Krzysztof Rosiński 
-Ryan Olton 
-Genie <386@mail.com>
-Rick Waldron 
-Ian Simpson 
-Lev Kitsis 
-TJ VanToll 
-Justin Domnitz 
-Douglas Cerna 
-Bert ter Heide 
-Jasvir Nagra 
-Yuriy Khabarov <13real008@gmail.com>
-Harri Kilpiö 
-Lado Lomidze 
-Amir E. Aharoni 
-Simon Sattes 
-Jo Liss 
-Guntupalli Karunakar 
-Shahyar Ghobadpour 
-Lukasz Lipinski 
-Timo Tijhof 
-Jason Moon 
-Martin Frost 
-Eneko Illarramendi 
-EungJun Yi 
-Courtland Allen 
-Viktar Varvanovich 
-Danny Trunk 
-Pavel Stetina 
-Michael Stay 
-Steven Roussey 
-Michael Hollis 
-Lee Rowlands 
-Timmy Willison 
-Karl Swedberg 
-Baoju Yuan 
-Maciej Mroziński 
-Luis Dalmolin 
-Mark Aaron Shirley 
-Martin Hoch 
-Jiayi Yang 
-Philipp Benjamin Köppchen 
-Sindre Sorhus 
-Bernhard Sirlinger 
-Jared A. Scheel 
-Rafael Xavier de Souza 
-John Chen 
-Robert Beuligmann 
-Dale Kocian 
-Mike Sherov 
-Andrew Couch 
-Marc-Andre Lafortune 
-Nate Eagle 
-David Souther 
-Mathias Stenbom 
-Sergey Kartashov 
-Avinash R 
-Ethan Romba 
-Cory Gackenheimer 
-Juan Pablo Kaniefsky 
-Roman Salnikov 
-Anika Henke 
-Samuel Bovée 
-Fabrício Matté 
-Viktor Kojouharov 
-Pawel Maruszczyk (http://hrabstwo.net)
-Pavel Selitskas 
-Bjørn Johansen 
-Matthieu Penant 
-Dominic Barnes 
-David Sullivan 
-Thomas Jaggi 
-Vahid Sohrabloo 
-Travis Carden 
-Bruno M. Custódio 
-Nathanael Silverman 
-Christian Wenz 
-Steve Urmston 
-Zaven Muradyan 
-Woody Gilk 
-Zbigniew Motyka 
-Suhail Alkowaileet 
-Toshi MARUYAMA 
-David Hansen 
-Brian Grinstead 
-Christian Klammer 
-Steven Luscher 
-Gan Eng Chin 
-Gabriel Schulhof 
-Alexander Schmitz 
-Vilhjálmur Skúlason 
-Siebrand Mazeland |