Grocery CRUD v3
As you may have already seen, I've written a blog post about 2022 plans. As with every plan that I had so far - although I am achieving my very minimum goals - a lot of unexpected things is happening during the year that I can't predict. This year was no different!
Grocery CRUD v3 is a complete rewrite of the Grocery CRUD frontend with some small changes at the PHP part. That's all really! All new and shiny in the frontend but almost nothing changed on the PHP code 🎩🪄🐰.
I've decided to rewrite the frontend not just of the shake of it but because I had to do it. Below you can see a list of the reasons why:
- First and foremost, pretty much every library that I've used was outdated and unmaintained. Most of them I had to update myself and this was very time-consuming considering grocery CRUD was using a lot of different libraries.
- The frontend code was so coupled with some sensitive business information (e.g. deployment steps with hardcoded credentials) that it was impossible to provide the frontend code as a separate section to the customers. That was a problem because I wanted to provide a way for people to use the non-builded frontend code and do changes that fit their needs from the frontend source code.
- Since the libraries were old, it was difficult to maintain and improve the functionalities of the frontend. Some examples are the column ordering functionality with drag and drop and the column width functionality.
- Last but not least, jQuery was holding us back for a long time for many frontend features that we wanted to implement. The initial plan was literally just this! To remove the dependency of jQuery. But as you may have already guessed this wasn't easy! Only after refactoring from the ground up and rewriting everything from scratch I was able to do that.
To give you an idea of how much work this was involving. The results of my time-tracking tool are as follows. I've spent 80% of my time entirely just for the new version. This took much more time than I expected.
I repeat... it took me 1 year by working almost every single day (weekends and all!) with the initial plan to "just" remove the dependency to jQuery. It looked easy until I tried it! Or, as a famous chess player said 🥲:
I was completely winning. If I don't kill myself tonight, I will live for a thousand years!
Ivan Sokolov
But there are good news. I'm happy to announce that Grocery CRUD Enterprise version 3 is finally ready for the first BETA version! Something that I haven't thought about is how this version will be released, so I am working on it now as a priority. As you may understand from my timings this may take another couple of months, as the whole team is just.... me 😀
So somewhere around January 2023 or hopefully earlier, I will release the first BETA version of Grocery CRUD Enterprise version 3. Stay tuned!
My first step will be to release it to the website as a demo so people can start using it. At first, you may not notice any difference and this is on purpose. Keep in mind that this is a complete rewrite. All the frontend code is new. So if you literally don't understand the difference then that is a good thing 😀.
At the demo we will be showing off 4 new features:
- Master-Detail grid
- setRelationDynamic method
- Always remember the previous datagrid state after a refresh of the page
- The columns button that now have 3 sections:
- Visibility tab, which is the same as the old columns button but also have the select all/none checkbox
- Ordering tab, which is a new feature that allows you to change the order of the columns
- Width tab, which is a new feature that allows you to change the width of the columns (currently experimental)
- Master/Detailed Grid ✅
- New upload functionality ✅
- setRelationDynamic functionality ✅
*and not sure if they will make it for version 3
- Light/Dark theme
- Skinning with CSS variables
- New themes, currently working on:
- Tailwind
- Materialize
Nov 01, 2022 by John Skoubourdis