|Congrats on retirement! I've probably got another 10 years left.
Believe it or not, I'm still maintaining/growing the first software project I started on over 23 years ago. I suppose that would put it above the dozen or so other applications and around 100 modules/utilities that have come since.
Actually my favorite was a long dead 'web-based' point of sale system. I quoted 'web-based' because that was the term in a contract our salesman at the time sold to multiple customers at a trade show...'If you buy X, we will throw in a free year of our brand new web-based point of service system'. The only problem was, we didn't actually have a point of service system much less one that was 'web-based'.
To fully explain the problem, please allow me to elaborate a little bit. This was the early 2000's and internet connectivity was still hit and miss in the geographical area for all three customers. Each customer had between 6 and 30 locations that each would have one or more devices. Each location had a server, albeit of different varieties depending on the customer. For two of three customers, a somewhat reliable WAN connecting locations was available. For the other customer, most locations only had limited internet access depending on the weather.
Oh yeah, the other thing was...it had to be able to work offline. Yeah OK, bending the definition of offline to be one in which a location can't access an outside resource. Against my better judgement, the first version relied on either a locally installed, or locally available web server running in either php or classic ASP depending on the host, and a choice of database for each location: sql server, mysql, or ms access. All three were used at some point.
The first version was a flop! Between weak hardware and weak connections, trying to run a local webserver between just a couple of concurrent users was just a horrible experience. There was also the realization that this crappy code will need to be updated/maintained at every location. It was slow, too hard to maintain, and suffered from all things web-related at the time...session timeouts, the evil back button, and lackluster UI feedback. It wasn't going to work...not without a drastic redesign.
As part of writing the scripts for the web apps, I prototyped each major function of the system as a little VB6 application, so I already had most of the UI and code when I decided to change course. I changed the project type for each function to a User Control (.ocx) and loaded them from our hosted website via IE and ActiveX. Once loaded, the website could be configured to be available offline through a setting in IE. The ActiveX controls ran locally, so it was basically running individual windows applications provided by a webpage...so legally, it was 'web-based'. Additionally, it solved most of the other problems as well, no longer requiring a local webserver and related file update/replace nightmare as updates to the controls would automatically trigger an update on all of the clients. I also lost the need for 99.9% of the web scripting. It also allowed us to provide different pages for different departments/levels that would only contain the modules pertinent to them. Most of all, it was fast and extremely easy for an IT person to install and configure on a client. Version 2.0 was a success althogh the product was not sold to any other new customers.
The system worked great for a few years until default security policies changed regarding download and install of even signed controls from secure sites. Even though it was a good system, the quality of the end users was sub-par...I'm trying to be nice here! Remember, this was the early 2000's in the backcountry...computer literacy was in it's infancy for common folk! The phone support for that application for just 3 customers (60+ locations in all) was more than we were willing to deal with. The project was scrapped.
That project still sticks with me as having some cool features:
0: Cashier screens were designed for touchscreen. I never had one to test on, but got to see them in action. For text input, there was a nice little popup on-screen keyboard that I designed.
1: Customer admins had a connection module that let them connect (when possible) to a location's database(s). This was great for troubleshooting before the widespread adoption of remote desktop for client support.
2: It was my first experience with barcode scanning and printing and it all somehow worked with their existing peripherals.
If you've made it this far, sorry for the rather lengthy trip down memory lane, but you asked for it!
Thanks for reading, and have a great weekend!
"Go forth into the source" - Neal Morse
"Hope is contagious"