Week 6 Project: Update a page with a “push” from the server – Part 1, WordPress

This week’s project will be broken down into multiple parts – it seems too big to do all in one week. The end goal is to have a process that runs on the server and outputs updates to a <div> on a web page in real time without user intervention, and without reloading the browser page. I also would like to avoid using AJAX so that there is minimal impact on the user’s performance. Finally, I hope to be able to do this in such a way that the user could close the page/browser, log off the site, and then come back at some later time, log in, visit the appropriate page, and continue getting real-time updates if the process is still going, or get a final status if the process has finished.

The primary motivation for this project is because I want to be able to write code to load a text file (probably a .CSV file) into a database, get the process status (however that is defined), and not be required to leave the browser page open for the entire time the process takes (in case it takes a really long time (thinking in terms of many hours or maybe even in terms of days)). This is necessarily a simplified version of the requirements, and I’ll fill in more details in each of the upcoming blog posts that deal with this project.

This project will need a database, an authentication and authorization mechanism, and a way to easily create pages with forms to control the upload of the text file and the parameters of the database loading process. A basic WordPress site will provide all three and is easy to set up. So, I’ve set up a WordPress play site and configured it with the theme I like to customize (Colinear by Automattic), the child theme I use to do the customization (Colinear-KC by Kobayashi Computing), and a couple of plug-ins that I use on most sites.

You can see the results of this week’s work by going to the project site, clicking the “Projects” drop-down and choosing “Week 6 (2017-02-22)” or you can go directly to the WordPress play site.