Two days after the previous post, this is what I’ve managed to get through. As I’m working it feels like minimal progress, but once I see what I’ve now written below I realise there has been a lot of progress.
So far I’ve been hugely impressed with the whole concept of Low Code over raw low level software coding and development. It is seriously a whole lot quicker. But the age old issues still haven’t quite gone away just yet! Like refactoring the Data structure underlying the set of reasonably complex Screens. I needed to make one small change and add a new Table between two other tables removing a few columns out one table and putting them into a new table, to simplify the queries needed to get at the data more easily. I did so and when I came back I discovered 32 new errors I had to “reconnect” and wire up between screen variables, aggregate queries and database field elements. As you can imagine this took quite a few hours. It would have taken just as long in real code. Although probably longer.
So that took up a lot of time. It also meant that I am experiencing differences between the Web App and the Mobile App as in they get out of sync as I work on first one then the other all accessing a central third Database component. I have to work like this to prepare the data content (and management of that data) for the Mobile App. Also, the Web App is multi-user focused while the Mobile App is typically single user focused.
New Skin for the Mobile App
Next I decided to make a more brand aligned skin for the Mobile App. That all worked really well and it took me minutes to configure. All worked perfectly – except for one simple thing – the menu and hover links were all still blue and did not change to my Reddish / Cerise branding. Another few hours were wasted trying to get that right. I eventually gave up and realised there were bigger fish to fry! I’m not a .css expert by any means.
I was hoping to show you the difference in colour between the old and the new skin by comparing the charts, but because the database changes broke the charts view, this is what now shows (on the right)!
Improve User eXperience
Another thing I did in the last day or so was to start exploring adding in the nice to haves, such as not just displaying the screen, but putting in the bits which deal with the timing of fetching data, etc. so that the User sees when something is happening and not just wait with a mute screen not knowing if anything is happening in the background.
What happens if tables are empty, or what to display while tables are loading; time lapse between selecting a screen to show and displaying a fully rendered screen with all data. Also what to do if the network goes down while displaying the tables. Its difficult to get an actual image to display as it happens so quickly its difficult to screen capture, so this image just shows the development environment view of what the user will see for each screen in each case. You also don’t see the animated “loading” or “bounce” (for problem) in this mode either.
Header – Who’s logged in
Another waste of quite some hours was trying to fix the subtleties of the area called the UserInfo block, which is a pre-built area that caters for the Web App in reactive mode between full screen and small Mobile like screen. At the same time I took the opportunity of using a more accurate persona for whom who the target market is likely going to be. So my new user is Babalwa Bongani (Babalwa means Graced, and Bongani means Thankful) a Xhosa lady in the beautiful rural Eastern Cape who wants to get onboard with the programme.
The challenge was to get one single userinfo “block” that would work at the top of a fully wide web page as well as a much less wide mobile screen using a browser. This drove me to distraction because not matter how many different trial and error options I picked I could not get it to work. So much so that I am about to raise a support call with the vendors.
In the top pic below, see the Web page. It works with the Image (albeit a little stretched). The Username is also too much to the right and the logout link too low down. This same block stretches way out of proportion in pic 2 below with the username and logout off the bottom of the screen.
So Low code has is pros and cons, but as long as one understands the initiial developers concepts then it works much easier than if you don;t have visibility of them. There is quite a lot that they have built that works in the background that the ore you fiddle if you don’t like the layout of something the more it goes “pear shaped” as in my user images!
Enhanced Tracks selection
As part of the work done two days ago, the Student needs to be able to select their learning Tracks from a set of existing learning Tracks. This was enhanced for them to not only see the tracks, but also to add or delete tracks – see the plus and minus icon (This works provided no courses are already underway for a track. i.e. You can’t delete something that is happening.) I did get stuck on the loading screen, even though data exists. Tomorrow’s another day to resolve this…
Since I made the changes to some of the base entities, I had to enhance some of the screens I’d already developed. Namely the Address and Address type information. I also developed the fact that the central Address Entity is used by both Students Addresses and and Sponsors Org Addresses so that they can be called from both but then also have to return the the one that called them. Got this working today.
Data management App
In order to keep and manage data in a development world of editing and testing changes, where you have to delete and modify tables while developing I decided to write a quick app that Manages data for me. It does three fundamental things.
- Allows for selective deleting of data in areas of tables for where I get it wrong and need to start again, once it s working.
- Allows for downloading of certain master and reference data so that it does not need to be re-entered manually (but I’ve written if for all data at the moment). It gets downloaded into Excel spreadsheets. So that I can delete a table and then either repopulate the table on load or enter the data manually again.
- This in turn allows me to delete the whole database and re-build it quickly by importing selecting master reference data tables in from excel files very quickly and easily – it’s a built in function of the development environment.
When you are working it gets frustrating when something you feel should take a few minutes ends up taking 3 hours. But then again, when I look back at this blog and everything that was accomplished in two days it adds up to quite a lot – not to mention the time taken to write this blog! Actually there was a lot more (lots of smaller things) that was done but I can’t be bothered boring you with all the details, neither would you be concerned!