eVitabu dev week, March 2023

Progress made during the eVitabu dev week in March 2023.

Photograph of a man holding a tablet with eVitabu and APF logos on it.  Africa is shown in the background,

It feels like ages ago now (well, it was five months ago!), but back in March I took a week off my day job and travelled to stay with friend & colleague Geoff and family.  Friends tell me I often have a "busman's holiday" [1], and to an extent they're not wrong - this break was primarily an eVitabu dev week.  Here's what I got up to.

Implement Docker

I started looking at Docker during a previous dev week as a way to make it easier for me to manage my various development projects.  Previously, the idea of splitting each role into a separate container was doing my head in, so I gave up.  My goal was to get EVM (eVitabu's web management platform) running in Docker on my development machine, letting me keep my OS install clean.  By using Docker I could also match my local development environment easily with production, and test newer PHP / MariaDB / Nginx versions in a safe environment.

On my first day I got Docker working thanks to a tutorial I found online and a conversation with good friend Adam.  As this process wasn't entirely plain sailing for me I wrote a blog post about it.  Hopefully that saves other people some time.  Having Docker available to me as part of my development environment has actually given me some additional confidence, especially if I have to rebuild my computer's OS installation (I need to rebuild both of my development machines soon, as elementary OS cannot be upgraded without a full reinstall - time to change Linux distribution again).

Android: getting the registration form to take your photo

Back in 2022 I actually had a working version of the integrated registration process except for one item - taking a profile photo.  We use a photograph on the sponsorship portal to gain donations, and a photo can certainly help the donor to feel a connection.  While it would have been possible for the user to upload a photo later on, via a profile edit, I can tell that profile edits are very rare so this wasn't a viable option.

While the documentation on the Android developer site is good, I'm not very used to reading developer documentation and then determining how to implement what I've read in my own projects.  Mostly that's because I don't have to do it very often.  Fortunately I found an example project on GitHub.  Sadly it didn't work straight away, the first compile instruction failed, but I fixed that (😃) and was then able to work out how to build that into eVitabu.

Initial testing looked promising, but then I tested on some other hardware and Android Virtual Devices and found that sometimes my image was rotated 90 degrees.  This should have been an easy case of pulling up the documentation, finding out how to detect the rotation and applying a correction, but I need to support back as far as Android 5 so that's not as easy as it sounds.  After much research, finding compatible libraries, and tinkering, I had something that would reliably give me a photo the right way up!

Housekeeping: library updates

Every time I do a release of EVM I like to ensure I've updated all of the third party libraries that it makes use of.  For the most part this is a case of running composer update to pull down the latest versions, and then running through my automated tests to check everything still works.  It's very reassuring when running vendor/bin/codecept run returns no failures.  I've written before about developing tests, a blog series I should probably return to at some point...🙈

It's important to note why updating libraries is a good idea.  Firstly, updates patch security flaws in the library, and while you may not be using that vulnerable feature of the library now you might do later.  Best to get it upgraded.  New versions often fix bugs or introduce new features too.  Just be warned - sometimes updates break functionality as features are removed (or have a bug introduced).  That's OK though, you've got automated tests...

Housekeeping: Bug fixes

I didn't fix any major bugs during the March dev week.  There were a couple of cosmetic issues within EVM, but nothing that had been noticed by the end users.  

Downtime: walking in the countryside

One of the reasons I like going away for these dev weeks is because where Geoff lives seems to be a completely different pace of life.  I'm sure it does have its stressors, but when I'm there I'm generally more relaxed except when I have a real development headache!).  There's some really nice walks, and as the family has a dog there's plenty of reasons to go out and about.

About mid-morning Geoff and I would head out with the dog and do a circuit or two of some nearby footpaths.  We'd go out again over lunch and sometimes for a wander in the evening too.  Lovely views and generally good weather 😊.

Next up

I need to get some more dedicated time for eVitabu, I've just not been in the right mindset for it.  Google has added some requirements around account closure that I need to finish.  I want to write some more reports that the team can run, as I regularly end up running SQL queries to pull out statistics.  I'm sure there's some changes that would make things easier for the team too - I need to get their ideas on that.

Banner image: eVitabu app banner.

[1] Busman's holiday - time out of your day job to do pretty much the same thing while on leave.