To be short, a whole lot! There are a whole load of things which need to be sorted out before CMapp can be pushed towards version 1.0. The following is a short list of things which are of utmost priority (in no particular order - "utmost priority" means "utmost priority" so there's no point in ordering anything).
We need a search interface:
PRIORITY: HIGHEST
So far, there is no search interface for CMapp. Given that CMapp is database driven, this is means that we can implement some really cool stuff using MySQL's inbuilt searching tools and also some PHP stuff. As one can expect, the search feature has to be done properly and has to offer the user (contract manager) a lot of flexibility. Ideally, there will be a number of search methods (details of this can be found in a KDissert .kdi file here. Note: You will need KDissert for KDE or a similar XML editor to open the file). There is a cool tutorial on the Zend website in which Leon Atkinson deals with the concept of Chained Selectors in which a drop-down lists displays options to a user based on whatever a user selected in a previous drop-down list. If we could implement these into CMapp, we could link select fields together to make it possible for a user to continue narrowing down the search term as required.
PRIORITY: MIDDLE
Another thing we could do is implement a SQL field in which a user could enter simple SQL commands to get information from the database. This would, of course, be restricted to non-destructive SQL and would thus restrict the user to SELECT * FROM tablename WHERE partner_1 LIKE 'mycompany' etc. INSERT, DELETE etc. will not be allowed. We could even use javascript buttons to insert certain query phrases into the textarea when the user clicks the button (this is how advanced SQL queries are done in Microsoft Access, so there should be no huge difference for a user there).
An index could be made of the scanned PDF files, which would eventually allow a full text search of all the scanned documents. This might be a bit difficult to implement using PHP, but it is possible and would definitely make life a lot easier for a contract manager.
Other ideas might be to allow a user to specify ranges of documents (this would link nicely with the idea of chained selectors as described above). Your ideas are needed!
We need to implement a "template feature":
PRIORITY: MIDDLE
An unbelievable amount of a contract manager's time is wasted with repeating the same job over and over again, for contracts that are essentially the same - even if this only involves adding the partner company's name and address on the first page and then changing all references to this company accordingly throughout the whole document. What we need here is a link between CMapp and something like OpenOffice.org or (if we must) Microsoft Word, which will allow us to make it possible to draft a template, based on a previous agreement between two similar parties (or based on a company official template) which would incorporate the contact information (and any other information a contract manager deems necessary) from CMapp directly into the document. Thus, the contract manager's job is made considerably easier.
This could probably be done using XML directly from CMapp. It needs a lot of work, however. It has the potential to become a really cool feature, but if not done properly, it could break the whole application. Any ideas?