in reply to (OT) designing a "per event, resource schedule" manager

Well, if nobody else wants to take a stab at this one.

A couple of years ago I wrote a Webapp, using CGI::Application and a bundle of other tings including Time::Piece to run golf course tee-off time scheduling. Slots lengths were configurable (based on preferences) because some courses tee-off from only one hole, others run dual tee-off and tighten the slot timing depending on the day of week. You don't need to use a fancy calendar module. As I recall I used a simple HTML calendar created dynamically to select the day (there are some nice JavaScript ones as well) and then created a table where each timeslot was a clickable area using HTML::Template already booked timeslots were in red and could not be clicked! Pretty simple really. Class::DBI and its family, as well the the plug-ins for CGI::Application made it a lot easier. As of now it manages 37 golf course for 28 clubs. It has been adapted for beauty salon booking and on the golf version it also handles lesson bookings for the pro's at the clubs. It isn't trivial, but I wrote it on my own over a period of about 6 months, so it wasn't a nightmare either!

jdtoronto

  • Comment on Re: (OT) designing a "per event, resource schedule" manager

Replies are listed 'Best First'.
Re^2: (OT) designing a "per event, resource schedule" manager
by leocharre (Priest) on Aug 04, 2006 at 14:02 UTC

    We have this one client who is presently managing bookings for event spaces with an excel spreadsheet. This poor man highlights by hand the hours he needs and names them by day, etc. Every time someone wants to book, he looks it up click click click click and hopes that his paper version, computer version, or whatever... is recent. I could export all with some level of error, into a sensitively formatted data set.

    A lot of people have already existing calendars. The only stability I have seen is the ical standard .. Mozilla Sunbird is coming out.

    With a method that uses the ical standard.. Your gold client, this events organizer.. a beauty salon manager.. would all be able to (if they want) enter the changes in their laptop, and a script could regulalry update the website ical file or records- from their data.

    I am thinking my problem separates into two things that could be re-used. One is a table layout for mysql for the ical standard (which I can't see an example of).
    The other is a time collission detector.

    The tie collission detector could simply be.. if we have unix time 23 through 32 (excuse me).. and an inquiry for time 31-34 was made.. we can simply detect that $requested_start < $last_registered_end Thus a collission is present.

    I am using CGI::Application, HTML::Template, and CGI::Session. I was hoping to use Calendar::Schedule, but it's kinda buggy- or super duper unfriendly to develop with.

    I'm gonna offer the project up for grabs when done, so nobody has to do this again!!! :) </p

      if we have unix time 23 through 32 (excuse me).. and an inquiry for time 31-34 was made.. we can simply detect that $requested_start < $last_registered_end Thus a collission is present.

      Ah, but how about back-to-back appts., where you start before one, and end before the other? Or a new appt. that "embeds", i.e. it has a start time after, and an end time before, another pre-existing appt?

      My feeling is that scheduling is a pretty complex set of rules...but I'd be thrilled to be proven wrong.

      ----Asim, known to some as Woodrow.