Lighthouse Portal - Part 1


Project Web Development Volunteering

I volunteer as Webmaster for Lighthouse Elementary Cooperative, where my son goes to school. The community is full of supportive families, and joining has been one of the best decisions we’ve made.

Lighthouse Elementary Cooperative is a unique choice program offered within Everett Public Schools located at Jefferson Elementary School in Everett, Washington. Lighthouse is a community comprised of students from Kindergarten through 5th Grade. Teachers and families work together to support students by providing exceptional educational opportunities that go beyond those offered in a traditional classroom environment.

Lighthouse Elementary Cooperative seeks to elevate expectations of the traditional public school experience.

I feel personally invested in and responsible for each kid, like an additional caregiver. Every week in Kindergarten, I was teaching these kids how to make art projects: how to color, draw, use scissors, and clean up after themselves. I know their favorite colors, mannerisms, their likes/dislikes, and what they are good at or need extra help with. Emotional support and navigating interpersonal conflict are always a part of every session.

That investment extends to how I contribute as a volunteer. Tech skills can do more than coldly contribute to the economy. Here’s a great opportunity.

Community Portal and Marketing Website

Lighthouse has a traditional “marketing” website hosted via Squarespace. This is fairly typical, with information about the program, pictures, registration information, and upcoming events. It functions well and is maintainable by volunteers with little technical experience.

There is also a community portal. It is (was?) a PHP 5 application with a MySQL database, hosted by a small provider. The portal provides parents the ability to sign up for volunteering slots, submit forms, provide feedback, and engage with other Lighthouse members. There is plenty of room to expand the functionality, as well. I’d like to see more content devoted to assisting parents with volunteering duties: a catalog of repeatable art projects, fundraising tips, and especially support for new Kindergarten families.

The app works, and was built by a previous volunteer many years ago. I throw no shade in its direction. However, as the current Webmaster, I have some decisions to make. I don’t particularly enjoy PHP, the hosting provider is not responding to a support ticket that we’ve had open for over a year, and I want something that allows for inclusive online community engagement.

There is a lot of in-person involvement, but online is fragmented between a Facebook group and WhatsApp. Lots of parents don’t have a Facebook account (a trend that is likely to grow), and WhatsApp is typically segmented into grades/classes. The goal isn’t to replace these communication channels, but to provide an opportunity for every member to digitally engage together without the need for third-party apps and accounts like WhatsApp and Facebook.

Pressing Forward With a New Tech Stack

Maintaining the application in its existing state is something of a non-starter; PHP 5 reached end of life around 2018. Documentation for it isn’t even in the PHP Manual anymore—you have to go find it in the doc archives. Upgrading to PHP 8 would involve handling a lot of breaking changes for a codebase that I’d need time to understand in the first place.

Given that this is a volunteer site, I decided to go with a rewrite in a modern framework that is well-documented and straightforward to learn. I settled on SvelteKit, SQLite, and Cloudflare. Details of these choices are beyond the scope of this post. Long story short: this technology stack allows for clean code with minimal levels of boilerplate, dependencies, and cost, while being pleasant to work with.

Future maintainability and contingency plans remain unresolved and sitting quietly in the back of my mind. Barring the unexpected, I will be involved in the program for around 7 years as the current plan is to have my younger daughter enter the program and ultimately graduate from elementary school in 2032.

That’s a problem for Future-Max. Current-Max needs to start building. In part 2, I will jump into the design, foundational structure, and end with an MVP (Minimum Viable Product Portal).