So, naturally I dropped everything else I was doing and created a prototype of just such an app. (As I like to say, I'm not a competitive guy, but "I'm more competitive than you.") Seriously, though, it did sound like an interesting and worthwhile project and one that I sincerely thought wouldn't be that hard to build. I even mentioned to my colleagues that it should be very easy to create a simple student rating system, say by using a scale such as from 1 to 3 (outstanding, very good, fair) which could be used to automatically generate a suitable draft letter.
I've spent about 3 hours on this project and it was about as challenging as I suspected. However, I don't think the prototype I built is the way to approach this problem. But, I think that is an important principle of design -- one cannot fully anticipate the design specifications, or even the best approach to identifying those specifications, for a project until one begins building it. I'll return later to discuss what I think would be a better way, but let's take a look at the current prototype:
Allow me to emphasize that I and my colleagues at the University of Georgia take the task of writing reference letters very seriously. All letters require much care and attention. So, don't get the impression that I'm making this app with the intent to trivialize or cheapen the reference letter writing process. My goal was only only to explore how to make an app that would help someone write at least a simple first draft. The letter should then be customized as needed for the particular student.
A Better Design Approach
To be honest, I feel there are all sorts of problems with the design approach I took with this prototype, with the main one being that the user is "locked in" to the basic format of the letter. The only way to change the format is by me going in and changing it within LiveCode. For the app to be useful, the user would need to have complete freedom to change the format and contents of the letter at will. Another obvious feature that is needed is the ability to save as many letter templates as one wishes.
In hindsight, I think a better approach would be to use something called "piped text" within a simple text letter template. The idea is that as one writes the letter, one could decide on those locations in the text where dynamic text should be used. The user could then insert the dynamic text by denoting it with special characters, such as start and end braces. The dynamic elements could likewise be edited at will also. If I continue developing this app in any serious way, I'll most likely redesign it completely with this strategy in mind.