Skip to content

sumitparakh/sqleditor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SQL Editor for data geeks (Beta)

The perfect SQL companion for developers, data scientists & sql freaks.


Web Application (Visit here)

Desktop application



Web Framework

Angular Framework is used to build UI(front end) of both web & desktop version of this project. Having a vast community and an in-built set of libraries, Angular provides you a rapid development experience.

Ofcourse every framework has its own pros and cons. But since, I'm mostly experienced in Angular, so I would personally prefer Angular to build web and PWA app, and React to build mobile apps ;) .

Desktop Application Library

Electron is used to create desktop build & packages of this project. It provides very rich set of system tools & libraries to build cross-platform desktop application from angular front-end framework.

JavaScript Application Package Manager

Lerna is a tool for managing JavaScript projects with multiple packages.It optimizes the workflow around managing multi-package repositories with git and npm.

SqlEditor Packages

Package Version Description
sqleditor-app SqlEditor App The electron shell host for the sqleditor application.
sqleditor-ui SqlEditor UI The core application: the sqleditor web app. This app is built using the @angular/cli.

Features

  1. Run simple select queryies (eg. select * from order_sample or select <col-1>, <col-2> from order_sample). Current SQL parser is built based on mocked data and a fake json sql server, so. Based on data platform, parsing can be enhanced in future accordingly.

  2. You can create as many query editor as you want. Query will be executed from currently active query editor tab.

  3. Save as you type. Whatever you write in query editor will be saved as you type. So in case, if you accidentally reload the page, query won't get lost.

  4. Maintains history of succesful/failed query. Currenty the history is not dynamic so it will be cleared on page reload.

    You can even run any succesful query from your history list. So no need to type your query again.

  5. Filter your query result. A search textbox is provided so that you can search anything from query result, irrespective of columns or data types.

  6. Reset query editor. Suppose you have created 7 query tabs and now you want to reset it to the default stage. Then reset query button allows you to do it. Just click to reset button given in the toolbar.

  7. Run query from active query tab by either a shortcut (Ctrl+Shift+E) or execute button click from toolbar.

  8. Dynamically add more mocking databases on sidebar.


How to run locally

  1. Clone repo and install dependencies (lerna bootstrap or npm install).
  2. Run the ui npm run start:ui and go to http://localhost:4200
  3. Build ui npm run build:ui

How to package the application

Download All In One

For Windows

Note: I'm using Windows 10 (x64) so the windows build is tested.

  1. Build windows build(ia32) for desktop app npm run package:app:win32:ia32
  2. Build windows build(x64) for desktop app npm run package:app:win32:x64

Download windows app(win64)

Download windows app(ia32)


For OSX

Note: Should work but not tested. Let me know if you face any issue. I'll try and fix. Or if you are a mac user and want to fix it yourself? Pull requets are always appreciated.

  1. Build darwin build(x64) for desktop app npm run package:app:darwin:x64

Download darwin app(x64)

For Linux

Note: Should work but not tested. Let me know if you face any issue. I'll try and fix. Or if you are a linux user and want to fix it yourself? Pull requets are always appreciated.

  1. Build linux build(x64) for desktop app npm run package:app:linux:x64
  2. Build linux build(ia32) for desktop app npm run package:app:linux:ia32
  3. Build linux build(arm64) for desktop app npm run package:app:linux:arm64

Download linux app(x64)

Download linux app(ia32)

Download linux app(arm64)



You are welcome to contribute to this project. This project is in its early stage, no feature is frozen yet. All suggestions/fixes/help are more than welcome. Raise your issue or feature request here

Please contact me (@sumitparakh) if you need some help getting started with the setup..

Releases

No releases published

Packages

No packages published

Languages