Tuesday, July 29, 2003

Challenge of the Day

One of my current projects is updating a simple web application that manages rider information and prize fulfillment. When entering the fulfillment of a prize, one of the challenges is to collect the necessary information about that fulfillment. For example, when we issue out a jersey, we need to keep track of who it went to, what size it was, the status that it is fulfilled and not back-ordered and potentially a comment field in case a friend picked it up. And so on:





  • Watch: Person, Men's or Women's Watch, Status, Comment

  • Polo Shirt: Person, M or W, Size, Status, Comment

  • Gift Certificate: Person, Amount, Serial Number, Status, Comment



To keep the programming simple, you just make a form that has slots for each of the above and display it to the user. They fill in the relevant parts and ignore the rest. However, the actual usage of the software is often in low-light situations with a volunteer who isn't familiar with the computer and certainly isn't rememberful of what prize requires what information.



The unhelpful programmer solution to user's miskeying information in such a situation is to make certain fields mandatory, like with a javascript that pops up an error message. The better way (I think) is to only present form options relevant to the choice at hand. How do I do this?



The problem is twofold. First, it is keeping track of each product's fields: what shouldn't be displayed; what is mandatory or optional; what is the default value (if any) and what are the choices; what kind of data should be accepted? Second, how does the application control the user's access to each field? Does it use DHTML to change the form when a user selects a specific product or is product fulfillment handled in two steps/screens (1.) select the product, (2.) input that products fields?

No comments:

Post a Comment