July 16, 2007

Project Guest Manager

Sometimes when I'm bored or when there is a need, I need applications for my own use, or for fun. I'll highlight them here from time to time. This application I started one afternoon when I was bored. It's a guest list manager which is comprised of a read-only Pocket PC mobile client and a desktop application which allows you to enter guest names, number of guests, their category and which table they will sit. It's very Chinese banquet oriented because the tables seat a recommended 10 people.

I wrote the Pocket PC mobile client first. It took about 10 hours over friday-sunday. The desktop application also took about 10 hours, over monday-tuesday. The database is a pocket access database but as I found out, ADOCE has been discontinued for windows mobile 5 which makes my app obsolete before even being released. Thus my dreams of charging people for my 20 hours of work has gone down the drain. I hate you Microsoft. Pocket Access wasn't great but at least it filled a need. The need to have a database sync to pocket pc automatically. I didn't need the fancy table joins and macros. I didn't need super high performance.

Anyway the apps are simple. On pocket PC you need three files.


  1. GuestManager.exe (which is an ARM based pocket PC app)

  2. \My documents\GuestList.cdb (which is a pocket access database - converted from a desktop MDB)

  3. \My documents\map.png (which is the table layout of the banquet you're organizing).






The trick is converting the MDB to CDB. You need an old Active Sync. If your Pocket PC can't work with an old Active Sync, you're out of luck.

On the desktop you need the GuestManagerDesktop.exe and the GuestList.mdb in the same directory.

The desktop app does some cool things.

  1. It stores state information in an xml file. It remembers the location of the last database and reloads it.

  2. We print 3 types of documents (alphabetical guest list, guests by table, guest by category) without use of special report components. It's not easy because it involves complex looping and special index and counters.


Some features of the desktop app.

  • Add any number of tables and categories just by adding a guest to the table or category. The table and category are combo-boxes which allow test entry. It supports special characters (as far as i know) - Not sure about unicode though.

  • Guest list is browsable by table and the application indicates unfilled, filled, and overfilled tables using colour cues.

  • Able to delete and move guests by right-clicking on the guest name or selecting from the menu.

  • Able to change guest details by selecting the guest, changing the details and clicking on Save.

  • Save will either insert a new guest or update an existing one, depending on whether the guest already exists.

  • Performs analysis of guest to table distribution.

  • Console log allows you to revisit all the actions performed in that session.

  • Allows printing of three kind of reports with checklist boxes:

  • a. table listing
    b. alphabetical guest listing
    c. listing by category

I'm pretty happy with the app. It could use a bit more polish such a splash screen or a nag window and some crippleware. Maybe the log could be persistant.

No comments: