Thursday 11 December 2008

YaWa - AppEngine Library to automate models behaviour

When it comes to my qualification, i am a software engineer. When it comes to my work, i deal with only webapps. And when it comes to web app, it comes to data exchange - between the system and the user. Hell lot of data exchange. Most of it is in the form of "forms". There is a form wherein user inputs some value to the system. The system the processes the request and gives the response. A major share of these requests and response are based on some tables, or the DataStore entity as AppEngine calls it.
I had been working on a way to abstract these interactions. So that the forms could be generated magically. These forms are not just plain DjanoForms, rather highly interactive forms, which has the ability to perform all the basic actions - create new record, edit an existing record, delete an existing record and search a record. And now i have with me - YaWa.
YaWa stands for Yet Another Widget fro Appengine. It is a library that can be imported in your appengine applications and helps you abstract the process of human-system interaction.

What does YaWa consists of.

In plain terms, yawa consists of a couple of python modules and a couple of templates. That's it. There won't be much need to modify the core files, until you want some feature that is not provided. The templates are the eye-candy. They are responsible for the look and feel of the forms. You may modify these templates in order to suit your needs.

How to use YaWa

In order to use YaWa, all you have to do is to prepare a list of Models that you want to work with, a list of those properties you want to exclude. Now the core module of YaWa, called bond, will feed on these lists and based on the templates, will generate UI elements.

Project code and live demo

The project is hosted at http://yaw-appengine.googlecode.com. A live demo can be taken at http://pran.appspot.com.

Suggestions and issue reporting

Report any suggestions, feature requests or issues here.

No comments:

Post a Comment