Updates:
2025 May
- Version 5 is now 99% completed, following its 2024 beta and its early-2025 5.1 "minor" reversioning. With the codebase now so large and interconnected (5.1 is roughly three times the size of 4.6 and has three times as many tables), I'm seriously considering a simpler refactoring of 5 as subversion 5.5 or major release 6.0 (depending on how extensive the changes) in 2026, rather than a wholesale rewrite — which, given the complexity of 5.1, is looking like it would be a prohibitively expensive job if we were to hire a professional.
By the time all new bugs have been found and all new functions working, circa late-summer 2025, it will have taken about 16 months of full-time work to create 5 (including all the data entry, like Tags, Inventory, and Q Properties). But its growth over this time has been organic, with new functions tacked-on rather than being properly incorporated from day one: meaning, its framework is not logical, its implementation haphazard, its code full of duplication, and its functioning and interface inconsistent. I would take the 1,000 pieces of code and function that now comprise 5, lay them out on the table so to speak, create a flowchart of the stack (user interface → PHP → database → PHP → user), and re-organize coherently.
There are only two real reasons to consider a professionally-coded 6: maintenance without me, and security. (1) My amateur code works, but wouldn't be scalable by someone else if I pass unexpectedly, due to its spaghetti nature. (2) I don't know how to write secure code. These are not important matters as long as I'm around. For security, I simply monitor Apache status and server processes, which show me which functions are hackable or vulnerable to cross-site scripting, block IPs, make fixes as needed, and make regular backups.
A refactor will partially resolve both issues without having to invest possibly 2 years and $20,000+ on a professional Version 6 rewrite; my messy codebase can be organized coherently (with extensive commenting), and I can better limit vulnerabilities.
2025 January
- Minor-release 5.1 is now mostly done and finally has all the features/functions we've long been needing. Future plans are coming into focus, and I amend the comments below:
- I am no longer wedded to the idea of a LAMP stack for 6; as I would not be involved in the coding myself, the language would be up to the developer, and I can learn anew.
- I now think we might need a Project Manager, someone dedicated, competent, and reliable, and deepened in the Baha'i Faith, and likely a separate Developer, who need not know anything about the Faith. I imagine the Manager position would be partially compensated, to warrant their time spent, but also working partly for-the-love-of-the-Faith; the Developer position would be fully compensated.
2024 September
- Now that most of the functions of the pre-2024 website have been restored in Version 5, and new features are already being added to that version, the need for a rewrite is less pressing. Planning for Version 6 is on hold until 2025.
2024 July
Background:
Planning for Version 5 of this website begin in 2013, the year after it was fully recoded as 4.0. After a 3-year winding redevelopment, which culminated in a failed attempt to migrate to the cloud, in March it was hastily moved to a new server and recoded (the old server was end-of-lease and the PHP was past end-of-life).
With this clean-slate fresh-start, and given that some of the initial planning for this version is now 12 years out-of-date, previous to-do lists and design plans are off the table.
The code written in April-June for Version 5 was intended to be interim-only and discarded as soon as a professional could re-work it. But as we continue to develop it, restoring old features and adding new ones, it becomes a more mature replacement on its own, and a full-scale redevelopment as originally planned is less urgent.
I will continue refining and expanding the "5.0 beta" code through August, at which point it will be ready to transition to bahai-library.com, replacing the April 30 archive. By September 2024 I will have replaced all functions from the last iteration of Version 4.6.
When major-release 5 "dev" is mature enough to replace the production site, we will then hire a programmer to review and recreate my own code, but with professional syntax. This will become Version 6, possibly late 2025 or 2026.
We will contract for a specific, defined job that I and the Board can oversee. This will avoid the kind of large and complex codebase that was being developed for AWS in 2023, and will avoid paying a developer the $15,000-20,000 it would take to implement and customize a set of third-party frameworks. With 100+ hours of work a developer can create all the basic functions, which I can then copy and expand on myself at my leisure. My recent ground-up rewrite convinces me that a small-and-lightweight codeset is doable.
If there should be interest in creating a feature-rich framework-driven or cloud-based version of the Library, this would be Version 7 and could be developed at leisure and in parallel.
[Update, Nov. 2024: 5.0 beta was in place by August. I'm now going through bug fixes, which is properly 5.09 patch, and planning the upgrades for 5.1.]
|