Swimmer Ids

Over the weekend I have spent a lot of time thinking about Swimmer Ids.  I need a fairly flexible solution because it seems that there are a number of schemes used by teams and each is slightly different.  At least, that is the case here in TSA country.

  1. Simple numeric sequence – each swimmer is assigned a number starting at some predetermined number and incrementing from their.  This is very simple and easy to implement.
  2. Gender numeric sequence – similar to the simple numeric sequence but there is two groups of numbers, each each with a gender prefix (B, G) to ensure they are unique.
  3. Alpha numeric sequence – similar to the gender numeric sequence except each age group and gender is assigned a letter as a prefix and the swimmers within that age group are sequenced.
  4. Numeric range (this is what our local team uses) – each age group and gender is assgined a range (e.g. 7-8 girls are numbered 800-899, 7-8 boys are numbered 700-799) and the swimmers within that range are numbered starting at the lower end of the range.
  5. USA Swimming Id – this is very simple as the Swimmer Id is constructed using a format defined by USA Swimming.

If there are other scenarios, I have not observed them in the 5 years which I have been going to swim meets.  To start with I will implement the simple id (which is already done since it can use the unique database id for each swimmer) and the numeric range (since that is what we use).  The alphanumeric range should work as well since I believe I can implement both using a “alpha-numeric” prefix for each age group.

Age Verification

I also committed changes which add some additional checking for the swimmers age.  I had found that some parents had missed their child’s birthday resulting in it being set to the current date and making their child 0 years old.  I added a check to compare the swimmer’s age against the minimum and maximum age (ours is 3-18) to ensure a swimmer isn’t too young or too old at registration time.

Swimmer Auto-Registration Added

Today I committed new functionality which implements a new option called Auto-Register.  Setting Auto-Register to Yes on the Swim Team Options panel causes new swimmers added to the system to be automatically registered for the current season.  This saves a step which I found many people missed anyway.  By default, this option is enabled.

It has been about a month now the MacDolphins have been using this plugin in conjunction with WordPress and everything is going pretty well.  Next thing to implement is the Swimmer ID – we need those next week for the Swimmer Open House kickoff party!

Added CSV Export

This morning I committed a bunch of changes which allow the roster to be exported in CSV format.  The CSV format can be opened in Excel or other tools which can deal with comma separated data.  We’re using the data to order t-shirts and verify that all of the families of the swimmers on the roster have been billed correctly.  Now that the CSV export is working correctly, I will go back and modify the SDIF export so it sends a file download to the browser as opposed to having to copy and paste it like it currently is.

Two Weeks of Swim Team Registration

It has been about two weeks which our swim team, the MacDolphins, has been using wp-SwimTeam in conjunction with WordPress for swim team registration.  This has been a pretty good testing experience and for the most part, has goine pretty smoothly. 

However, some things which seem obvious to me apparently aren’t so obvious so I will need to rethink those.  For example – when adding a swimmer, the swimmer should be registered for the current season by default as part of the registration process as opposed to making it a separate step.  I also need to add some birth date checking as we had a number of swimmers registered with the current date (the default) which means they were born on the day they were registered.

I also ran into a problem where anyone using Apple’s Safari web browser (either on a Mac or a PC) wasn’t able to do much because the Javascript behavior of any of the buttons on the GUIDataList objects (a nice spreadhseet like widget used extensively to present information to the users) was different than Internet Explorer or Firefox.  It was very odd and took a while to chase down but it is fixed so now Mac users are happy too!

The next thing I am working on is Swimmer numbers for swim meets.  In our area, each swimmer is labeled (usually on their arm or leg with a Sharpie) with their swimmer number.  Some teams number their swimmers sequentially, other clubs, like ours, give each age group a prefix and number the swimmers within the age group.  E.g. the 7-8 girls are numbered 801 – 8xx and the 7-8 boys are numbered 701-7xx.  We will need this capability in the next 2-3 weeks so it is bubbling up the list.  I also need to generate some reports so that is a priority as well.

WordPress 2.5 Dashboard Interface

The 2.5 WordPress release has been out for a few weeks but, I haven’t paid too much attention to it as I was focusing on getting the plugin sufficiently complete to support our Swim Team registation last weekend.

Today I uploaded 2.5 into my development area.  Yuch.  I really don’t like the color schemes at all nor do I like the “all the way to the edge of the browser” design.  I am not sure what to do now – the new interface really clashes with the work I have done on the plugin.  I guess it was inevitable but I don’t really feel like dealing wiht it right now.

If I can make some simple CSS changes, that may be ok, otherwise I’ll probably stick with 2.3.3 until after this season is over.

Swim Team Registration – baptism by fire!

Last Sunday we had our Swim Team open house and registration.  It was the first serious test of the work I have done by someone other than myself.  At work we have 8 laptops in a rolling case we use for workshops and training so I brought them home and set them up for people to use – I would have 8 people registering simultaneously.  Because most people wouldn’t have access to their e-mail, I had them visit me first where I assigned them a username and password.  They then logged in and registered themselves and their swimmers.  Everything went pretty well for the most part.  Except for one minor glitch.

I had a very late request (like an hour before registration) to capture one more field so I adjusted the data model, changed the form and tested everything.  Since the data model changed I needed to deactivate and re-activate the plugin for the tables to update.  Worked great in my development area but I forgot to deactivate and re-activate on the live server.  Oops.  People were getting database errors when they tried to update their contact information.  Great.

Fortunate, the important part, the actual swimmer registration was unaffected so I had people skip their address and only worry about their swimmers.  This worked fine and we registered almost 100 swimmers in about two hours.  I knew if I had 5 quiet minutes to look at it, I would know what was wrong.  Sure enough, once open house ended andI could look at it, I immediately saw what the problem was.  Duh.

Now I need to ping every registered parent to update their contact information.

Swimmer data model enhanced

Last night I enhanced the swimmer data model so additional information can be captured.  The swimmer record now support five (5) optional fields which are under the control of the site admin.  This is similar functionality to what the user profile provides.  Both the User profile and Swimmer profile optional fields hve been enhanced to support required, optional, and yes-no fields.

I also made a bunch of other minor tweaks to various things as I get ready for Swim Team registration on the 13th.  Our team registration will be the smoke test of the system.

Kudos to WinSwim

Yesterday I completed the first pass of exporting a LSC Registration Pyramid SDIF file.  Since I only have the demo versions of the Hy-Tek tools (Team Manager and Meet Manager), I sent the SDIF file to the support contact I have been working with at Hy-Tek.  Meet Manager can’t read the file which makes sense because it contains roster information, not meet entries.  Team Manager can’t read it either because it doesn’t import SDIF.  Great.  It turns out Hy-Tek really only supports a subset of SDIF.  Now what do I do?

When I first started looking into this problem, I found a couple other similar applications which manage swim team rosters and meets.  One was from EasyWare, the other from WinSwim.  I tried to import the data into WinSwim and didn’t have much luck.  I then sent the file to their support e-mail address and hoped I had simply made a mistake in my SDIF file.  I got a nice reply stating that WinSwim didn’t support the LSC Registation Pyramid and suggested I structure my file a little differently OR use their ASCII import method.

The ASCII import method didn’t look too difficult but instead of tackling it last night, I played Rock Band with my son.  I am really glad I played Rock Band instead of working ont he plugin!  This morning I woke up to an e-mail asking me to download and try a new version of WinSwim which support the LSC registration pyramid.  Yeah!  I installed it and imported my sample data without any issues.  How cool is that?  Unless I run into a problem, I expect our  team will make an investment in WinSwim instead of Hy-Tek.