During August and the first half of September, I laid out the internal, back end components of Responsive Mortgage Calculator Pro. A decent amount of brainstorming went into creating the list of features and into structuring calculator creation. Calculator creation is the core of the customization process, and the majority of the feature set is accessed within this process.
Calculator creation is accomplished using an interface that is inspired by the native Menu settings page. Rather than adding menu items, you would instead select the fields you want in your calculator. Fields that are added can be customized based on the core functionality of that field.
The approach I’ve used for this project is to maintain as much abstraction as possible when it comes to fields, and specifically, in generating the settings panels for those fields. In the interest of code reuse and maintainability, all the settings for a field type are held in separate files that return arrays. This keeps things really straightforward because each array defines settings groups with sub-arrays that define specific settings. For example, the file <code>array-expense-inputs.php</code> returns an array that defines the field type <code>expense</code> and an array of sections for the form. These sections includes settings that I think are most navigable and cohesive, like “Text Settings” or “Calculation Settings”. Within these groupings are the field definitions, such as “Label” which defines all the information necessary to create and validate the field for creating a label for an expense field in the calculator.
This set up is very useful for development – all I need to do to add or remove a feature is to add or remove a field definition array from one of these files. In the current phase of development, I am commenting out extraneous features in order to develop to the core functionality to actually use the calculator on the front end of a website. This is important in developing a usable beta version – these arrays provide a list of features that can be added as needed to satisfy user needs, sort of a living product backlog, while still being able to focus on the core feature set and use cases.
I am currently demoing the calculator during the development process. <a href=”/contact”>Contact email</a> if you want to have a look at the current stage of development and provide your feedback. I’m looking forward to a beta release in early November.