Simple NDA

From ContractPal

Jump to: navigation, search

We develop a simple non-disclosure agreement (NDA) to demonstrate how a Pal is developed. You may download the completed Pal Image:Simple NDA.zip.

Create NDA Pal

New Pal Dialog
Enlarge
New Pal Dialog
  1. Configure your account for Pal development.
  2. Create a new Pal.
  3. Type "Non Disclosure Agreement" in the Name field.
  4. Type "Agreement to protect trade secrets" in the Description field.
  5. Type "Corporate" in the Category field.
  6. Select "Advanced" workflow from the type list.
  7. Select "2" from Authentication Level.
  8. Select ** Developer Activation Key 1 ** from the Activation Key drop down list.
  9. Click the Submit button.

Start Pal Builder

Pal builder is an integrated development environment (IDE) available for use from a web browser or with Eclipse using a plugin.

Add Custom Properties

Custom properties are global variables that hold a name and a value. We use the custom property Company to hold the name of the company.

  1. Add a custom property called "Company".
  2. Type in a company name or simply use "ContractPal" in the Value field.
  3. Leave the Searchable check box blank.
  4. Close the dialog.
  5. Click Save.

Add Roles

The Company role is responsible for initiating the transaction and closing it. The Recipient is responsible for reading and signing the NDA.

  1. Add roles Company and Recipient.
  2. Type "Company" into the name field.
  3. Click OK or Add New Role.
  4. Type "Recipient" into the new field.
  5. Click OK or Add New Role.

Add Requirements

A requirements document defines the purpose of a transaction. It includes background information, roles, documents, pages and a use case scenario to describe the process. The developer references this document to understand what the transaction is supposed to accomplish.
Sample requirements document for an NDA:

  1. Create a requirements document called "NDA_Requirements".
  2. Copy the text provided below and paste it in between the body tags.
  3. Click Save button.
<html>
	<head>
		<title>NDA Requirements</title>
	</head>
	<body>
       <h3>Description</h3>
  
       <p>A non-disclosure agreement (NDA), is a legal contract 
              between at least two parties which outlines confidential materials or 
              knowledge the parties wish to share with one another for certain 
              purposes, but wish to restrict from generalized use. In other words, 
              it is a contract through which the parties agree not to disclose 
              information covered by the agreement. An NDA creates a confidential 
              relationship between the parties to protect any type of trade secret. 
              As such, an NDA can protect non-public business information.</p>
       
       <p>NDAs are commonly signed when two companies or individuals are 
              considering doing business together and need to understand the 
              processes used in one another's businesses for the purpose of 
              evaluating the potential business relationship. NDAs can be "mutual", 
              meaning both parties are restricted in their use of the materials 
              provided, or they may only restrict a single party. It is also possible for an 
              employee to sign an NDA or NDA-like agreement with a company at the time of hiring,
              in fact some employment agreements will include a clause restricting
              "confidential information" in general.</p>
              
       <h3>Roles</h3>
       <p> Company: starts and closes the non disclosure agreement process.<br/>
                Recipient: reads and signs the non disclosure agreement.</p>
       
       <h3>Documents</h3>
       <p> Non Disclosure Agreement: Confidentiality agreement signed by anyone that may have 
                access to sensitive company information.</p>
              
       <h3>Use Case Scenario</h3>
       <ul>
           <li>Company representative answers questions from a wizard.</li>
           <li> An email invitation is sent to a Recipient.</li>
           <li>Recipient opens email, clicks on a hyperlink to access the NDA Pal.</li>
           <li>A welcome page explains the overall process and displays a 'Continue' and 
                       an 'Exit' button.</li>
           <li>Recipientis shown the nda document with information transferred from 
                       the wizard.</li>
           <li>Recipient reads and signs the nda document.</li>
           <li>If Recipient rejects signing, a support page is displayed and an email is 
                       sent to Company representative.</li>
           <li> If Recipient signs the agreement, an exit page is shown and an email is sent  
                       to the Company representative.</li>
           <li>Company representative opens email confirmation of signing.</li>
           <li>Company representative clicks on the hyperlink to view the completed 
                        transaction.</li>
      </ul>
