AllSQL

An open-source compact browser-based SQL Compiler, built using Flutter.
Website · Issues · Pull Requests · Discussions

GitHub Stars GitHub Forks GitHub Forks License Style Repo Size GitHub Open Issues GitHub Closed Issues GitHub Open Pull Requests GitHub Closed Pull Requests Commits Per Year Last Commit Pricing GitHub Release GitHub Contributors GitHub Watchers Netlify Deploys

Follow @masteradit Watch Star Fork Issue Discuss Download

✨ Demo

Website: https://sql.allmityapp.com

AllSQL Demo GIF

⚡ Features

  • ✅ Server is not required
  • ✅ Output is neatly formatted in the form of a table
  • ✅ Helper text to explain the use of each option with example
  • ✅ Very small size (< 6 MB)
  • ✅ Works on web
  • ✅ Can be installed as a Progressive Web App on Android, iOS, Windows, MacOS and Linux
  • ✅ Works offline
  • ✅ Responsive design (works on all screen sizes)
  • ✅ Shows a detailed error when an exception is thrown

🐛 Known issues/bugs

  • ❗ Automatically execute commands instead of selecting the type of command manually
  • ❗ Show multiple tables in output if multiple select queries are entered
  • ❗ Add dark theme
  • ❗ Add syntax highlighting

🤔 Why did I make AllSQL?

I created AllSQL when I was in college. I had a Database Systems course in college, where our teacher recommended us to download Oracle Database 19c, which is around 2.7 GB in size. Some of my friends faced issues while installing the software. So, I wanted to make a ligh weight, compact, browser based compiler, where anyone could practice SQL commands, on any device without installing a heavy software, which would also work offline so that we could use it during our lab exams as well. Thus, I sat down one night and challenged myself to build an SQL compiler before the next morning that would match all the constraints.

👏 Getting Started

This project is a starting point for a Flutter application.

A few resources to get you started if this is your first Flutter project:

For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

Initial Setup

  1. Clone the repo.

  2. Run flutter pub get. This will get all the dependencies for this project.

  3. Run dart run sqflite_common_ffi_web:setup. This will create 2 files sqlite3.wasm and sqflite_sw.js.

    Note: when sqlite3 and its wasm binary are updated, you may need to run the command again using the force option: dart run sqflite_common_ffi_web:setup --force

    However since it depends on sqflite3 version and its associated binary, if it gets updated and the tool still download the old version (sorry it is hardcoded) you might have to manually download a compatible binary from sqlite3.wasm binaries I don't have a better option yet, sorry.

    Source: https://pub.dev/packages/sqflite_common_ffi_web#setup-binaries

📚 Documentation

🙏 Show your support

Please ⭐️ this repository if this project helped you!

Buy me a coffee

👥 Contributors

Made with contributors-img.

⭐️ Stargazers over time

Stargazers over time

📝 License

Copyright © 2021 Adit Luhadia.

This project is MIT licensed.

Libraries

models/command_type
config/constants
services/database_service
pages/home_page
main
widgets/output_widget
widgets/radio_button_widget
config/responsive