DbToRia - Database to Rich Internet Application
DbToRia is generic SQL database frontend. Just point it to your database and get a user friendly web interface. By providing DbToRia with additional information about the nature of your database the user interface can be further optimized.
Mojo:
cpanm Mojolicious
cpanm MojoX::Dispatcher::Qooxdoo::Jsonrpc
Json:
cpanm JSON::XS
cpanm Mojo::JSON::Any
DB:
cpanm DBI
cpanm DBD::(put-your-driver-here)
For quick results use testing-db (which is a SQLite):
cpanm DBD::SQLite
Other modules needed:
cpanm Config::Grammar
cpanm Try::Tiny
Edit the backend/etc/dbtoria.cfg file to point to the database of your choice.
For quick results put this in your backend/etc/dbtoria.cfg:
*** General ***
dsn = DBI:SQLite:dbname=../backend/t/sqlite_db/dbtoria_test_db
mojo_secret = MyCookieSecret
log_file = /tmp/dbtoria.log
schema = public
encoding = latin
Get Qooxdoo SDK:
wget http://downloads.sourceforge.net/qooxdoo/qooxdoo-3.5-sdk.zip
unzip qooxdoo-3.5-sdk.zip
cd frontend
If you just want to build the production ready version of the frontend:
./generate.sh ../qooxdoo-3.5-sdk build
If you want start hacking and debuging the frontend, build the source version by calling
./generate.sh ../qooxdoo-3.5-sdk source
cd ..
put these lines in your backend/bin/dbtoria.pl to enable debugging: $ENV{QX_SRC_MODE} = 1; $ENV{QX_SRC_PATH} = "$FindBin::Bin/../../frontend";
It is also heplful to enable your Chrome developer console (<ctrl>-<shift>-j) or your Firefox bugzilla console to see possible frontend issues.
Run DbToRia with its built-in webserver for testing:
./backend/bin/dbtoria.pl daemon
And point your browser at
L<http://localhost:3000>
DbToRia contains of two parts. One is the backend which uses Perls Mojo Web Framework, its Jsonrpc-Dispatcher and some Perl code to interact with the database. The other is the frontend which uses the JavaScript Qooxdoo Framework for Rich Internet Applications and some JavaScript code to build the website you interact with.
The frontend sends json rpc requests which are handled by the backend. After the requested information is sent back using json, too, the view is updated.