wp-SwimTeam v1.19 beta available for testing

I flew out to Phoenix and back this week and had some airplane time to work on wp-SwimTeam.  I have completed what I am calling “Phase 2” of the Event Model changes.  Events can now be assigned to a swim meet AND the Opt-In/Opt-Out system is working in the Event Mode (which I had broken in v1.18).

The majority of the work in this build is related to Events and their connection to swim meets which is the precursor to Phase 3 which will be the generation of Meet Entries in SDIF format that can be imported into tools like MeetManager and WinSwim.  I have also fixed quite a few bugs in the report manager which were present when either the User or Swimmer option count was set to zero.  There was some logic that didn’t test right and would result in using the default count which is 5.  So if you have seen checkboxes without labels on the User or Swimmer report generator, this has been fixed.

Please let me know if you run into any issues.  I am doing some testing with our team right now and we have our pre-season open house this weekend which tends to result in a good chunk of our registrations.  Assuming all goes well, I’ll release an update to the WordPress repository early next week if not sooner.


wp-SwimTeam v1.18.747 released

This afternoon I released v1.18.747 of wp-SwimTeam.  This release includes what I am calling Phase 1 of the new Event Model.  The event model has been completely overhauled in anticipation of being able to generate Meet Entry files in SDIF format directly from wp-SwimTeam.  The whole Events tab looks and works differently.  Events are collected into what I call Event Groups.  This release adds the ability to import events from a Hy-tek Events File (.hyv).  Events are managed (added, deleted, imported, re-ordered, etc.) within the context of an event group.  In Phase 2 events will be connected to a swim meet via an event group although the swim meet will still retain the ability to re-order the events on a meet by meet basis.

Key features in this release are:

  • Phase 1 of overhauled Event Model is complete. The new Event Model introduces the concept of Event Groups. Events are now defined in the context of an Event Group. Swim meets currently do not have any connection to Events but that will chance in a release fairly shortly in Phase 2.
  • Added ability to import events from a Hy-tek Events File (.hyv) into an Event Group.
  • Added ability to delete all events from an Event Group.
  • Changed Google Maps API Key from required to optional. If the API key hasn’t been entered, wp-SwimTeam will now gracefully work without it.

I changed a lot of code in this release, if you run into anything odd or functionality that isn’t working or behaves differently, let me know ASAP and I’ll do my best to fix it quickly.  Now that I am back to a stable code base I should be able to turn bug fixes pretty quickly.  That is hard to do when you’re doing a bunch of remodeling!

This release has been committed to the WordPress Plugin Repository so you should an update notification on your Dashboard.  You can also download it and manually update it from the Download & Installation Page.

Edit (4/16/2012 @ 10:07 AM):  This update includes a database update so you must de-activate and re-activate the plugin after updating to have the database upgrade run.  One of these days I’ll figure out a more elegant way to do this!

Gearing up for Swim Team 2012

It will be summer swim team season before I know it so it is time to start gearing up for the upcoming season.  I haven’t really looked at wp-SwimTeam since last fall and WordPress has had several updates since then. I found out today that one of the updates causes the “real name” for the users not to be returned so that is first on my list of things to fix.  There are also some GUI inconsistencies that I’d like to fix.

This is my short list of items which I want to implement this season:

  1. New/update Swim Team theme.  This really isn’t related to wp-SwimTeam per se but our site is looking a little dated and it is time to freshen it up.
  2. Results Import:  I said I was going to do this last season and I never finished it.  I really want to get this done this year.
  3. Export of Meet Entries:  The wp-SwimTeam plugin has all of the informtation (roster, scratch list, event list, etc.) to generate a Meet Entries file in SDIF format.  Providing this file will greatly simplify getting a team’s entries into either Hy-tek or WinSwim (or any other tool which imports meet entries).  This will likely be first on my list after fixing the name bug and the GUI inconsistencies.
  4. Document all of the short codes on the wp-SwimTeam demo site.  I really need to do this.  It would make it much easier for new people to pick up the plugin and do something useful with it quickly.

Season over, what next?

Our 2011 Summer Season is over and I will actually have some time to get back to work on wp-SwimTeam.  I find it hard to work on it during the season as I spend a lot of time doing swim team stuff.  Other than fixing something serious, I don’t have much free time to work on the plugin during the season.

But now the season is over and I won’t be working with our coach on line ups, spending time at the pool, etc, and I can spend some time on it again.  After our season there are a number of things I want to implement that I know we need for the MacDolphins:

  1. GUI improvements – there are a number of places the GUI can be confusing and needs some help.  I also hope to add some icons to make things a bit more intuitive.
  2. Export Meet Entries – all of the information can be stored with wp-SwimTeam, there is no reason why a Meet Entries file can’t be exported per the SDIF specification.
  3. Swimmer Reminders – similar to the volunteer reminder e-mails that can be sent in bulk, I plan to add the ability to send out swimmer reminder emails.  I am hoping that these reminder e-mails will improve the scratch process for us and eliminate our no-shows.
  4. Results – I have some work done (see the Flip-Turn demo) but do not have it integrated with wp-SwimTeam yet.  It isn’t complicated work but there is a lot of it to do.
  5. Hy-tek compatibility – there is some work done by others that should enable better Hy-tek compatibility.  I am hopeful that I can actually generate and/or process Hy3 and HYV files for entries, result, and events.
  6. New Theme – the MacDolphins theme needs to be updated.  It is based on the Sandbox theme and WordPress has evolved quite a bit since Sandbox was developed and even my extensions to Sandbox for the Sandbox-SwimTeam theme are showing their age.

More thoughts on the Opt-In/Opt-Out changes

I’ve made a fair amount of progress today on the new Opt-In/Opt-Out Event model.  One of the big benefits of this model is it will facilitate being able to generate a Meet Entries file (SDIF) which could be consumed by Hy-tek Meet Manager or WinSwim.

