Book Program
User Interface
Specification

19 September 2000


This specification comes from two primary sources. One is the exisiting Ingres-based program's interface and work flow. The last is from improvements to the work-flow I've been considering.

The SQL code for the current Ingres based program can be ported to Oracle (with perhaps two lines related to date manipulations) as the current Ingres SQL statements are written in "OpenSQL". This should make conversion simpler than starting from scratch on the SQL.

  1. Current Ingres-based User Interface and Work Flow.
  2. Improvements to Ingres-based application.
  3. GTK User Interface for Oracle/C program.

Current Ingres-based User Interface and Work Flow

The current book program's opening screen displays a list of "Loaned" items. The menu items at the bottom of the screen allow the loaner to:

  1. Check an item In.
  2. Check an item Out.
  3. List which item are Overdue.
  4. Search for items to examine.
  5. Append (or add) item to database.
  6. Refresh list of loaned items.
  7. Start 'emacs' on programs Errors log.
  8. Request on-line Help.
  9. Quit the program.


In

Selecting In brings up a screen that requires the loaner enters the item's "TCC Control Number" (TCC_CN).

Menu choices for the IN form are:

  1. Help
  2. Quit

Once the TCC_CN is entered and the loaner leaves that field (either by <Tab> or <Enter> the DB is queried to get specific information on that item. If it's not checked out the program notifies the loaner that the item is already checked in. If the item is out then another screen appears which contains detail information on the item. This screen is used to confirm that the item being returned is actually the item the DB associates with the given TCC_CN.

Actions available to the loaner at this point are:

  1. Check-in the item.
  2. Re-issue the item to the same person.
  3. Help
  4. Quit the current screen and return to the parent screen.


Out

Selecting Out brings up a screen that requires the loaner enters the item's "TCC Control Number" (TCC_CN). Menu choices for the IN form are:

  1. Help
  2. Quit

Once the TCC_CN is entered and the loaner leaves that field (either by <Tab> or <Enter> the DB is queried to get specific information on that item. If there is no such TCC_CN in the DB a message comes back to that effect. If the item is check out the program notifies the loaner that the item is already checked out. If the item is available then the screen contains detail information on the item and a new set of menu-items is displayed. This screen is used to confirm that the item being returned is actually the item the DB associates with the given TCC_CN.

Required fields are highlighted and the transaction can not be completed until the required fiedls are filled in.

Actions available to the loaner at this point are:

  1. Check-out the item.
  2. Help
  3. Quit the current screen and return to the parent screen.

It should be noted that several checks are performed which may block the loaning of an item. These checks are:

  1. Check the loanable field of the book record to see that the book is not listed as "RETIRED" or "LOST" (the entries are all caps).
  2. That the book is not already checked out.
  3. See if the person has had their check-out privledge revoked.
  4. Make sure "loanable" is "YES".
  5. That person has no more than MAX_BOOKS_PER_PERSON_OUT (currently 3 items) checked out.
  6. That borrower has no overdue items.
  7. Check that book is not loaned for more than the maximum number of days allowed. (Currently 3 days -- default loan period is 1 day.)

Note that the last four checks are overridable by the loaner. If an override is invoked then the type of override is recorded in the loan record for that transaction along with who authorized the override (i.e. the person running the program).

Once all these checks are passed the program prompts the loaner to swipe the borrower's Tech ID Card through the card reader (or hand enter the borrower's Tech ID Number). The ID number is checked to be sure it's a valid ID number. If the person has previously borrowed material from use then their other information is automatically filed in by the program, otherwise it has to be hand entered by the loaner.


Overdue

Selecting Overdue brings up a detail information on any items that are overdue. Menu choices for the Overdue screen are:

  1. Next
  2. Previous
  3. Check-in
  4. Re-issue
  5. Help
  6. Quit

This interface would be better if a list overdue items (similar in layout to the "loaned items" list) was displayed. This would eliminate the Next and Previous menu-items and allow the Check-in and Re-issue choices to operate on the selected item.


Examine

Brings up a form used to query the database for items in the DB. The query form allows "anding" of fields and each field can be wildcarded (this helps to restrict queries so only a reasonable number of items need to be reviewed). Actions available to the loaner are:

  1. Go queries the DB using the values from the query form.
  2. Blank the form.
  3. Use the LastQuery to query the DB.
  4. Checked_Out returns only those items checked out which match the other fields of the form.
  5. Help.
  6. Quit the current screen and return to the parent screen.
A limited number of items are retrieved and the following actions can be taken:
  1. Show the Next one.
  2. Show the Previous one.
  3. Query the DB again.
  4. Help.
  5. Quit the current screen and return to the parent screen. If there were any changes ask the loaner if he wants to save them.


Append

Brings up a form used to add an item to the DB. (NOTE: This is where people get the TCC_CN to write on books and other loanables -- the program provides the next available one from the DB (one higher than the largest number in use thus far)). Actions available to the loaner are:

  1. Append info to the DB.
  2. Help.
  3. Quit the current screen and return to the parent screen.



Improvements to Ingres-based Application

The arbitrary limit on the number of items returned on queries should be removed.

Instead of having to cycle through items one at a time some form of table field should be used for easier review and manipulation. (Some screens of the existing application have already been converted to do this.)

A new table should be created which would allow people to put a hold on an item that is loaned out so that when it comes back in the person can be notified and then check it out (before somebody else gets to it).

There should be a way to check the loan history of any item from within the program. (Already added to existing program.)

Perhaps a way to check the loan history of a given individual could also be added. This would also be a good place to show what kind of pattern they have for late returns and such. (Already added to existing program.)

A restricted access menu-item to make retiring loanables easier than doing it by hand in the raw DB interface. (Already added to existing program.)

It would be nice if borrowers could run the program to see what kind of items we have for loan and to see if the item they're interested in is available. ... Naturally they should not be able to make changes to the DB (aside from being able to put a hold on an item -- i.e. get in the "hold" queue for an item).



GTK User Interface for Oracle/C Program.

Would be much like the wreck program. (Perhaps it could be called loans or loanables since we now loan more than just books.)