Ben Bartlett WebDB v. 2.0 WebDB has a client-server architecture. WebDB itself is the server, and the clients are the users who log into WebDB to gather information. WebDB also acts as a client, however, in that it accesses a database in order to retrieve the information which the user asks for. So, to be exact, WebDB is a web-based interface between a database and a user. The major components of WebDB include the five Perl modules, which hold many of the procedures which WebDB needs in order to run, as well as index.cgi, login.cgi, course_search.cgi, person_search.cgi, registrar_tool.cgi, and timesheet.cgi. Index.cgi gives access to the various functions of WebDB. Login.cgi is what allows a user to log in as his or her user name, and thus gain access to certain options unavailable to the general public. Course_search.cgi allows a user to search through courses by department, professor, time, term, and year, among other criteria. Person_search.cgi allows a user to find a list of people, their mailboxes, and their phone extensions by searching for their first name, last name, major, or minor. Registrar_tool.cgi allows the registrar to set up class schedules and the like. Finally, timesheet.cgi allows people who work to sign in and off on an electronic timesheet. Many of the links in WebDB are actually invocations of cgi scripts with certain arguments passed to them. For instance, when you click on the "My File" link, you are actually invoking a script called person.cgi, telling it to take the action myfile, telling it the pidm of the user (the pidm is a number which is assigned to each user of WebDB; it is attached to a particular session number when the person logs in through login.cgi), and a bunch of preferences which tell the program how the user wishes to view the My File window. Another example of a cgi script is the course search, which runs under course_search.cgi. Once again, the course search has several possible actions which can be passed to it, such as registration tool or info. Much more interesting, however, is the course search itself. The script reads the input the user has posted to the display page, and then connects to an Oracle database in order to retrieve information which fits the criteria the user entered. It then displays this information to the user. What I find most interesting is the idea of having three "areas", the navigation area, the display area, and the work area. The navigation area is created using nav.cgi; the other two areas vary. The display area shows everything from the login screen to course searches to the person search. The work area only appears from time to time, such as when the user retrieves a course schedule. I think that the way in which the screen is divided up is very useful. I don't use WebDB enough to really want any major changes in it in terms of its appearance. I do think the code could use quite a bit of cleaning up. It is rather difficult to read, at best. Some organization, better documentation and commenting, and some rewriting of code would really improve things.