
Groowiki Features
Groowiki is based on documents.
You can manage your documents stored in SVN using the web interface of Groowiki. Groowiki extends the use of SVN with a web interface that ease the navigation between the directories and files as well as ease information management.
You can use Groowiki together with some other SVN client to extend the functionality that are already available using TortoiseSVN, RapidSVN or some other SVN client.
Groowiki provides several features from the simple one to the most complex each extending the possibilities and ease the use of document management.
The very first thing you can do with Groowiki is to access the SVN file structure using a web browser. You log into the web interface using your SVN username and password and you see the same set of files and directories listed on screen. The format of the listing comes from Velicity template files.
This alone would not give much advantage over the local working copy that you can browse using file explorer or some "commander" tool. As an addition Groowiki adds title and description to each file and directory that you can edit.
This helps the navigation between files and directories when you access folders that are new to you or that you visit rarely. The information in the description and title helps you identify the location that you really need to find.
The descriptions can be plain text files, HTML or radeox syntax wiki pages depending on your choice and devotion how much effort you want to invest making the descriptions or how many formatting features you need.
To go even further you can also define business type for each of the directories and files. This business type does not mean too much for groowiki itself, however it tells groowiki that you may want to handle such files anddirectories a bit different.
An example is a folder where you store invoices. Then the business type of the folder may be set to 'invoice'. Whenever groowiki sees that the directory has business type 'invoice' it tries to locate a velocity template that is especially for the business type 'invoice'. If there is one it uses that instead of the 'default' business type that each directory and file has if nothing else is specified.
This way you can display invoices (stored in files) or list of invoices (directories) in a special way displaying the date, amount and partner of the invoice. Of course you can also download the content of the file.
It is not only the template that you can define for the business type, but whenever a file bearing a specific business type is altered a Java or Groowy plugin is invoked if it is configured. This lets you extend the basic CRUD operations for the different business types to more complex business behavior.
When you have many different business types which do not require absolutely different display it would be boring to create many templates that differ only in the list of the fields. To ease this task you can define the list of fields for the different business types and groowiki will display a standard CRUD template for your business types. You should only define the name, type (text, date, number, choice etc.), size and description parameters for the different fields in a business type.
To let you edit these parameters there is (a planned) groowiki swing application that lets you edit these properties in an offline working copy of the repository (or part of the repository).
In more complex application you do not only want CRUD operation for the different files and their properties, but you also perform business operations. To do this groowiki lets you define a workflow for the business type and hook functions and templates for the different transitions.
Workflows are very powerful especially if they are intergated with access control. To harvest the full power of workflow groowiki implements an own access control mechanism that may be used in addition to the standard SVN read/write access control. Note however that in that case the users who access the repository via groowiki should not have SVN access directly only through groowiki, otherwise they just may do anything that SVN lets them.
To find the documents groowiki indexes the files and directories using full text search and you can also navigate via the search result not only the tree structure of the repository.
To get notified whenever there is some change in the repository you can subscribe to the RSS feeds of groowiki, or subscribe to the mail notification service or you can configure SNMP traps.
To store sensitive information groowiki lets you access repositories that are on the same machine where groowiki runs and lets you configure TrueCrypt to encrypt the repository file. In this case you can have the files encrypted on the server and they are only opened for the very short period of time you need it. When you log in you also provide the TrueCrypt volume password or kee file (uploaded) and when you log out you can dismount the volume.
To integrate groowiki with other systems you can configure business types to fetch and store data in database or send files along with their properties into JMS channel or to specified SOAP service.
Using all these feature you can implement a document management service that does not drastically differ from your current setup and introduce new features gradually as your user community mature and get the greed for the new features.
Note that some of the features described here may be available in later releases or only in some editions of groowiki other than community.