Applicant: Tobias Markmann (tmarkmann@googlemail.com)
Project: Data Form Designer Suite for XMPP
Synopsis:
I would like to work for the XMPP Standards Foundation which provides a protocol for open, extensible and secure instant messaging and a data exchange on a suite which provides tools for creation of data forms for polls and such things in an easy manner so any XMPP user is able to create a form and provide it to other users.
My Jabber community involvement:
I know Jabber for nearly 3 years because I looked for an alternative to other, more common IM services like ICQ, MSN, etc. I know of IRC but it is intended to be a conference based instant messaging purposes. All the other services, ICQ etc. are mainly for one to one usage. I support a lot users nearly every day in Jabber's community chat rooms. There I've met many nice and interesting people so far. I contributed some code to the c++ XMPP library gloox [1] and started a monitoring project for XMPP servers [4].
I'm a member of the XMPP Software Foundation for more than a half year and interested it discussing about the pros and cons of new proposed protocol enhancements to XMPP.
Deliverables:
At the end of Google Summer of Code 2007 the project will represent a suite consisting of two separate programs. A visual form designer to create forms plus a bot which provides the form and saves the result. The user will be able to create a form within some minutes and provide it to thousands of XMPP users or just some specified users. The form receivers enter their data and send the results back, which are stored into a file. This way you can easily create polls, surveys, etc. Including a documentation and tutorial, of course.
Project Details:
The visual form designer will be written in C++ using FLTK2 for fast and cross-platform development. The user can create a x:data form in a graphical user interface and save it to a file. It will support all x:data forms which are mentioned in XEP-0004 [2]. The suite will also support multi-paged forms which are mentioned in XEP-0050 [3], different forms which are send to the client one after the other. It's similar to the RAD tools of famous GUI toolkits. This part shouldn't take that long because I'm familiar with FLTK2 and it's usage. Its interface will be kept simple and compact.
The form provider bot will have a graphical and commandline interface so you can run it on desktop and server machines. It's written in C++, too. It reads the form file you created with the visual designer and logs into a XMPP network. There it will provide the form using Ad-hoc commands (XEP-0050) and, if this project proceeds faster than I expect, a fallback method using normal chat. It will also apply black- and whitelists you've set with the visual designer so only predefined users can use it and are saved in the XML form file. The result is saved either in XML or simple CSV.
Clients which claim to support XEP-0004 and XPE-0050 are for instance Tkabber [4] and Psi [5]. At the beginning of Summer of Code I'll evaluate their support for these XEPs.
The result will be a real world application of this suite replacing XSF's memberbot, a small tool which is used inside the XSF for voting purposes. For example whether a XSF applicant is accepted or not. At the moment this is done by simple text messages and a x:data based solution would fit the purpose very well.
Project's progress will be documented at http://ayena.de .
Bio:
I'm Tobias Markmann, nineteen years old, from Germany. At the moment, I'm attending the BBZ Dithmarschen for my higher education entrance qualification. There I'll graduate in 2008. I'm programming several programming languages including C++ and PHP. I recently started with PHP but do program C++ for more than 5 years. Last year I've started a web XMPP server monitor project in PHP and C++ which was actually planned as a Google Summer Of Code 2006 project. It's called jabbermonitor [4].
If you have questions or just want to talk to me feel free to do so via Jabber/XMPP at tobiasfar@jabber.org.
Thanks for your attention!
[1] http://camaya.net/gloox
[2] http://www.xmpp.org/extensions/xep-0004.html
[3] http://www.xmpp.org/extensions/xep-0050.html
[4] http://jabbermonitor.ayena.de


