Google Summer of Code 2006 Application
Kexi Web Forms

Jacek Migdał

Application sent to Google

Table of Contents

  1. Project genesis
  2. Project description
  3. Questions and answers

1. Project genesis

The number of web application is growing steadily. Although, it is not possible to make everything using web technologies, this approach could simplify usage. There are many open source examples where simple servers could benefit to user. One of existing is CUPS service, where printing management could be done easily by web browser. There is a real need to make some interfaces available through the net.

Web interfaces are necessary in database applications like Kexi. Idea of converting widgets to web format is not new. Our property competitor - MS Access already have this feature, but it is using unstandardized technologies (e.g. ActiveX). In contrast to this solutions (.NET), Kexi Web Forms will be compatible with W3C standards.

The project objectives:

2. Project description

Kexi Web Forms will be mainly provided by a small server. I am planning to reuse existing KPF server code (from kdenetwork) to make this solution integrated with KDE.

The general schema:

KexiDB -> Kexi Web Forms -> KPF

(dashed lines points future possibilities)

The project work will include extending KPF to server framework and writing Kexi Web Forms. Dividing this functionality into three parts will avoid problems with packages (strange dependencies).

The project will be implemented in C++ using KDE and Qt library. As much CSS and XHTML data as it is possible should be kept outside from binary code. This would allow to customized appearance.

Creating server framework based on KPF will help others project to make them web-enabled. With plugins KPF will be easily extend able.


Data handling could be problematic. Now it is impossible to get, for example, 5th record from SELECT * FROM people, using existing KexiDB library. So it is necessary to rely on caching.

An object (need data) <-> Proxy <-> Database

In this model there will be proxy object for each SQL query. An object will request data from proxy. Proxy will check if it has up to date data. If not proxy will update them. Up to date will be defined by interval value. Interval value could be set by user.

Usability aspects:

Top: Logo, database and object name, Bottom: Object browser, object

Appearance should be similar to the Kexi application. Object browser will look like a tree look in file browsers.

3. Questions and Answers.

Q: Why the project concentrate on using web server and only point generating PHP code as optional?

A: There are good reasons to use server over PHP code:

The PHP code will not support all types of databases(but it aim to do so). It will be provided mainly for web developers who want use Kexi Web Forms objects on their sites.

Q: I have seen similarly project before. Where is it? Why you do not extend it?

A: A proof of concept server exist. It is Kexi Web server (1). It was written as an example of using KROSS and it lack of major features. It is written in python so it does not integrate with KDE well. Moreover, It works a bit differ then I would like so it is not possible to reuse it.

Q: I have a question...

A: Feel free to ask me using email

Back to blog ->