Return to WebRCS page
web revision control system -- class outline revision 0.2 - 9.9.98 1. Server Interface - package WebRCS a. Installation - package WebRCS.install i. public classes - Installer + initialize + static main() + decide if we're text only or AWT + extra applet code? (possible future) + start up the InstallEngine using install script - Uninstaller + initalize + static main() + decide if we're text only or AWT + extra applet code? (possible future) + start up the InstallEngine using uninstall script ii. private classes - InstallEngine + handle install routines + display appropriate text or dialogs + copy/delete files + create directories + read instructions from (un)install script b. Web Server Integration - package WebRCS.server i. public classes - Configure + perform server configuration + dynamic web page interface + add/remove/edit members + add/remove/edit top-level projects - Report + generate reports on server/project status (possible future) - SecuritySignature (abstract) + used by all levels for security/permissions check + canAccess-type method used to compare SecuritySignatures (e.g. Member.canView(Resource) returns true if Member is permitted to view Resource, both are subclasses SecuritySignature) + used both to represent resource security levels required to access as well as security levels held by members - LogService + used for keeping track of all actions performed + can export logging information to console or a named Resource in the database + can be set for different amounts of detail (log/debug levels) ii. private classes 2. Client Interface - package WebRCS a. Web Interface - package WebRCS.client i. public classes - Login + allow member login to rcs server + verify username/password combo - View + display a list of projects, a project, an area, or a resource + allow set of standard commands: navigate, check-in/check-out, administer, build + handles navigation > open a sublevel > return to parent level + other commands handled by classes CheckIn, CheckOut, Resource, Build - CheckIn + front end for methods used in Resource class + allows check-in of specified resource(s) + if resource, allow upload + if area, allow upload all - CheckOut + front end for methods used in Resource class + allows check-out of specified resource(s) + if resource, allow download + if area, allow download all - Attach + front end for methods used in Resource class + allows attaching of memo(s) to specified resource(s) - Administer + front end for methods used in Resource, Area, Project classes + allows administration of specified resource + rename + if area or resource, relocate + if area or project, create sublevel + if area or project, delete sublevel - Build + initiates build/make of project, area, or resource + reads build rules for project, areas, and/or resources + executes build rules (could possibly be a shell script or some sort of "Make" language implemented by WebRCS) ii. private classes 3. Resource Database - package WebRCS.db a. public classes i. Resource (extends SecuritySignature) - has unique hash code for database indexing - has one or more owner Members who are responsible for Resource - has zero or more Members with sets of permissions to Resource, i.e. Member Bob has view, download, upload permissions -- Member Jane has view permissions -- etc. - has optional build rule - has pointer to local file representation (i.e. resource.c, myfile.htm, etc.) - has pointer to current Member who has Resource checked out - has method for non-check-out download - has method for check-in/upload - has method for check-out/download - should not allow multiple members to check-out, only last Member who checked out should be able to check-in - has method for relocate/rename - has method for "commit to database," used whenever a change is made so that the change is retained in the resource database - has method for attaching memos ii. Area (extends Resource) - has unique hash code for database indexing - has one or more owner Members who are responsible for Area and contained Resources - has zero or more Members with sets of permissions to Area - has zero or more Resources which belong to Area - has optional build rule - has pointer to local directory representation (i.e. /htdocs/myproject/myarea/) - has method for relocate/rename - has method for non-check-out download all, which runs through list of individual Resources in the Area and calls their non-check-out download methods - has method for check-in all/upload all, which runs through list of individual Resources in the Area and calls their check-in/upload methods - has method for check-out all/download all, which runs through list of individual Resources in the Area and calls their check-out/download methods - has method for "commit to database," used whenever a change is made so that the change is retained in the resource database iii. Project (extends Resource) - has unique hash code for database indexing - has one or more owner Members who are responsible for Project and contained Areas and Resources - has zero or more Members with sets of permissions to Project - has zero or more Areas which belong to Project - has optional build rule - has pointer to local directory representation (i.e. /htdocs/myproject/) - has method for rename - has method for "commit to database," used whenever a change is made so that the change is retained in the resource database iv. Member (extends SecuritySignature) - has unique hash code for database indexing - represents username/password pair v. DB - represents the entire set of Projects, Areas, Resources, and Members - has one owner Member who is responsible for the entire set of Projects - has zero or more Projects which belong to DB - has pointer to master database file - all "commit to database" methods utilize this class - runs as a "daemon" process alongside the web server vi. Memo (extends Resource) - an extension of Resource which is handled separately - used by memos grouped in the collaboration area or attached to Resources
Return to WebRCS page