CPS 108: SCOOBI
Spring 1999
Your team should write a suite of tools to allow users to effectively
search, list, and update files on their disk or web site. The final
version of this project will be a collection of at least four programs
and at least two libraries. The goal of this project is not to write
a lot of code, but instead to leverage off of the wealth of C library code.
Your libraries should put a more proper object-oriented wrapper around
the C functions. Because of this, your programs will be penalized
for excessive repeated code. Once your programs are working correctly,
your team should work on building small, modular components that can be
reused in multiple programs.
Specification
SCOOBI, Scandir: an Object Oriented Browser and Indexer, is a suite of
programs that leverage off already existing code, but provide simpler more
powerful interfaces to the user. This process is sometimes called
"wrapping legacy code" and is a constant job in the computer industry :)
You should implement the following programs:
The programs should use code from the following libraries:
Deliverables
To make this project more manageable, you must deliver your programs in
pieces so your users (and TAs) can make sure you are making progress.
-
Monday, March 1
Working version of scandir and getopt library. Prototype of the
sools program that can list directories in simple alphabetic order, or
by size, or reversed. You may change these later, but you should
turn in something that proves you have started working on the core of the
project.
-
Monday, March 8
Working version of sools and prototype of goofi that indexes files
and allows simple searches for words. You may change these later,
but you should be pretty certain of your design at this point..
-
Wednesday, March 10
Prototype version of update that can print out differences between
given directory trees. A more complete version of your goofi program
that can index web sites as well as files.
-
Friday, March 12
Final versions of all programs and libraries. You should bring
your project artifact (printouts of user and programmer documentation and
header files) to class -- even though the final source code is due later
that day.