I've been revisiting projects (such as this) to expand their mission to (1) support mobile (responsively), (2) update based on evolving best practices, and in some cases (3) simply refactor as my skillset evolves with experience. It seems that coding for "mobile first" is easier when you are starting from zero, but of course many projects have evolved over time to incorporate technology improvements as they mature and gain broader support. In those cases it can be more work to retrofit without breaking the original mission goals. That said, each project I've revisited has been really fun to rediscover and work through--web development has been a thing now for twenty years or so now and rediscovering code from waypoints along that journey is a joy--even when you wince at some of it. :-)
Here is a relatively simple example using a grid as the backdrop to producing data to establish a contract--the shape of the data (JSON in the example). A server-side party can build to the contract and a client-side party can consume it implementing rules that produce UI to render abstractions of the contract. Basically by generating a quick mockup using dummy data initially, both parties can begin working independently without needing finalized data. Actual data can then simply be plugged in as it becomes available and it'll "just work". During development as discoveries are made that require involvement from more than one party, the work is quickly formalized and integrated via alteration to the data contract.
An example building a table using a renderer to consume a JSON data structure shows a simple example of how to begin constructing an engine to build UI through data discovery. While the example uses static data, by simply interpolating the values via JSP, Mason, TT, or your preferred variable substitution language, or by returning the JSON in an AJAX response its easy to see how this technique is used to build user interface to provide a visitor with access to the data. This shows a readonly table, but the concept easily scales to accommodate dynamic form generation. Thinking bigger, imagine informing games, utilities, educational resources, etc. with a similar practice.
Back to top