Vsebina
Web DataBase Interface - WDBI
Software development project focusing on database and web integration. Define a model in your database. Have a Mozilla remote application instantly!
The idea is to be able to quickly develop complex database-backed web applications. Applications should automatically have high quality GUI. SQL databases and sophisticated browsers like Mozilla (with XUL support) already provide for a lot of necessary functionality. Modelling language should preferably be on a higher level than SQL. UML, RDF and XML technologies could prove to be quite beneficial. See also: MiniUML
The system currently works with PostgreSQL. One idea is to provide all the niceness and speed of command line tool psql, but with the additional and improved capabilities, offered by web interface. Queries can be saved, results are displayed as sortable HTML or XUL tables, etc.
The system can be used as a query and db admin tool on daily basis without the need for psql command line tool. Psql is still needed and useful for some operations.
Wikis are important concept. We would like to seamlesly interchange with major wikis and feeds on the network.
WDBI is meant to be compatible with Wiki improvement project.
Get is on SourceForge. It's in CVS.
See also:
Features
- Perl API. Works for HTML::mason and command line tools.
- Lots of fun types and widgets
- Friendly URLs. Great for use with RDF and such.
- Automatically display relations defined by foreign keys
- Management of users and HTML::mason persistent sessions. Web users are different from database users and can be assigned different DB roles.
- Get results of queries in many formats, including spreadsheet files
- query/view management tool
- DDL extraction functions inside a database.
- Database schema autosensing and schema graph browser
- Database data, schema and code editor
- GUI that respects your context (well, getting there)
- Unified programming model across languages
- Take advantage of PostgreSQL, Mozilla and Perl for excellent mileage
- Free software licensed under GPL
- It doesn't work on MySQL (or any other database, really)
- SQL self-programming. Store model definitions in table and this creates database objects automatically (alpha).
Dogmata
Make it easy for programmers to make high quality (validation, etc..) web forms. Use DB constraints (eg NOT NULL) whenever possible.
Users understand tables of data. Make them easy to use (like files are, now)
Make it easy for users to run queries. Make results available in many formats.
System should provide easy data manipulation and model management by default.
It should be easily extendable on different levels (javascript, HTML::mason, backend).
Provide and support little languages.
Schema =?= Application
GUI frontend to SQL in general. Query by clicking.
The system is currenly in use with «database» Ljudmila.
Progress
WDBI TODO is list of things to be done
Design
Components:
- the Px API is an API for writing portable scripts with a functional approach
- the WDBI database interface, a web application, currently implemented in Perl via HTML::Mason. It provides forms based interface to database data and is generally orineted toward end-users. It can be seen on the screenshots.
- command line tool / website autoconfiguration from Perl packages
- «schema» WDBI, SQL schema. The schema features comprehensive set of views, tables and functions to ease database design, use and management. It provides better introspection capabilities, which are one of the things needed to create effective forms. Functions from Px API are included, for use in SQL.
- «schema» ATOM, SQL schema. Internet feed aggregator / calendar package
- InterWikiWiki
- output skins - thay allow for output in various formats: HTML table, cards, XUL table, etc...
- WDBI (Perl) - Perl library to create and process forms on a website (server side)
- WDBI (Javascript) - Javascript library to create and process forms on a website (client side)
- feed import tools
Perl is the main language used. It is available in Apache (2nd tier) via HTML::Mason and in PostgreSQL (3rd tier). Some of the functions are useful in both tiers, so this makes for nice redundancy.
Entities
Classifier = Classdef | Table | View
View = Table | View | Query
Class | View -> Forms
Fields -> Widgets
Result * Skin -> Output