file: wtab/requirements originated: 27 Nov 2004 by Toby Martin modified: This is a requirements list for wtab, the web enabled version of the tab program. The requirements fall into two catagories: existing functionality, and new functionality. ---------------- Existing functionality -------------------- User interface: - character interface -- to be modified into a web interface; - menu interface; - remote accessability; - multi-user: record locking on data entry; Invoice generation: - form based data entry; - ability to edit randomly accessed existing records; - automatic invoice enumeration (auto generate next number); - client lookup; - automatic posting to receivables account when invoice printed; - user definable fee descriptors; - interactive fee summation; - print various documents for each record: jacket, invoice, proofs; - multiple proof of service documents, keyed from values within the record; - duplicate header information across invoices; Client generation: - form based data entry; - ability to edit randomly accessed existing records; - automatic client enumeration (auto generate next number); - print client list sorted by client number; Accounts receivable: - generate client based statements listing invoice balances; - record and track payments; - apply payments per invoice; - apply payments per statement; - edit randomly accessed payment records; Printing: - documents and reports are automatically directed to the appropriate printer; Search invoices: - interactive search interface based in invoice entry form; - search for invoices based on user entered matching criteria; - display results are stepped through in reverse sequential order; ---------------- New functionality -------------------- Internal interface: - cross platform GUI (possibly web) interface; - administrative ability to create many and varied interfaces; - GUI data entry interfaces; - GUI data modification interfaces; - GUI user authorization interfaces; - GUI user modification interfaces; - GUI work request authorization interfaces; - GUI accounting interfaces; - print invoice specific documents filtered through user selectable RTF files; External Client User interface: - web interface; - administrative ability to create many and varied user interfaces; - client users can only access data for the authorized client; - clients may either view associated data or request new work; - work requests must be authorized by an internal user; - client associated data is either invoice records or external files associated with an invoice; Users: - users are either internal or associated with a specific client; - client users can only access data for the associated client; - internal users can access and modify data for all clients; - clients request user modifications (crate/delete) via a web interface; - user modification (creation/deletion) must be verified by an internal administrator; - GUI interface for user modification authorization; External files: - external files (pdf, png, gif, jpg, ...) may be associated with an invoice by following a strict naming convention and being placed in a specific directory; Invoice records: - easily modifiable record format; - easily modifiable document templates; Client records: - easily modifiable record format; - print sorted by numeric or alphabetic; Accounts receivable: - apply batch payments via a checklist of open invoices; Logging: - every transaction is logged: when, where (from what IP), who, how (what interface was used), what [file, record, field] and if modified what the values where before and after the modification; Security: - clients access a seperate copy of the data; - client users are associated with a specific client and only allowed to view the data associated with that client; - internal access is only available to internal IPs, off site use may be possible via use of a VPN; Backups: - automatic backups to a seperate on-site dedicated machine; - automatic backups to a seperate off-site dedicated machine;