Program design is an interesting process. You start out knowing the basics of the problem and begin to address the apparent issues. In the process of fleshing out the solution, the overlooked minutiae start to appear, forcing initial assumptions to be reexamined. So you go back and make changes based on what you know now, then take another look, and go back...

Computer programmers call this an iterative process. I've experienced it in other types of projects; it just seems to happen with greater velocity on virtual projects. In an iterative process you discover things, find connections previously hidden, perceive new requirements. It can be both fascinating and daunting as simplicity yields to emergent complexity.

I'm still worrying out a class scheduling system. I believe I have database schema to the point where I can move on in the process. I thought I'd share that schema with any other computer geeks that might be passing through. The SQL is MySql flavored and I made a happy little picture of it ( see prior post for details on how).

I foresee an application that can be used not just prior to the event, but conceivably during the event to allow for inevitable changes. There is an allowance for point in time change logs.

The design allows for, among other things: Application logins, with security levels. Schedule for many different events. Event time span, locations available to the event, the times those locations can be used, private locations ( i.e. someone's camp) with non private available for the scheduling of the event itself. An instructor does not need to be tied to a login, allowing net challenged individuals to be scheduled by an administrator. Instructor self registration and self scheduling, through blocking available time and entering or selecting classes they are willing to teach. Instructor on site information, allowing for class cancellation or shifting. Class base information. Scheduled class information, which can change from the base. Scheduled class change tracking, changes like new instructor, new location, new time or outright cancellation can be referenced to the original offering.

One of the things that came out of this exercise was the idea that an instructor could simply log in and get a listing of just their class schedule. Which lead to another idea which I think will make many people happy but was outside the scope of original design: I'll call it MyClasses.

With MyClasses, an individual could log in and mark the classes they're interested in taking at an event and get that list. Further, given the dynamic nature of large events, they could see if those classes are still offered, if they've changed since they last looked, etc. If they're also teaching, that would show as well, conflicts could be highlighted... It's more work than I originally envisioned, but I like the idea.

Just typing this, I see the possible need to apply login security not just at the application level but on a per event basis. I'll have to weigh that against complexity.

I have no application written yet, of course. That will take a few weeks or months, depending on my schedule. It will be PHP, mostly because PHP and MySql are offered as an option by most ISPs, including mine. If it comes together well, I'd prefer some SCA official site host the thing, my little corner of the web won't be able to take a full blown Pennsic sign up. Well, maybe. We'll see how it goes.

From: [identity profile] susannaknits.livejournal.com


First, THANK YOU!

A few things that occurred to me this year - you may or may not find them desirable or implementable, but I thought I'd mention them, in case:
- It would be helpful to add a drop-down category list to the class registration process, so the instructor could choose the appropriate category for the class. This would save the staff from having to assign categories (and prevent category mix-ups like having a hands-on knitting class appear in "Middle Eastern Clothing").
- If there could be some designation like "Loud", perhaps we could avoid having a lecture class next door to a performance by Volgemut. (Well, actually, it was on a diagonal, but it was still plenty loud.)
ext_44932: (Default)

From: [identity profile] baavgai.livejournal.com


Lol, I'm not sure if "loud" isn't a little too specific.

However, the drop down list of categories is a good one. I'd intended something like that. I'm still debating a hierarchy or flat category list. The database design currently supports the hierarchy model, but they're difficult to implement well and have a number of sneaky pitfalls.

I do think letting the instructors have as much involvement as possible in data entry is ideal, as it offloads admin work and hopefully increases accuracy.

From: [identity profile] loosecanon.livejournal.com


I like radio buttons in general, but for this one dropdowns is more appropriate.
No matter what choice list is offered to the teachers, you might also want to put in an "other" field, and an option for "many iterations of THIS other, make into standard choice" This would allow not only teachers to select their own category, but also for a new category to be created on the ground.

I like the idea of "loud", "dirty", "hands-on" and so on, which allows the people with the pretty silk class to avoid the room where the grinders were in use the day before.

This year, I gave my phone number to the staff, so anyone wanting specific instruction in one of my subjects could easily find me. If that were an option "Roving teacher, classes limited to one-two by appointment", with a listing in the book and on the board so people knew that they might be welcome to an open fire session, perhaps, or a similar intensive situation, it might help open more people to teaching.

If there were a list of "we would love for someone to teach this" we might attract new instructors who have perhaps been reticent.
ext_44932: (Default)

From: [identity profile] baavgai.livejournal.com


I should probably note here, the code and graph are subject to change. In fact, I just made some edits. I've put up an index page (http://www.chaingang.org/schola_app/) and will probably place a link to the demo there, when viable.
.

Profile

baavgai: (Default)
baavgai

Links

Most Popular Tags

Powered by Dreamwidth Studios

Style Credit

Expand Cut Tags

No cut tags