Document management system
Trac is perfect as a document management system when you treat documents as tasks. It is perfect for high volume fax incoming and processing. In one particular case 661,124 (as of 2012) documents/tickets have been processed and the set up still works in production environments. (1,349,069 tickets by 2015)
The key features that we needed:
- assign tickets and transfer them between people.
- view attachments easily, write comments, and index.
- create your own "type" aka "milestone": incoming, other, changes, cancellations, renewals.
- load and create tickets automatically via xml-rpc.
- add your own custom fields "tracking number", or contract_number.
- wiki main homepage as dashboard: set up a search on main page to most common milestone like Incoming,My Tickets, New Not Assign,
- wiki main homepage as dashboard: set up query to posts to query page with your layout of fields, and conditions,group by. Search by tracking #, Reported Today, Search by contract_number, new not assigned change tickets.
- batch assign tickets to an individual (part of Trac core).
- move tickets to another Trac to a different department through TicketMoverPlugin.
We average ~600 incoming tickets a day. 1-2 indexers, 15 people processing tickets daily, went 80% paperless in 2 days.
- Email: email2trac plugin (follow link on EmailtoTracScript). Multiple email accounts "support@…,incoming@…,underwriting@…. You control which milestone, component and version each email is routed to. On main wiki page you provide links to each milestone. The message can be either an email or a fax (fax2email). All general tickets go to milestone Incoming. From there indexer moves to the appropriate milestone (processing types), version (per state or line of business), and component (type of document that might require special handling).
- Faxes: Newer system, or cloud based fax2email get routed via email. If you have faxes, you can write 30-line Python code script that takes tif and uploads to trac using xml-rpc. In our case we converted tif to pdf, extracted created time,fax#,# of pages and created ticket with all that information. Every 30min all new faxes get uploaded.
- Trac scripts: these are custom scripts written by you that autoclose tickets using XML-RPC. As you automate some items that are processed by the system, you might be receiving email documents as a backup, automatic issuance, esignature confirmations,etc. Since these were already processed we wrote scripts that query (using xml-rpc) the open tickets, get contract_number and close them (while updating other info). What ever else is not closed gets looked at by somebody and processed manually in that department. Other scripts loop through open tickets, and if special accounts are found the tickets priority gets autochanges to critical, and move up in priority. Other scripts update tickets based on the contract#, pull data from other database and store info in keywords.
- TicketMoverPlugin: Since each department had a different milestone requirements, each has a separate instance of Trac. Common milestone for all is Incoming. TicketMoverPlugin allows you to move tickets between Tracs when faxed to the wrong place.
- Wiki: Using the wiki you can create custom query on ManagementReport pages, that summarizes current open task list. CEO has direct access to that page and can check if department is falling behind and can add/hire additional people, or authorize overtime at first signs of backlog.
If you think of your problems as "tasks" then Trac is suitable for use as a Document Management System.