In the cloud, baby!

I was in the cloud before there was a cloud…

But I digress.  I’m feeling very proud of myself right now.  Amazing what happens when you ‘call something into being’ and talk publicly about a home brew project you’re stuck on.

I’ve been able to get through all those tedious little areas of logic that I really didn’t want to deal with.  Yes, memories of that really tough logic class from University came flooding back to me…

Scott needed three pieces of key logic on the reservation system – which would make sense to anyone who has been involved with any form of reservation system – and I certainly have the experience there (and in the cloud too!):

  1. The ability to block himself out as ‘Unavailable’ and stop people from booking within an ‘Unavailable’ period.
  2. The dreaded double booking issue that those of us who have worked on reservation systems at any level just absolutely love.  (note the sarcasm here).  This actually goes in hand with #1 above, in short, the exact same functionality.
  3. The ability to allow customers to book within periods of ‘Availability’ and to clean up those ‘Availability’ events.

I got the ‘Unavailable’ piece mostly working last night and fully working today.  I finished up the ‘Available’ piece tonight with the exception of one piece that I will be confirming with Scott tomorrow.

My biggest favourite piece of PHP coding out of this project is this:

$d_bookStart = date_create($e_createWhen->startTime);

The ability for PHP to convert datetime formats to it’s own native format.  ZEND uses the RFC 3339 format within the Events class for datetime.  I was dreading having to do all kinds of string manipulations just to figure out if the reservation time period touches an ‘unavailable’ or ‘available’ event  and the associated logic.  Instead, I can simply take two datetime variables an compare them.

So what is next?

  • Clean up the code in a big way.  It’s well commented but I need to start using functions more than I have.
  • I need to start building the user interface so we can conduct easier testing.  Right now the dates are hard coded.
  • Once this is done, I think we can start developing specifically for Scott’s website the final version of the product.
  • I am considering packaging this up in some way to sell.  I think anyone who is trying to run their own business with an online reservation service could benefit from this tool.  While there may be other tools out there, Scott and I have not found anything that really fit what he was looking for.
  • I have ideas for pricing and it will be cheap.  I want those starting new businesses (and even existing businesses) to be able to get something useful that can be deployed quickly, so they can be up and running quickly.
  • I will certainly allow people to run a full test, try before you buy, in some way via my website.
  • About that MySQL version – it’s certainly doable…  And could be used to turn into a more professional offering.  For now, I’m going to concentrate on the “Lite” option.

Wheeee!