807.band
> a collection of tools for band camp
college band camp focused on forming informal relationships and the fundamentals for a field show.
marching fundamentals were taught as stations and evaluated with a checklist.
time for socialization happened in our downtime.
course credit was given with participation so stations and attendance were part of the grade.
streamlining stations
being friends with the drum majors had some informational perks.
frustrations with station processes were felt and my technical chops were made known.
auditing overall progress and gathering insights on difficult activities was desired by leadership. the solutions were in a website.
i was asked to convert paper processes into a digital format towards the end of my first year.
after a few weeks the proof of concept was ready:
extending what exists
an existing site for the band had a members only section guarded by .htaccess
on an apache server.
before summer began the band director and i met to discuss building upon this and the current stack.
previous experience with php and mysql proved really relevant here.
a summer filled with code
coupled with summer courses and hanging out with pals i focused on development.
timelines were loose and only occasional updates were shared.
many late nights were spent coding away because it was enjoyable.
lacking confidence in sql
storing station progress and attendance information was the primary purpose of this project.
wanting to minimize database tables and entries, foreign key ids were stored as substrings.
this was fine for a functional site but the power of JOIN
was missed.
INSERT INTO `events`
(`eventID`, `title`, `datetime`, `memberGroups`)
VALUES
(1, 'Rehearsal', '2019-08-08 04:18:00', 'g_3.g_5.g_6.g_7.');
hand rolling elements
reusable web components were unknown to me so jquery handled the page updates and client requests.
event listeners captured clicks and sent information to the server then used data from the response to redraw new elements.
inline css and icons made this tedious for admin views.
launching at band camp
the end of summer brought band camp and i was hacking to the start.
functionality for the site had been finished but placeholder data was being used for testing and there was no production.
code was committed in a working state then downloaded on the band server while scripts of sql were being written.
all days before section leaders arrived to prepare.
despite this rush there were only occasional problems with accounts!
usability in the field
rehearsals happened outdoors far away from campus without any wifi.
concern of unstable internet connections was raised towards the end of development. thankfully there was good reception.
station evaluators used their phone continuously and quickly noticed a fast draining battery.
initial blame was given to the site but we discovered displays consume heaps of energy whenever on. regardless of the site.
testing failed to account for this so the recommended workaround was turning the screen off when possible.
continuous iteration on attendance
basic admin controls for creating events with various member groups was available at launch.
recurring events happened frequently but an option to set repetitions was never implemented.
afternoons in the dining hall were instead scrambles to make entries for upcoming rehearsals and games.
rewrites in the heat
a mostly successful year afforded another summer for development.
newer technologies became appealing and were explored instead of expanding the feature set.
i encouraged my roommate to join the developments and together we rewrote the station and attendance functionalities. big thanks @bryce.
icky details often stumped us while learning dynamodb, express.js on node.js, and react.
learning to work remotely also added challenge.
prior to band camp we moved back in and embarked on an exhausting coding grind through the hottest days in slo.
continued developments
during the following marching season i dropped band for another club.
the site continued to be maintained as @bryce led ongoing efforts with others contributing.
enhancements followed with a consolidation of member accounts and refinements across all other experiences. band won again.