Application consists of 2 parts: - Client uploads docs to server - Administration check uploaded files. Both should have access to common file storage and PostgreSQL database, which contains per client/document approval results. Administrator part: - set per client-type necessary documents needed for upload, in some cases modify settings individually - set combination of content parts for client contract - view searchable list of all clients with optional filter for those with new uploaded files - review uploaded documents, approve or reject them (type a note for client to see why file was rejected), send email request to upload rejected file again - set / modify client rating - see/answer/send individual message to client - periodically and per command move older files to another location User part: - view/print individual contract, generated based on admin settings and data from database for this client type resp. individual - upload signed contract scanned in file - upload additional requested documents, select document type and enter number for ID document - see list of uploaded documents with approval status, sometimes with appeal to reload in better quality - set conditions for files (file type and file size) - see overall state of admin approval (waiting for upload, pending, accepted, rejected, etc.) - see/answer/send individual message from admin Both parts should be later included as modules in our application using PostgreSQL, Python and Twisted web server with Athena AJAX/COMET. Experience with Twisted, PostgreSQL and Athena AJAX/COMET is required. Knowledge of Nevow is welcome. For development and testing we can provide a VMware Virtual Machine with Ubuntu 10.04 LTS and all components and settings identical with our environment. Creating a small functional spec before starting the work would be appreciated.