Home   Info   DevZone   Wiki  
UsersWeb  |  MainWeb  |  InfoWeb  |  DevZoneWeb  |  SupportWeb
WebRCSClassOutlineB ] [ not logged in ] [ Web: Imported ] goto:  options
[ get info on or edit ] login or new user ] [ list of topics, hubs & nodes, or recent changes ]

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




Content of these pages are owned and copyrighted by the poster.
Hosted by: