| Case Study 3 - Dynamic Application Development |
|
This small business had won a contract to help a federal agency reorganize how its data was presented to its intended audience, with particular interest paid to delivering content that was easily indexed by Google's search engine crawlers. With a client that wasn't fully aware of the potential benefits of greater search engine accessibility, this firm had to quickly build a prototype to demonstrate the ease by which this could be accomplished. Of course, nothing in enterprise-level software development is "easy" except in hindsight. With only one full time developer and the potential use by non-programmers, everything needed full documentation to be easily transferred and quickly understood. WorkSpaces provided the perfect means of centralizing and connecting the various subject areas involved in the project. The following provides a brief narrative of the project process and how WorkSpaces was used to support development.
Project Scope The scope of this project was to develop a web-based application that generates static .html pages with summaries, graphs, and relevant links from a database full of survey data
MySQL – database server CakePHP – php-development framework The Cookbook – CakePHP documentation (http://book.cakephp.org/toc/3/The-Manual) Putty, Telnet (Windows) Terminal (Mac/Linux) – command line applications TextEdit, TextWrangler – text editors Microsoft Excel – for creating graphs Adobe Fireworks – for image manipulation Test server – with PHP5 installed and mod_rewrite enabled phpMyAdmin – MySQL server GUI
Delivery Timeline 6-8 weeks
Project Design Step 1. Creating the Data models →Reading and analysis of data and codebook to understand context of datapoints, conducting relevant industry research, interviews with client →Entity Relationship Diagramming to visually map out how the databases interact – defining foreign and primary keys for each database table as well as a Data Dictionary that will document/summarize the contents of each database table. The ER Diagram will also map the categorical relationships between tables – these categorical relationships are mapped in terms of belongsTo, hasMany, and hasOne relationships
Step 2. Designing the HTML page layout →Create user stories to be utilized during the debugging mode (step by step of each way a user might use the application), this will be the basis of page design mockups - here I include desired interactivity and interface effects →Generate the CSS Step 3. Designing the PHP functions that will operate within CakePHP →Map CakePHP classes, objects, and controller actions, determining the dynamic pages onto which the layouts will be applied
Project Execution The process of building the application and of generating static pages Step 1. Create content to be placed in the divs defined in the HTML layout and CakePHP view → Data summaries for datapoints → Data tables Step 2. Build the Database and CakePHP models (use ER Diagram as guidance) → Create and populate database, build CakePHP models that link classes to data sets
→Hint...think PHP iterator and foreach(), yes it can be done all in PHP!
|