The recordkeeping project is getting a bit out of hand. It’s fun to work on, but if there had ever been an original scope of project (doubtful), it’s been left in the dust long ago.
100% my fault- I’ll be working on the approval tracking option and realize; “This really needs email notification to be truly useful.” Completely true- no one wants to log into the app each time they need to check if there’s been a response- they should be able to get email updates.
But it shouldn’t be required, so now it has to be an option. And who should get the email updates? Everyone involved? Just those with posting auth? A small addition snowballs into a couple weeks of work.
One of the tricky parts of finishing the approval option was the SQL involved. The original feature had no tracking feature- there was basically just one large textarea field where posters could all add text/edit any existing text. So the design of that db table was very simple. But in adding both individualized entries, and tracking individual approval recordings, we added quite a bit of complexity on the db front.
Not something I have a ton of experience with, so there were some false starts. Making sure each poster’s approval setting was unique depending on the recordkeeping category entry required a few joins, but we got there eventually.
All that work done, and we decided that the main entry screen should really be more of a timeline- tracking normal comments, file uploads, and approval entries. It’s tough when a mid-project redesign has to happen, but sometimes it really is for the best- this was a good idea and fixing it halfway through made a lot more sense than finishing and shipping the project, only to promise another update later (which might never happen- there are other areas to improve!).
So there were some good lessons learned regarding database design. And some frustrating lessons learned regarding syncing the UI and the backend. Makes me appreciate the new JS frameworks that do a lot of that work for you- and do it much better than I am!