So everyone knows that registration is custom code. I started it, I wrote the bulk of it, then I eventually managed to trap people on my team who knew at least as much as I did to continue working on it. As it develops year after year, less and less of it is my code. It is starting to evolve beyond my ability to comprehend the code thanks to Sammich and his Vendor system which will eventually take over the site.
So the system runs on an online database. What happens for con is that we copy that database to one of the admin computers, and that computer serves the DB to all the registration computers. The “live” system is no longer online, it only exists (for us) in the GSR building on our computers. Now it would be really bad if someone logged into the online system and made changes to the database while the system wasn’t there. Well, not REALLY bad, but that’s why we close it. We simply don’t want someone making a change that we will later overwrite with the new DB. The database updates each time you log in, so the OCPD one (me) doesn’t want anyone even logging in to the wrong site.
At-Con we run a similar UI on top of the same database. In fact, the at-con system can be accessed via the web if you know where to go and have the proper permissions for it (which you don’t). IF we ever got reliable internet at the GSR we could run the system off the website instead of locally which would eliminate the need to shut the system down for staff members. We may even keep it open for con-goers with a few code tweaks (such as not being able to change any info once you’re checked in). Unfortunately, reliable internet is something we just don’t have at the GSR. We even found out that the GSR free internet (which is terrible) is worlds better than their paid internet. Facepalm. Seriously.
After con is over we make a few backups of the database and store them in a few cloud locations so that they’re safe until one of us has the time (usually a week after con) to put it online. Now, we could open the system back up, but this is the time when we let the system rest (or us, at least). We plan what upgrades and bug fixes we want to do before we open, and go to work. This year we had our last code party in November, and then started having them again after the holidays. This year there was very little to do on the general reg system except for make our system COPPA compliant, and verify that other system changes didn’t break reg. We added a panels system, updated some pricing stuff, added military discounts, upgraded the contracts code… Lots of cleanup and new stuff.
We kept it closed longer than we wanted to because we wanted a panels and vendors ready to go. We decided to open without vendors open because vendors was supposedly close to opening and it wasn’t going to be open for the general public, anyway.
I forced reg to open on 5/15. The team wanted to do more testing and things and I wouldn’t have any of it – I wanted to open!!! So we opened. There were some very small bugs in the reg, but really nothing I can remember. So, we had a really smooth opening! w00t!
Thanks to the mindless ranting of a staff member who was close to me and the process, a few people became under the impression that the reg system is “broken” and needs to be “fixed” every year. We are constantly enhancing it like any good piece of software. No code is ever finished and using someone else’s “finished” system means we’ll have to update/upgrade it anytime THEY feel like it. It also limits the stuff we can do with it when we want. So, our reg system does not need to be “fixed” although, like any evolving software, enhancing one aspect can accidentally create bugs in another area, and eventually large pieces of the code will need to be updated/revised/refreshed because they’ll be old and there will be better ways to do the same things.
Also, I’ve always been all about “does it work? Good. Launch. I don’t care if it’s not elegant. Launch. We’ll fix it later.” Because otherwise we’d never get anything done.
Vendors still hasn’t launched because it’s being done by our wonderful programmer perfectionist who writes really nice, pretty, correct code. It’ll be gorgeous when it’s done, but does it work now? As soon as I can get him to respond to me, we’re launching. >=[ (angry/serious Beta face)