</body>
</html>


Add Page

The page is used to display documents, notifications and wizards. The cascading style sheet defines a consistent appearance. Conditional tags <c:when > enable the main page to show a document, notification or a wizard as appropriate. The <c:progress/> tag displays a progress bar for the wizard.

  1. Create a new page called "main.htm".
  2. Copy and paste the text.
  3. Click Save button.


<html xmlns:c="contractpal">
<head>
<title>Display Page</title>
<link rel="stylesheet" type="text/css" href="../Styles/styles.css"/>
</head>
<body>

<div id="cp-root">
<div id="container">

  <div id="header">
  	<h2>${CompanyName} Non Disclosure Agreement</h2>	
  </div>
  
    <div id="content">  
     <c:choose>

       <c:when test="${display == 'showWizard'}">
                <c:progress/>
	         <c:wizard/> <br/><br/><br/><br/>
	         <c:wizard-previous style="wizButton" value="Previous"/>
	         <c:wizard-next style="wizButton" value="Next"/> 
          
            <p> 
               The NDA agreement is a legally enforcible contract in which one party <br/>
               agrees not to disclose information covered by the agreement. An NDA creates<br/>
               a confidential relationship between the parties to protect any type of trade secret.<br/><br/>
               
               As such, an NDA can protect non-public business information.<br/>
               NDAs are commonly signed when two companies or individuals are considering doing business<br/>
               together and need to understand the processes used in one another's businesses solely<br/>
               for the purpose of evaluating the potential business relationship. NDAs can be mutual<br/>
               meaning both parties are restricted in their use of the materials provided or they can<br/>
               only restrict a single party.<br/>
            </p>
      </c:when>

      <c:when test="${display == 'confirmation'}">       
           <div>
           	<p>An email has been sent to <b>${firstName}</b> at email address <b>${email}</b>.</p>
				<ol>
					<li>Click the <b>Exit</b> button.</li>
					<li>Open the email from ContractPal.</li>
					<li>Click on the link in the email.</li>
					<li>Login with the email address: <b>${email}</b><br/>
                                           or create a new account to continue in the <b>recipient</b> role.
                                       </li>
				 </ol>
	            <c:button style="float:left;" value="Exit" action="Exit"/>
           </div>       
      </c:when>       

      <c:when test="${display == 'showNDA'}">       
		<div>
	        <c:document style="height:520px;width:780px;"></c:document>
	        <c:button style="font-size:10pt;color:blue;float:left;" value="Done" action="Exit"/>
        </div>  
      </c:when> 

     <c:when test="${display == 'rejectSign'}">
          <div>
             <p>You have chosen to <b>not</b> sign the non-disclosure agreement.</p>
             <c:button style="font-size:10pt;color:blue;float:leftI;" value="Exit" action="Exit"/>
          </div>       
      </c:when>
      
      <c:otherwise>
           <c:debug/>
      </c:otherwise>
	   
   </c:choose>
 </div>

 </div>
</div>

</body>
</html>


Add Email Template

Add an email template

  1. Create an email Template called "Invitation.htm".
  2. Type "Invitation" into the File Name box.
  3. Click the Finish button.
  4. Copy and paste the text.
  5. Click Save.


<html xmlns:c="contractpal">
	<head>
	<title>Invitation</title>
	</head>
	<body>
		<div id="cp-root">
	   	<p>${first_name},</p>
 			
  			<p>${CompanyName} requests that you sign a non-disclosure agreement (NDA).</p>
 			<p><ol>
 				 <li>Click on the link in this email or copy and paste the link into a  browser window.</li>
 				 <li>Login with the email address: <b>${email}</b><br/> or create a new account to continue in the <i>recipient</i> role.</li>
 			   </ol> 
			</p>
		    <p><c:a name="target" action="show_document">Click here to sign the NDA.</c:a></p>
		</div>
	</body>
</html>


Add Wizard

The wizard asks for a name and email address of the recipient. This information is used to send an email with a request to sign the non-disclosure agreement. The attribute progress is set at 50%.

  1. Create a new wizard called "Client.xml".
  2. Copy and paste the text below.
  3. Click Save button.