The meet event information has been in wp-SwimTeam for quite some time but I’ve yet to do anything with it as other things, like the Jobs system, have taken priority.  Knowing which swimmers are registered for which event will make the generation of a Meet Entries file fairly straight forward to implement.

What isn’t in v1.6.605?

The major feature that I had been working on which I didn’t complete is the ability to generate a Jobs vs. Commitment report.  The Jobs module allows each job to assigned some number of credits and there is a setting to set the minimum number of credits each user is responsible for.  By default the system will use zero which means there isn’t a minimum.  In the latest release, when a user looks at their My Jobs tab, it will show the jobs they have committed to and sum up the credits.  If the sum of the credits is less than the minimum, an error notification will be displayed for the user.

Right now this message is only displayed on the My Jobs tab but an administrator will also see it when view selecting the Jobs action for any user from the Manage->Users tab.  I had given some thought to displaying the notification anytime a user logged in but have conclude that would be too intrusive.  I may make it an optional setting at some point though.

The one thing I haven’t figured out is how to handle a situation like we have with our own team. On our team we ask each family to volunteer four times (four credits) for the season regardless of how many swimmers they have.  If both parents are in the system (primary and secondary contacts) right now they would be erroneously flagged if each signed up for two jobs because together, they have met our requirement.

Reporting  job commitments versus user is pretty easy and I will do that in the next few days but I have also considered reporting job commitments versus swimmer so that both contacts can be accounted for.  In speaking with some teams locally, they require two volunteer commitments per swimmer so that is yet another permutation to account for.  In the short term I will likely only report commitments versus users and leave it at that for now and revisit it after the season as there are some other things I need for our season which starts in three weeks:  Results, Meet Entries, and some work on WinSwim/Hy-tek interoperability.

I like DropBox

I’ve expressed my disdain for a number of things, primarily Hy-tek’s poor SDIF support in this forum so I guess it is appropriate that I also note some things I find useful and work well.  DropBox is one of them.  It solves a problem and solves it very well.

A lot of swim team files are shared among a group of people and e-mailing them around can be problematic.  We’re using DropBox to share some of the files and I am planning to store our WinSwim database in DropBox so the Swim Team’s computer and my computer will have access to the same database file.  I am optimistic that doing this will allow us to collaborate on the meet line up and heat sheet process without having to mail files around.  I’ll report back later on how it works out.

In the mean time, if you want to check out DropBox (free for 2GB of storage), use this DropBox referal link and I will get some extra space as will you when you sign up!

What’s next for wp-SwimTeam?

I have one more feature to add to the Jobs module before I consider it complete.  I have a request to be able to send out Reminder Notifications on a per swim meet basis which should be pretty straight forward to implement and I hope to have it done in the next day or two.

Once that is complete, I need to decide what to do next.  I have a couple of choices.

  1. I’ve had a couple requests to be able to import a roster into wp-SwimTeam.  I don’t think this will be too difficult technically but it does require a couple decisions.  Since swimmers in wp-SwimTeam are connected to parent or guardian users, what WordPress userid would the imported swimmers be connected to?  The obvious choice is the Admin user or user running the import.  Swimmers could then be updated at a later time to connect them to the appropriate WordPress user if/when it exists.
  2. Import results.  This has long been on my to-do list because the MacDolphins need it.  I’ve been working on processing results off an on as a side project (see Flip-Turn) with the intent to fold that work into wp-SwimTeam when it is functioning and useful.  I already have a lot the functionality working and the GUI will look familiar to wp-SwimTeam users but I have yet to tackle relays and really push the robustness of the SDIF parsing.
  3. Hy-tek/SDIF compatibility.  This is also something I need for the upcoming season.  Anyone who has read much of this blog knows that I am not a big fan of Hy-tek and their goofy checksum and weak support of SDIF.  Since it isn’t likely to change and lots of teams use Hy-tek, we need to resolve the data exchange problem.  This issue may be the highest priority for me personally and I’ve debated whether to build some functionality into wp-SwimTeam to try and resolve sharing data with Hy-tek teams.

Comments and suggestions are welcome.  I try to incorporate suggestions quickly if I can.

A new project?

Recently I have been working on a new Swim Team related project which at some point I will likely integrate into wp-SwimTeam but for now, it is a standalone application.  Pretty regularly I receive e-mail from people who want to post their meet results online in some form or fashion.  Most of the time these results come from Hy-tek in the form of a ZIP file or a CL2 file.

Generating or posting a static web page with some results on it is pretty straight forward and most swim software can do this in some form or another.  Storing the results in a database and presenting them as part of a web site isn’t something readily available as near as I can tell.  It would be nice to be able to upload a season’s worth of results and allow swimmers and parents to review their times and see the trends.  This is basically what I am working on.

At this point I can import a SDIF meet results file and extract the meet data from it.  I have some other infrastructure complete as well and will begin working on extracting and processing all of the result records in the next day or two.

I’ve based this project on two external PHP libraries.  I am using  the 2.x thread of phpHtmlLib, which I also use for wp-SwimTeam and ADODB.  This is my first time using ADODB and so far, there haven’t been any issues.  I decided to use it because I needed a database abstraction layer and phpHtmlLib has a ADODB data source widget which makes it very easy to present data to a user.

Documenting the .hyv File Format

Before I spend a lot of time writing code to read Hy-tek files, I thought it would make sense to try and document them first.  I’ve started with the .hyv file format which describes the events that comprise a swim meet.  I’ve documented the fields I’ve been able to figure out in a Google Docs spreadsheet.  If you’re interested in helping me flush this out, let me know and I’ll provide the ability to update the file.

You can see what I have so far here.