A Programming Challenge: Fringe Scheduling

userpic=fringeuserpic=toshibaIf you haven’t figured it out yet by reading my blog, we’re in the midst of the Hollywood Fringe Festival (FB), meaning almost 300 shows and events spread over Hollywood and West Hollywood during the month of June. It is impossible to figure out the best way to schedule the shows you want to see in the time you have.

Or is it.

Now I’m not an actor, director, producer, or anything connected with the theatre industry, other than an audience member. I am, however, a computer scientist. I’m a software engineer, and I know how to draw up specifications for problems to be solved. Scheduling the Fringe is a solvable problem: after all, I had kids at the California State Science Fair doing something similar with school assignments.

So here’s my challenge to you: I’m going to lay out the problem as I see it. Can you develop an app or a web page that can solve the problem in a usable fashion? No pay involved other than the glory of the challenge, but I will pass any good results on to the folks at the Fringe to consider next year.

Here’s the problem:

  • You have a database of shows and events. Each show has webpage link, a title, a venue, a ticket price, a running time, and some set of performance times.
  • You have a database of venues, each with a street address (which you can likely use a Google interface to get GPS coordinates and walk time).
  • You have a list of shows and events that someone is interested in, together with what we’ll call an interest level: 0 – no interest to 3 – must see.  This could be an added parameter on the current Favorites list (go to the website, create a user, and then you can save favorites), or it might be entered in some other way.
  • You have a list of times for which the person is available, including some times marked a “meal breaks”. For example, I might be available weekends between 11am and 11pm, with a 1 hour dinner break after 5pm. You get to determine the most user friendly way to specify this.  Perhaps this could interface with Google Calendar?
  • You have a desired dollar amount they want to spend on tickets.

Given these inputs, produce a best fit schedule, that includes as many of the highest priority shows as possible, then as many of the next priority tier down, and so on for priorities 1-3. You need to take into account walking time between venues, or if the distance between venues exceeds the walking time by 15 minutes, driving and parking time (parking can take up to 15 minutes if you aren’t lucky). You need to take into account meal breaks. Allocate 10 minutes before a show to allow time to check in and get seated. Make sure the total cost does not exceed what the user has indicated.

Ideally, this tool might even connect to the ticketing system (including purchasing Fringe buttons) such that once a schedule is set, it can be ticketed. There might be the need to adjust if a show is sold out of tickets. Ideally, whatever it ticketed could then be saved to Google Calendar or whatever the Mac folks use.

For now, build the databases as you see fit. If you need, I can talk to the Fringe folks and get you information on the JSON/XML API to interface with their site.  Ideally, this should be something usable by folks used to normal websites (i.e., not a complicated interface).

I think this is a solvable problem, and might actually be a good assignment for a class as an example of a real world problem. Feel free to post questions here, and either I’ll answer them based on my experience, or I’ll pass them to the Fringe for resolution.

OK, Go….

Share

One Reply to “A Programming Challenge: Fringe Scheduling”

  1. It is solvable, but I approached it differently for #FFVSO. There’s just way too much information to enter, including things that change on the fly like preferred time for dinner. Instead I made a tool to assist the user in making a schedule. As you pick shows and times (automatically taking into account your unstated preferences), it warns you about conflicts, walking times (I go out and measure best and worst case travel times), missed favorite shows and so on.

    Even with all that, it’s only useful for extreme fans who want to pack in as many shows as possible. Most people just mark up the official schedule in pencil with the few shows they want to see, and that’s all they really need. Some do more shows and start getting frustrated with erasing their paper schedule choices; those are the ones who could use a scheduling tool.

    With bigger festivals, scheduling isn’t as much of a problem (there’s always something on) as finding the good shows. That’s solved by having reviewers to rate shows. But that’s another category of problem.

Comments are closed.