The project goal is to develop a document control front end to subversion that meets industry requirements for various document control use cases.
The scope is to build a tool with the necessary core functionality that is quick to install and easy to use. Future add ons are possible, and extensibility to meet specific company needs is planned, but the functionality should remain simple and easy to use.
High-level features, see the Use Case document for details
- Define document - to define a document or directory within SVN as a controlled/approved document
- View document revisions - show approved revisions and simple front end to SVN log
- Define document approval authority - define list of necessary approvals for a document
- Document change notification - when a document is changed notify defined people on a list
- Document approval - a simple workflow system for gathering approvals for a document release
- Doc release packages - ability to create a release of documents at defined revisions
High-level assumptions or ground rules for the project
- The tool should interface directly with SVN, and not require installation of additional tools, servers etc... this is meant to simplify installation and use.
- The programming language is TBD, but will be either Java or .NET C#. Update: I think going with an Eclipse RCP application would work well. This is open to change, I'd like the design to have a well defined line between the UI, the domain model, and the SVN implementation layer so options are available for changing between Eclipse RCP, an Eclipse Plugin, or maybe a Java delivered applet.
- The tool will install from by the user simply clicking a single link to an install file which can be included in the SVN repository for the project.
- The tool will automatically recognize upgrades, install when necessary, and maintain backwards compatibility as much as possible.
- The tool will be a wrapper for the svn client tools, and not create its own svn client source code. Update: After more investigation SVNKit may be a good option.