diff --git a/README.md b/README.md index 7c90ec5..0f0b3fa 100644 --- a/README.md +++ b/README.md @@ -4,22 +4,155 @@ # sqliteviz -**Note: This is a work-in-progress project.** - Sqliteviz is a single-page application for fully client-side visualisation of SQLite databases. + +## Get started + +The latest release of sqliteviz is running on [github pages][6]. The simplest way to start is to use sqliteviz there. + +### Choose a databese file + +You can choose a database file right on the welcom page (fig. 1). The supported file extentions: `.db`,`.sqlite` and `.sqlite3`. + +
+
+
+ + Fig. 1: Welcome page + +
+ +This is not a mandatory step. You can skip it and manipulate queries in sqliteviz without a database. Choose a database later when it's time to run a query in the right panel of the Editor (fig. 2). + +
+
+
+ + Fig. 2: Editor (database is not chosen) + +
+ +After chosing a database you can browse tables, columns and their types in the right panel of the Editor(fig. 3). + +
+
+
+ + Fig. 3: Editor (database is chosen) + +
+ +### Create a query + +#### Open a new tab + +Press `Create` button in the top toolbar or use `Ctrl+b`(`Cmd+b` for MacOS) keyboard shortcut to open a new tab for a query. The tab consists of two parts: a query text editor on the top and a result panel on the bottom. + +In the query text editor part you can specify a `SELECT` statement for getting data. + +Result panel has two modes: table view (fig. 3, fig. 4) and chart view (fig. 2). In the table view you can see the result of query running (fig. 4). In the chart view there is a chart editor component which allows to build a visialization from the result set. + +#### Run a query + +Press `Run` button in the top toolbar or use `Ctrl+r`(`Cmd+r` for MacOS) keyboard shortcut to execute a query in the current opened tab. + +> **_NOTE:_** Running is not available if a database was not chosen or a query for the current tab is not specified. + +The query result will be displayed in the result panel in table mode (fig. 4). + +
+
+
+ + Fig. 4: Query results + +
+ +#### Create a chart + +After running a query you can switch result panel to the chart mode and create a chart with a `react-chart-editor` component. The same component with some additional features is used in Plotly Chart Studio. Explore its [documentation][7] to learn how to build charts with `react-chart-editor`. + +### Save a query + +Press `Save` button in the top toolbar or use `Ctrl+s`(`Cmd+s` for MacOS) keyboard shortcut to save a query in the current opened tab to local storage of your browser. + +After that the query will be in the list on `My queries` page. + +> **_NOTE:_** Only the text of the query and chart settings will be saved. The result of the query execution won't be saved. + +## Working with saved queries + +You can find all queries that you saved in local storage of your browser in `My queries` (fig. 5). + +
+
+
+ + Fig. 5: My queries + +
+ +To manipulate one query hover the cursor over the row with the query and choose the action: + +*
+
+
+ + Fig. 6: My queries: a group of queries is selected + +
+ +> **_NOTE:_** Some operations are not available for predefined queries (see below). + +## Import queries + +Click `Import` button on "My queries" page to import queries from json file generated by export. + +## Predefined queries + +If you run sqliteviz on your own server you can specify predefined queries. These queries will be in "My queries" list for all users working with sqliteviz on your server. + +To create a list of predefined queries choose queries in "My queries" list and export them to `queries.json`. Then place this file on the server in the same directory as `index.html`. + +A user can't edit, rename a predefined query or delete it. The rest operations are available. + +## Motivation It's a kind of middleground between [Plotly Falcon][1] and [Redash][2]. -It is built on top of [react-chart-editor][3] and [sql.js][4] in [Vue.js][5]. -## Features - -1. Ad-hoc and prepared visualisation of a SQLite database using flexibility - of SQL and richness of Plotly's `react-chart-editor` -2. Visualisation pallete, SQL and chart definitions, kept in local - storage with import/export -3. Integration-side provided pallete +## Components +It is built on top of [react-chart-editor][3], [sql.js][4] and [Vue-Codemirror][8] in [Vue.js][5]. [1]: https://github.com/plotly/falcon [2]: https://github.com/getredash/redash [3]: https://github.com/plotly/react-chart-editor [4]: https://github.com/sql-js/sql.js [5]: https://github.com/vuejs/vue +[6]: https://lana-k.github.io/sqliteviz +[7]: https://plotly.com/chart-studio-help/tutorials/#basic +[8]: https://github.com/surmon-china/vue-codemirror#readme + + diff --git a/src/assets/images/Screenshot_editor.png b/src/assets/images/Screenshot_editor.png new file mode 100644 index 0000000..aa99c79 Binary files /dev/null and b/src/assets/images/Screenshot_editor.png differ diff --git a/src/assets/images/Screenshot_editor_with_db.png b/src/assets/images/Screenshot_editor_with_db.png new file mode 100644 index 0000000..03f89f4 Binary files /dev/null and b/src/assets/images/Screenshot_editor_with_db.png differ diff --git a/src/assets/images/Screenshot_group.png b/src/assets/images/Screenshot_group.png new file mode 100644 index 0000000..e754934 Binary files /dev/null and b/src/assets/images/Screenshot_group.png differ diff --git a/src/assets/images/Screenshot_my_queries.png b/src/assets/images/Screenshot_my_queries.png new file mode 100644 index 0000000..687a9bc Binary files /dev/null and b/src/assets/images/Screenshot_my_queries.png differ diff --git a/src/assets/images/Screenshot_query_tools.png b/src/assets/images/Screenshot_query_tools.png new file mode 100644 index 0000000..fcbe14f Binary files /dev/null and b/src/assets/images/Screenshot_query_tools.png differ diff --git a/src/assets/images/Screenshot_result.png b/src/assets/images/Screenshot_result.png new file mode 100644 index 0000000..4e97638 Binary files /dev/null and b/src/assets/images/Screenshot_result.png differ diff --git a/src/assets/images/Screenshot_welcome.png b/src/assets/images/Screenshot_welcome.png new file mode 100644 index 0000000..97726fd Binary files /dev/null and b/src/assets/images/Screenshot_welcome.png differ