<dialogs first="personal" styleSheet="styles.css" xmlns="http://www.contractpal.net/schemas/wizard">
<dialog name="personal" goto="endWizard" action="send_email" progress="50">
<content>
<div> 

 <p>Enter a first name, last name and email address.<br/>
 Click the <b>Next</b> button to send an email.</p>    

 <p>First Name     <input name="firstName" size="25" type="text" value="John"/></p>              
 <p>Last Name      <input name="lastName" size="25" type="text" value="Doe"/></p>               
 <p>Email Address  <input name="Email" size="35" type="text"  value="EmailAddress@contractpal.com"/></p>         

</div>
</content>
</dialog>
</dialogs>


Add NDA Document

The NDA document explains the terms of the non disclosure agreement. We will create the document by copy and pasting the text of the document. The document contains a tag that is rendered as a click signature field that will display an electronic signature.

  1. Create a document called "NDA.htm".
  2. Type "NDA" into the Name box.
  3. Type "Non Disclosure Agreement" in the Description box.
  4. Type or copy and paste this text into the document.
  5. Click the Save button.


<html xmlns:c="contractpal">
<head>
<title>NDA</title>
</head>
<body>
<div id="cp-root">
	      <p>NON-DISCLOSURE AGREEMENT</p>
             
              <p>FOR GOOD CONSIDERATION, and in consideration of consideration of working with ${company}, 
              the undersigned hereby agrees and acknowledges:</p>
             
              <p>1. That during the course of my employ there may be disclosed to me 
              certain trade secrets of the Company; said trade secrets consisting 
              but not necessarily limited to:</p>
             
              <p>(a) Technical information: Methods, processes, formulae, compositions, 
              systems, techniques, inventions, machines, computer programs and 
              research projects.</p>
        
             <p> (b) Business information: Customer lists, pricing data, sources of 
              supply, financial data and marketing, production, or merchandising 
              systems or plans.</p>
            
              <p>2. I agree that I shall not during, or at any time after the 
              termination of my work with the Company, use for myself or 
              others, or disclose or divulge to others including future employees, 
              any trade secrets, confidential information, or any other proprietary 
              data of the Company in violation of this agreement.</p>
           
              <p>3. That upon the termination of my work with the Company:</p>
           
              <p>(a) I shall return to the Company all documents and property of the 
              Company, including but not necessarily limited to: drawings, 
              blueprints, reports, manuals, correspondence, customer lists, computer 
              programs, and all other materials and all copies thereof relating in 
              any way to the Company's business, or in any way obtained by me during 
              the course of employ. I further agree that I shall not retain copies, 
              notes or abstracts of the foregoing.</p>
       
              <p>(b) The Company may notify any future or prospective employer or third 
              party of the existence of this agreement, and shall be entitled to 
              full injunctive relief for any breach.</p>
                          <div id="smallText">
                          <p>(c) This agreement shall be binding upon me and my personal 
                          representatives and successors in interest, and shall inure to the 
                          benefit of the Company, its successors and assigns.</p>
                          </div>  
              <p>Signed: ${date}</p>
        
              <p>Signature:  <input cp-sig-id="sig1" cp-sig-type="click" type="text" cp-sig-role="Recipient"/></p>
</div>
</body>
</html>


Add Style Sheet

The style sheet defines formatting attributes.

  1. Add a style sheet with the name "styles.css".
  2. Type or copy and paste the text.
  3. Click the Save button.


/* Style Sheet */

#cp-root div {
    margin:0 auto;
}

#smallText{
font-size: 10px;
color: #666666;
}

#header {
   color: white;
	padding: 10px;
	background-color:Red;
	height:50px;	
   text-align: center;
}

#container{
   width:800px;
	height:630px;
	position: relative;
	border:    1px red solid;	
}

#content{
	padding: 10px;	
   height: 100%;
} 


Add User Workflow

