Lab II - Product Specification Outline CS 411W Lab II Prototype Product Specification For PHP EmVi Prepared by: Keith Walsh, Orange Team Date: 10/8/2013 1 Table of Contents 3. SPECIFIC REQUIREMENTS............................................................................................. 3 3.1 Functional Requirements ................................................................................................................ 3 3.1.1 Logon Experience, Account Maintenance and Security (David Wise) ..........Error! Bookmark not defined. 3.1.2 Work Flow Process (Tamara Jones) ............................................... Error! Bookmark not defined. 3.1.3 Content Creation Experience (Yolanda Quinones) ........................ Error! Bookmark not defined. 3.1.4 Content Storage, Retrieval, Version Control and Validation (Keith Walsh) ................................ 3 3.1.5 Content Distribution Network (CDN) Interface (Richard Truchanowicz) .....Error! Bookmark not defined. 3.1.6 Email Previews (Chris Dashiell) ...................................................... Error! Bookmark not defined. 3.2 Performance Requirements ............................................................................................................ 9 3.3 Assumptions and Constraints ......................................................................................................... 9 3.4 Non-Functional Requirements ........................................................................................................ 9 APPENDIX............................................................................................................................. 9 List of Figures Figure 3-1 Registration and logon flow chart ....................Error! Bookmark not defined. Figure 3-2 Campaign Creation Flow Chart .......................Error! Bookmark not defined. Figure 3-3 Campaign Modification Flow Chart ................Error! Bookmark not defined. Figure 3-4 Campaign to Content Relationship ................................................................... 4 List of Tables Table 3-1 User Table .........................................................Error! Bookmark not defined. Table 3-2 Message Table ...................................................Error! Bookmark not defined. Table 3-3 Campaigns Table ...............................................Error! Bookmark not defined. Table 3-4 Workflow Table.................................................Error! Bookmark not defined. Table 3-5 Reviewer’s Table ...............................................Error! Bookmark not defined. Table 3-6 Campaign to Content Example..........................Error! Bookmark not defined. Table 3-7 Content Table ..................................................................................................... 8 Table 3-8 Content to Campaigns Mapping Table ............................................................... 8 Table 3-9 Content to CDN Mapping Table .......................Error! Bookmark not defined. 2 Table 3-10 Content Types Mapping Table ......................................................................... 8 3. Specific Requirements 3.1 Functional Requirements 3.1.4 Content Creation, Storage, and Version Control (Keith Walsh) Content is a file that goes into making up an email. Content can be an image, an HTML file or a plain text file. Emails are made up of an HTML file, a text file and zero or more image files. Any user of EmVi can create content, but once it exists it must only be updated or removed by a user who has explicit permission to do so. Figure 3-4 and Table 3-6 depict the relationship between content and emails. For content storage, retrieval and version control, the following functional requirements must be met: 3 Figure 3-1 Email to Content Relationship Table 3-1 Email to Content Example 3.1.4.1. Content Creation All content files, along with their defined properties, must be stored by the application. 4 3.1.4.1.1. The application must provide the capability to upload content files from the user’s desktop. 3.1.4.1.2. Acceptable file formats must be defined within the table tbl_contentTypes. 3.1.4.1.3. When a user adds content to the application, that content file must be saved to disk. 3.1.4.1.4. All property data for that content must be saved to the table tbl_content. 3.1.4.1.5. Once content is created, the user with permission to update or delete that content must be identifiable within the table tbl_content. 3.1.4.1.6. When updates are made to content, the identity of the user who made the update must be stored in the table tbl_content. 3.1.4.2. Email Creation Email content consists of one HTML and one text file. Additionally, it may contain images that appear within the HTML content. 3.1.4.3.1. The application must provide the capability to associate HTML content with an email. 3.1.4.3.2. The application must provide the capability to associate text content with an email. 3.1.4.3.3. The application must provide the capability to associate zero or more image contents with an email. 5 3.1.4.3.4. The application must provide the capability to associate a subject line with an email. 3.1.4.3.5. The application must provide the capability to associate a from name with an email. 3.1.4.3.6. The application must provide the capability to associate a from address with an email. 3.1.4.2.1. The application must provide the capability to view both the HTML and text files in a browser. 3.1.4.3. Content Version Control The system must have a way of ensuring that a user’s updates do not overwrite another’s in an unpredictable way. For version control, the following functional requirements must be met: 3.1.4.3.1. The user who creates content is the only user who can edit or delete that content provided that content is not associated with an email. 3.1.4.3.2. A user who creates an email and associates content to that email is the only user can edit or delete any associated content provided that the email is not associated with a campaign and the content is not associated with any other emails. 3.1.4.3.3. A user who creates a campaign and associates email to that campaign is the only user who can edit or delete any associated emails or content provided that the campaign is not associated with any other emails, campaigns or workflows. 6 3.1.4.4.2. A user assigned the current task in the workflow may edit or delete any emails associated with the campaign provided that email is not associated with any other campaigns. 3.1.4.4.3. A user assigned the current task in the workflow may edit or delete any content associated with any emails in the campaign provided that content is not associated with any other emails or campaigns. 3.1.4.4.4. Any user can view content. 3.1.4.4.5. Any user can copy, or “clone,” content. 3.1.4.4.6. Any user can view an email. 3.1.4.4.7. Any user can copy, or “clone,” an email. 3.1.4.6. Content Database The database must store all necessary information (metadata) about campaign content. The actual files that make up the content must be stored as files outside of the database. Tables 3-7 to 3-10 depict the schema for the content tables. Table Name: tbl_content Field Name Data Type contentID int, autoincrement, key contentName text contentDescriptio text n contentKeyWord text s contentType Description Unique identification for each content file. Name for content element. Description for content element. int, foreign key to tbl_contentType 7 Keywords associated with content. Comma separated string. Distinguishes between different file types. createdDate datetime updatedDate datetime createdBy int, foreign key to User updatedBy int, foreign key to User fileLocation text canEdit int cdnID in When the content file was saved for the very first time. Most recent saved time. User who saved the content file for the very first time. User who saved the content file most recently. Local path to the file contents. User who can make changes to the content. ID of the CDN if published. Table 3-2 Content Table Table Name: tbl_contentToCampaigns Field Name Data Type contentID int, foreign key to tbl_content campaignID int, foreign key to tbl_campaigns Description Content ID Campaign ID Table 3-3 Content to Campaigns Mapping Table Table Name: tbl_contentTypes Field Name Data Type typeID int, autoincrement, key typeName text typeFormat text Description Unique identifier for each content type. Name of type for each content type (i.e. “image,” “text”) The file extension for the image (i.e. “html,” “gif,” “png”). Table 3-4 Content Types Mapping Table Table Name: tbl_emailContent Field Name Data Type emailID int, autoincrement, key emailName emailDescription emailHTMLID emailTextID emailSubject emailFromName emailFromAddress text text int int text text text Description Unique identifier for each content type. Maps to content table Maps to content table 8 canEdit Int Maps to userID Table 3-5 Email Content Mapping Table Table Name: tbl_emailImages Field Name Data Type emailID int, autoincrement, key contentID int Table 3-6 Email Images Mapping Table 3.2 Performance Requirements 3.3 Assumptions and Constraints 3.4 Non-Functional Requirements Appendix 9 Description Unique identifier for each content type. Maps to content table