Strongly Emergent

What comes from combining humans, computers, and narrative

Pylons Field Scheduler: Planning

I’d been leaning on the digital version of The Definitive Guide to Pylons, but I was gifted the physical version not too long ago. I’m jazzed about that: having another form for that data is going to be useful for me. With that in hand, I’m starting on another Pylons project. This may evolve into my project for the Pylons course that I’m trying to get my school to approve, but I’m going to do it even if I don’t get the class approved, because it’s interesting and if I do it well it’ll be useful to someone I care about.

This is a trivial project overall, but that’s what you do as part of the learning curve. This project will create a web site for scheduling the use of sports fields. Users will be able to visit the site and easily see what’s currently scheduled and create requests for field usage. Fields will show up as available at a given time, booked, or request-pending. Requests go to field coordinators, who resolve conflicts and approve requests for field usage. They should be able to do this as quickly as possible - current mechanism envisions that field requests generate an email to the coordinator or coordinators, who can click on a generated link in the URL and approve the request just by that click. Non-response is the same as declining approval. So the coordinators have a bit of a workload, but that’s what it means to be a coordinator anyhow.

Expect more posts to show up with notes towards this project. I’ve got a catchy name for it, too. “Field Availability and Scheduling Tool.” FAST - that’s a good acronym, not worsened by the number of projects that have already used it.

What I’ll be trying to consciously think of during this project is data structures. What do I need to provide? What kind of database structure is best for sitting under this, even if I’m only going to interact with it through SQLAlchemy? How can I keep the system open to further use with minimal overhead?

My ambition - we’ll see if I can actually pull it off - is to follow this up with an app that creates a schedule for students and teachers given a set of constraints (working on 3SAT problems, basically, and trying to figure out what the difficulty class of this one is). After that, I’d like to write a recommendation engine. Neither of these are trivial projects, and there’s a pretty good chance that I won’t get them done before graduation. That’s okay. The journey is the important thing; and if I make it through the journey to get them working (nevermind working at a high level of optimization), I’ll be willing to call myself pretty handy with Python.