The user workflow is a script that controls the transaction process.

  1. Add a workflow called "userworkflow".
  2. Type "userworkflow" into the Name field.
  3. Select User from the drop-down list.
  4. Click the default checkbox (workflow will be used when you click Test).
  5. Click the Create button.
  6. Copy and paste this script.
var c;
var packet;
var page;
var document;
var Data;
var wiz;
var cName;

function run(controller)
{ 
   c = controller;
   packet = c.getPacket();
   document = packet.addDocument("NDA");
   wiz = packet.addWizard("Client");  

   var email;
   cName = packet.getProperty("Company");	

// Add the main page, set the macro $display = showWizard. The page will display the wizard.
   page = c.getPage("main");
   page.addWizardToPage(wiz);
   page.setValue("CompanyName", cName);
   
   if (c.isAction("cp-begin") )
  {
     c.getUser().assignRole("Company");
     page.setValue("display", "showWizard");
     page.addWizardToPage(wiz); 
     return page;      
  }
   else if (c.getAction()  == "cp-continue")
  {
      page.setValue("display", "showNDA");                    
      return showDoc("main", "NDA");          
  } 
  else 
  {
       switch (c.getAction())
       {
           case "acceptTerms": 
               c.debug("Document Signed!"); 
               document.sign();
               page.setValue("display", "showNDA");
              return showDoc("main", "NDA"); 
                          
            case "rejectTerms":
               page.setValue("display", "rejectSign");
              return page;              
              
             case "send_email":
             // add the wizard to the packet
               wiz = packet.addWizard("Client");
               
             // Get name and email address from the wizard
               Data = wiz.getData();
               var fName = Data.getValue("firstName");
               var emailAddress = Data.getValue("Email");				

             // Insert first name into the email template
               email = c.createEmail("Invitation");
               email.getData().setValue("first_name", fName); 
               email.getData().setValue("CompanyName", cName);
               email.getData().setValue("email", emailAddress);
				             
            // Send the email to the address entered in the wizard

               email.sendToAddress(emailAddress);
            
            // Notify the user that the email invitation was sent
               page = c.getPage("main");
               page.setValue("display", "confirmation"); 
				page.setValue("firstName", fName);
				page.setValue("email", emailAddress);
               return page;

             case "show_document":  
               c.getUser().assignRole("Recipient");
               // set the macro $display to show the NDA document section of the page.
               page.setValue("display", "showNDA");        
              return showDoc("main", "NDA");            
              
             case "Exit":

             return controller.exitToConsole();
       }
  }
}

function showDoc(pageName, docName)
   {
       page = c.getPage(pageName);
       document = packet.addDocument(docName);        
       // Add the document to the page
       page.addDocumentToPage(document);

       // set the date in the document
       Data = document.getData(); 
		var todayDate = c.getFormatter().formatDate(c.getDateUtil().createDate(), "dd MMM yyyy");
	 	
       Data.setValue("date", todayDate);
		//packet.getProperty("Company") 

		page.setValue("CompanyName", cName);
      // Get first and last name from the wizard
         Data = wiz.getData();
         var firstName = Data.getValue("firstName");        
       document.enableSigning("acceptTerms", "rejectTerms");       
       return page;
   }

Test

Test the Pal to verify that the Pal will work as expected in Navigator. The test process validates the content and structure of the Pal.

  1. Click Image:test.png in Pal Manager.
  2. Click Image:test_eclipse.png in Eclipse.

Deploy

Deploy Pal
Enlarge
Deploy Pal

Deploying the Pal generates a hyperlink with a token to start a new transaction. This URL can be sent in an email or posted on a web page.

  1. Log into Console.
  2. Click the Image:PalManager.png next to the Pal Non Disclosure Agreement.
  3. Click Deploy Image:Deploy.png.
  4. Select an Activation Key.
  5. Click the Continue button.
  6. Copy the Token and paste it in an email or web page.







 Sample Access Token:
 
 token: 
 https://secure.contractpal.com/cpal/GetNavigator.do?
 nxTokenId=3F79D51B360472DC09AF80C13A283B3E20E0379131C26D5DD6ADD86B44B4479

Image:Note.png Note: You may now copy and paste this access token into an email.