The Side Project is DONE*!

* Software is never done

Today I made the final updates to AltarSchedule.com! Well, before it's going to be used by everyone. It only involved a few massive rewrites!

I've documented a few of the rewrites. The latest one was pretty significant. I showed the site to my Dad who asked me if the person who does the altar server schedule is also in charge of scheduling Eucharistic Ministers and Lectors as well. I thought, well if they are, then I'm going to be pretty busy.

So I asked her and she said yes, and it would be great if I could get that in there.

Sure! I mean, no problem really. Just a rewrite :)  But I enjoy what I do so it really is no trouble. Especially considering that this will help everyone involved.

My initial data structure of a “family” was very much geared towards parents and altar servers as children. This was literally like this:

struct Family {
    Parents []User
    Children []Child
}

This latest update has made it so there are just Users, with a UserType, and a subset of UserType values are “Assignable” (A parent will get the Contact user type)

And the Family structure is just “Members”.

This also required changes to how the admin scheduling works (now able to filter by user type), and generally what the user sees and shouldn't see. Basically filtering by user types, so if a Lector files a change request, families with only altar servers won't see it. Same thing with volunteer opportunities. The admin can select what they need, and then families will only see them if they can fulfill it.

Of course, as I am writing this, I went back and implemented something new in the site.

For now I am only supporting the one church, St. Bernadette. I am not actively trying to spread it, but if that happens, it will be another decent chunk of work.

Happy coding!