My MVC Summer/Fall - a Corporate Webapp and Cordova Mobile

I have not made an entry into the dev diary in almost 9 months.. and I’m not going to try to sum up all that time in one post. I’d just like to speak on the past few months of work, what I’ve accomplished over the summer and where I see myself going forward in the web development industry. If memory serves me, in June of this past year (2015) Google announced the Polymer 1.0 release and informed the world that Polymer was production site ready. This was awesome news for the web dev community except maybe certain folks who had jumped to production with Polymer 0.5, but Google put out a migration guide at the same time as the announcement or immediately after. In any light, Polymer 1.0 is hip, fast, and brings web components into the now. Plus Polymer developers gain so much value from the paper/iron/gold/platinum elements released by Google, I won’t get into that but lets just say I was and still am pretty dern excited!

I have not made an entry into the dev diary in almost 9 months.. and I’m not going to try to sum up all that time in one post. I’d just like to speak on the past few months of work, what I’ve accomplished over the summer and where I see myself going forward in the web development industry. If memory serves me, in June of this past year (2015) Google announced the Polymer 1.0 release and informed the world that Polymer was production site ready. This was awesome news for the web dev community except maybe certain folks who had jumped to production with Polymer 0.5, but Google put out a migration guide at the same time as the announcement or immediately after. In any light, Polymer 1.0 is hip, fast, and brings web components into the now. Plus Polymer developers gain so much value from the paper/iron/gold/platinum elements released by Google, I won’t get into that but lets just say I was and still am pretty dern excited!

Not more than a few days after this announcement I was hit (offered) with a huge web application project that had been in the planning stages for half a year. The designer had gone AWOL and left the majority of markup only roughly completed. The application is an internal business app for a food and coffee franchise which among other things monitors financials and displays comparative data, forms a complaint resolution pipeline which ensures accountability and increases consumer satisfaction, manages certificate and licensing information and notifies both corporate and franchise branches of upcoming expiration dates to prompt renewal processes, an employee database which holds staff certificates, personal info and actually prevents a terminated employee from gaining employment at different branches, there are social aspects to the app and even a feature to track the step by step process of creating a new franchise from hiring contractors, to breaking ground and all the way to opening shop.

So as you might guess I was looking at a long albeit educational summer. I’d been working with Python and Flask, and before that I’d dabbled in Node and had hoped maybe that I could utilize these techs in this business app but alas, it had been long decided that the app would be written in PHP and then a mobile version created in Cordova (Phonegap). I was subcontracted for this job so I didn’t have communication directly with the client. It was directed to me that the project be built up from an MVC skeleton which the main contractor had begun work on. I felt this was a mistake given the time constraints and low man-power on the project and I lobbied once that we make use of an opensource framework and my suggestion was denied. Either way the project would get done, I just felt it would have gone smoother using some pre-packaged proven solutions, after all the front-end designer used Bootstrap, jQuery UI and HighCharts for the all same reasons.

Since the web-app had to be converted into an almost identical Cordova HTML5 mobile app I decided that rather than build twice it would be wise to create both apps using a lot of client side business logic. This is the smart play these days anyways with progressive web applications, the advent of service workers becoming common place, developers are adjusting to moving logic off the back of the stack and leaning more into the browser. There are many caveats to this way of development but there are many rewards when done right.

I learned a lot on this project, it was one of those gigs where you get paid better in experience than in cash. I’d worked on fairly decent sized web-apps built over a platform like WordPress, but this was a huge project and all the business logic had to be built from scratch, so every mistake was mine to fix and I learned more than a handful of lessons. PHP isn’t the arena that I want to play in forever, I enjoy JavaScript so much, and I also enjoy Python a great deal so I hope that I get to strike out more in those directions in the future.

Since the Cordova mobile app is now complete and all the bugs seem cleared away I’ve actually had 2 small WordPress gigs and I feel as if I’ll have a lot more WP gigs coming my way. I’m also going to branch out and write more about ES6 (JS2015) and about progressive web apps rather than solely focus on WordPress articles. I am in the middle of writing an article about synchronizing WooCommerce select elements between variation drop-downs of multiple single products in a layout. I’ll see where tomorrow takes me, I had fun developing a large application and now that I have that experience I feel I could do even better using the new development concepts like RAIL to make some really powerful stuff.