We've just pushed through what's probably the biggest single update BusOva has ever had. If you've been using the site over the last few days you might have noticed things looking a bit different - that's because we've been under the bonnet tearing things apart and putting them back together properly.
Grab a brew, this is a long one.
Depots and Outstations
You can now see where a bus is actually run from - whether that's a main depot or an outstation. Operators can have multiple depots and outstations attached to them, each with a full address, and when you're adding or editing a bus you'll see a new dropdown that loads the right locations based on whichever operator you've picked.
On the bus view page you'll see it displayed right under the operator name. It's optional of course - not every bus needs a depot assigned - but for those of you tracking fleet allocations, this is going to be dead useful.
Bus Name History
Some of you will know that certain buses get renamed over the years. We've always had the ability to set a bus name, but until now there was no record of what it used to be called. That's changed. Every time a bus name gets updated, the old name is saved and displayed on the bus page as badges - same way we show previous registrations. Hover over them and you'll see when it was changed and by who.
Thank you for the two suggestions above Matthew Battams and for your continued input to the site.
Edit History - Fixed and Working
This one's important. We discovered that direct edits to buses - whether by the owner or an admin - weren't being logged to the edit history at all. The suggest-an-edit system was working fine, but if you went in and edited your own bus, nothing was recorded. That's been completely rewritten. Every single field change is now tracked, timestamped, and attributed to whoever made it. If you change a photo, a caption, the operator, the status - it's all logged.
Review Page Overhaul
The "Review & Submit" step on the add/edit bus form was missing several fields. Bus Name, Status Date, Layout Notes, and Other Features were all invisible on the review page. You'd fill them in and then wonder where they went. All sorted now - every field you enter shows up on the review before you hit submit.
CSS Cleanup
This one you won't see directly, but it makes a massive difference to how the site runs. We had inline CSS scattered across dozens of pages - some pages had over a thousand lines of styling dumped directly into the HTML. That's all been extracted into proper external CSS files. This means faster loading, better caching, and much easier maintenance going forward.
Database Optimisation
Over twenty new indexes have been added to the database. If you're not technical, indexes are essentially lookup shortcuts that help the database find records faster. We've added them to the buses table, the edit history, comments, news articles, favourites, and several other tables. On top of that, the admin notification system in the header - which was running five separate database queries on every single page load - has been consolidated down to one.
Email System Rebuilt
The old email setup was a bit of a patchwork - settings in one place, templates in another, no proper newsletter sending capability. We've rebuilt the whole thing from scratch. There's now a centralised Mailer class that handles all email sending across the platform, a proper template management system with live preview, and a newsletter composer where we can draft, preview, and send newsletters to subscribers with full campaign tracking. All the system emails - welcome messages, password resets, email verification, achievement notifications - now use stored templates that we can edit without touching any code.
Automated Maintenance
Two new cron jobs have been set up. The first runs daily and handles cleanup - purging expired password reset tokens, removing accounts that never verified their email after seven days, rotating old logs, and clearing out stale login attempt records. The second runs every fifteen minutes and checks whether any users have earned achievements they haven't been awarded yet, then sends them a notification email if they have.
Under the Hood
There's a load of smaller stuff that doesn't warrant its own section but is worth mentioning. We've cleaned up unnecessary PHP tag breaks, fixed relative file paths, removed duplicate CSS includes, identified files that can safely be deleted, added proper addCSS() calls through the Template system, switched custom tooltips to Bootstrap's built-in system where needed, and improved the news page logo visibility.
What's Next
This update was about getting the foundations right. With the template system working properly, the CSS organised, the edit history functioning, and the email platform in place, we're in a much better position to start building the features that'll make BusOva more fun to use - things like social sharing, a "spotted" feature, collection tracking, and monthly photo competitions. More on all of that soon.
As always, if you spot anything that doesn't look right or have suggestions for what you'd like to see next, drop us a message through the contact form or shout in the comments.
Cheers,
The BusOva Team