We need to create a customer database. The framework for it will be supplied by a membership plug in we already have. We wish to add a table, though, that will keep various contact information, pricing information and other data.
An admin will create a customer record in the WP-admin interface. Pricing information, basic customer data, and contract start/end dates will be entered by the admin. At this time the system will generate an email to the primary contact with selected data, a system-generated password, and a link to the customer-level access page. There, the contact will supply additional information, review a template of our contract, and agree to the contract.
Then the software will generate a PDF of the contract and email it to the primary contact through Adobe's EchoSign service. At this time, some of the customer-level data fields will be locked to the customer, unable to be edited in the future. The software will also generate emails of pertinent information to several users (each with different needed information) at this time.
When the customer returns the contract for our signature, an admin will upload the signed PDF to the customer's record in the admin interface. The read-only contract will be available for view by the customer on their page. At this time, the system will generate another set of emails with pertinent information to several recipients.
Our employees will have a third level of access -- read-only for the primary contact data, editable fields for selected data. These users will be able to view and update all customers in a grid view, rather than editing them one by one. The use of this grid view is an Emergency Contact list.
A separate grid view will be available to administrators, who can edit any data in the customer record from the grid view. The grid view needs to be sortable by clicking on the headers at the top. The software will also allow an admin to setup auto-emails based on certain factors, such as it being 45 days before contract expiration.
Experience with git deployment of the site (particularly in the WPEngine environment) is a strong plus.