Issue Tracker – Project – Detail

Project: Sumitha Lex

STATUS
Status: open
Current Version:
TEAM
Lead: user
Tech: sumithaprathap
Tester: SANGEETH SUSEEL P

BUG STATUS
All Reported Issues: 2
All Open Issues: 1
Open High Issues: 0
OTHER DATA
NEW BUILD NOTES

 

  • Introduction to DynamoDb vTables

 

 

A vTable is basically a component stored in ‘oxygencomponents’ table. The schema or the structure of vTable is stored in the ‘GlobalAttributes’. The structure includes  information about the attributes and also the relationship between different vtables. The key attributes/columns are named using K1, K2, K3 and K4. The other attributes/columns are named as C1, C2,....etc. For every Key attribute there is a duplicate non-key attribute.

The ‘GlobalAttributes’ holds vTable definition. The actual data is stored in ‘vTableHostSpoke1’ table.

 

 

  • Create and maintain Atomic vTable

 

 

An atomic vtable is independent table which shows details of various attributes of the table. Since atomic tables are not dependant on other tables, LVTableTemplate == RVTableTemplate.

 

[1] Soft Link to the repo :

Server: /Code/github/GreenDeployForSumithaP_0011_0094/vTable/vTableConfigurationAndMaintenanceView/ServerSide/server.js
Sample client:/Code/github/GreenDeployForSumithaP_0011_0094/vTable/vTableConfigurationAndMaintenanceView/ClientSide

 

[2] In the home panel, enter value for "ParentTableTemplateID" as '_FFFFFFFFFFFFFF00001498500322168089_' or any other template of choice as base template. The display name of the vtable template is 'VTablesBasic-0061-0025-0044' .
    Enter value for "TableTemplateNamePrefix" field.
[3] Click on "create vTable" button. This would create a vTable based on the provided template("ParentTableTemplateID").
[4] Note down the "Node" and display name values in the Status table. This is the ID of the vTable template.
[5] Verify that the vTable has been created in the oxygenComponents table in DynamoDB by querying for the "Node" value of the vTable.

Adding attributes to vTable:



      1. [2] In the home panel, enter the values for each field.
            sample data:
            LVTableTemplate: _FFFFFFFFFFFFFF00001522325705241045_ -> this is the Node ID of the vTable obtained while creating the vTable
            LLocalAttribute: -> enter the name of the  attribute/column
            LLocalAttributeType: -> enter "Basic" as it is a non-key attribute/column
            RVTableTemplate: _FFFFFFFFFFFFFF00001522325705241045_ -> same value as LVTableTemplate indicating this is ATOMIC vTable
            RLocalAttribute: -> enter the name of the  attribute/column
            RLocalAttributeType: -> enter "Basic" as it is a non-key attribute/column
            DynamoDbType: String
            OxygenPType: String
        [3] Click "Add Column" button. The attribute is added to the vTable.
        [4] Verify that the attribute is added to vTable by querying the "GlobalAttributes" table using the index "LVTableTemplate-LLocalAttribute-index" and by entering the vTable ID in the "LVTableTemplate" field in DynamoDB.
        [5] For every Key attribute added, create a duplicate non-key attribute by copying the same details but LLocalAttributeType=RLocalAttributeType=Basic

 

 

  • Create and maintain Composite vTable

 

 

A composite table shows a parent-child relation between several vtables, here the LVTableTemplate and the RVTableTemplate where LVTableTemplate composes one of the attributes from the RVTableTemplate. Unlike Atomic tables, in composite vtables, LVTableTemplate != RVTableTemplate due to the relation.

 

[1] Softlink to the repo :

Server: /Code/github/GreenDeployForSumithaP_0011_0094/vTable/vTableConfigurationAndMaintenanceView/ServerSide
Sample client: /Code/github/GreenDeployForSumithaP_0011_0094/vTable/vTableConfigurationAndMaintenanceView/ClientSide

 

[2] In the home panel, enter value for "ParentTableTemplateID" as '_FFFFFFFFFFFFFF00001498500322168089_' or any other template of choice as base template. The display name of the vtable template is 'VTablesBasic-0061-0025-0044' .
    Enter value for "TableTemplateNamePrefix" field.
[3] Click on "create vTable" button. This would create a vTable based on the provided template("ParentTableTemplateID").
[4] Note down the "Node" and display name values in the Status table. This is the ID of the vTable template.
[5] Verify that the vTable has been created in the oxygenComponents table in DynamoDB by querying for the "Node" value of the vTable.

Adding attributes to vTable:



[2] In the home panel, enter the values for each fields. 

In case of composite tables, LVTableTemplate is the template which composes of the RVTableTemplate. There is a parent-child relation.
    sample data:
    LVTableTemplate: _FFFFFFFFFFFFFF00001522325705241045_ -> this is the Node ID of the vTable obtained while creating the vTable. This is the parent vtable template which composes of one of the RVtableTemplate’s attributes.
    LLocalAttribute: -> enter name of the  attribute/column
    LLocalAttributeType: -> "Basic" as it is a non-key attribute/column
    RVTableTemplate: _FFFFFFFFFFFFFF00001522325705241060_ -> this is the Node ID of the vTable obtained while creating the vTable. This is the child vtable template whose attribute is composed within the LVTableTemplate.
    RLocalAttribute: -> enter name of the  attribute/column
    RLocalAttributeType: -> enter "Basic" as it is a non-key attribute/column
    DynamoDbType: String
    OxygenPType: String
[3] Click "Add Column" button. The attribute is added to the vTable.
[4] Verify that the attribute is added to vTable by querying the "GlobalAttributes" table using the index "LVTableTemplate-LLocalAttribute-index" and by entering the vTable ID in the "LVTableTemplate" field in DynamoDB.
[5] For every Key attribute added, create a duplicate non-key attribute by copying the same details but LLocalAttributeType=RLocalAttributeType=Basic

 

 

  • Add/delete Key attributes in vTable:

 

 

After adding attributes to the vtable template, any of the added attributes could be made as a ‘key’ attribute using the button “Make Column as Key-Column” and providing the vTable template ID in LVTableTemplate and the new and old LLocalAttribute.

This would make the nonkey Attribute as Key if there is space for Keys and duplicates values of Attributes in the appropriate column of the vtable LVTableTemplate. 

In case a key attribute needs to be deleted, the button “Delete a Key-Column” could be used by providing LVTableTemplate which is the vTable in which the key is being deleted and LLocalAttribute which is the attribute which is being deleted.

 

 

  • Adding records/rows to vTable

 

Click on ‘Modify row’ button in home panel. A new panel ‘Modify VTable Data’ opens with following options:

  [a] create a record/row in a vTable
  [b] update a record/row in a vTable
  [c] delete a record/row in a vTable

 

 

  •    

  • View contents of a vTable

 

 

vTable View implements the functionality to display the rows of a given vtable:
Softlink to :

Repo:
Server: /Code/github/GreenDeployForSumithaP_0011_0094/vTable/vTableViewServer/
Sample client: /Code/github/GreenDeployForSumithaP_0011_0094/vTable/vTableViewClient/

[1] Enter a vTable display name in to the field 'vTable Display Name'
[2] press 'Enter' keyboard button => checkbox for each attribute/column of the specified vTable are displayed
[3] check the desired checkboxes
[4] Choose the from and to date-time from the date-time pickers
[5] Click the 'View Table Contents' button => Table contents for the chosen date-time range are displayed showing only the attributes selected in step [3].

 

 

  • Example for Atomic and Composite vTable

 

Please refer sheet “SumithaVTable-GA” in spreadsheet 

https://docs.google.com/spreadsheets/d/1LzkA0a9guS7kwDD9ANrXYumDENX5cwHfAsvYMSrnXrw/edit?ts=5a9ccea1#gid=1022471318

 

Sheet “SumithaVTable-GA” shows the details of attributes of each of the atomic vTables in GlobalAttributes table.

 

Following are the Atomic vTables:

[Refer “LVTableTemplate”/”RVTableTemplate” column in sheet “SumithaVTable-GA” for details.]

 

    1. People Table:

 

    1. Cars table:

 

    1. House table:

 

Following is the Composite vTable:

[Refer “LVTableTemplate”/”RVTableTemplate” column in sheet “SumithaVTable-GA” for details.]

 

    1. CarOwners table:

 

 

  • APIs:

 

VTable level APIs:

 

    1. createvTableTemplate

It creates a record in the 'oxygen components' table by maintaining the hierarchy of Family, Type, RootTemplate, Template by getting from parenttemplateid Owner, Org and Account be identical to the one who is creating the templateParameters:

TableTemplateNamePrefix - Prefix name of the vtable that is to be created

ParentTableTemplateID - TemplateID of the parent template, the created table inherits all the columns from this parent table.  The display name of basic vtable template is 'VTablesBasic-0061-0025-0044' with GUID _FFFFFFFFFFFFFF00001498500322168089_. The new vtable could be based on this basic vtable template.

 

    1. createVTableTip 

creates a vTable template's tip

 

Parameters:

Template OID - Template ID of the vTable whose tip is to be created.
'Display Name Prefix' - display name prefix for the tip that is being created.

VTable Column level APIs:

    1. addColumnTovTable

Add a column/attribute for the table template that is created using API "createvTableTemplate"

 

Parameters:

LVTableTemplate: Table template that this global attribute is created in.
LLocalAttribute: Attribute Name
LLocalAttributeType: Left LocalAttribute type can be "RK", "NK" (Description in additional notes)
RVTableTemplate: Table template of the foreign key table(Will be same as the LVTableTemplate if the table doesn't have any foreign key)
RLocalAttribute: "NodeID" if table has a foreign key. Else, it will be same as the LVLocalAttribute if the table doesn't have any foreign key
RLocalAttributeType: "FK" if the table has a foreign key, else. same as LLocalAttributeType if the table doesn't have any foreign key
DynamodbType: String
OxygenPType: String

 

    1. getColumnsForTableID

Returns columns for the specified vTable.

Parameters:

TableID is the oxygen ID returned by the API addOxygenComponent.

 

    1. MakeAttributeAsKey

Makes a current nonkey Attribute a Key if there is space for Keys and duplicates values of Attributes in the appropriate column of the vtable LVTableTemplate. 

Parameters:

LVTableTemplate is the vTable in which key is being added.
LLocalAttributeNew and LLocalAttributeOld are the new and old values of the LLocalAttribute.

 

    1. deleteKeyInVTable

Deletes a Key attribute specified as LLocalAttribute in the vTable LVTableTemplate

Parameters:

LVTableTemplate is the vTable in which key is being deleted.
LLocalAttribute is the attribute which is being deleted

VTable Row level APIs:

    1. addDataToVTable

Adds a row/record to the specified vTable

Parameters:

TableID is the oxygen ID returned by the API addOxygenComponent.

 

    1. getVTableData

Returns the specified record/row from the vtable

Parameters:

TableID is the oxygen ID returned by the API 'addOxygenComponent'.
RowID is the oxygen ID('Node') returned by the API 'addDataToVTable'

 

    1. updateItemInVTable

Updates the specified record/row in a vTable

Parameters:

TableID is the oxygen ID returned by the API 'addOxygenComponent'.
RowID is the oxygen ID('Node') returned by the API 'addDataToVTable'

 

    1. deleteRow

Deletes the specified record/row in a vTable

Parameters:

TableID is the oxygen ID returned by the API 'addOxygenComponent'.
RowID is the oxygen ID('Node') returned by the API 'addDataToVTable'

 

    1. GetRowsInSelectedTimeRange

Retrieves all the rows in the vTable between the specified range in time

Parameters:

SearchQuery: Display name of the vTable returned by the API createvtableTemplate
T1: From date
T2: To date

 

    1. deleteNonKeyInVTable

Deletes a Non-Key attribute specified as LLocalAttribute in the vTable LVTableTemplate

Parameters:

LVTableTemplate is the vTable in which non-key attribute is being deleted.
LLocalAttribute is the attribute which is being deleted

 

 

  • Introduction to RelationalDB vTables

 

 

A vTable is basically a component stored in ‘oxygencomponents’ table. The schema or the structure of vTable is stored in the ‘oxygen_globalAttributes’ in Aurora DB. The structure includes  information about the attributes and also the relationship between different vtables. 

The ‘oxygen_globalAttributes’ table holds vTable definition. The actual data is stored in the specific relational vTable in Aurora.

 

 

  • Create and maintain Atomic vTable

 

 

An atomic vtable is independent table which shows details of various attributes of the table. Since atomic tables are not dependant on other tables, LVTableTemplate == RVTableTemplate.

 

[1] Soft Link to the repo :

Server: /Code/github/GreenDeployForSumithaP_0011_0094/vTable/RestaurantServer/server.js
Sample client: /Code/github/GreenDeployForSumithaP_0011_0094/vTable/RestaurantClient

 

In the RelationalVTableTip’s main panel, in the Right Menu options, click on “Create vTable” option. The following panel is displayed:

 

[2] In the home panel, enter value for "ParentTableTemplateID" as '_FFFFFFFFFFFFFF00001573141528890334_' or any other template of choice as base template. The display name of the vtable template is 'RelationalVTablesBasic-0011' .
    Enter value for "TableNamePrefix" field.
[3] Click on "create vTable" button. This would create a relational vTable based on the provided template("ParentTableTemplateID").
[4] Note down the "OID" and display name values in the Status table. This is the ID of the new vTable.
[5] [Optional] Verify that the vTable has been created in the oxygenComponents table in DynamoDB by querying for the "Node" value of the vTable. Copy the noted “OID” value in the “Node” field.

Adding attributes to vTable:

In the RelationalVTableTip’s main panel, in the Right Menu options, click on 

“Add Global attribute” option. The following panel is displayed:



[2] In the home panel, enter the values for each field.
    sample data:
    LVTableTemplate: _FFFFFFFFFFFFFF00001522325705241045_ -> this is the Node ID of the vTable obtained while creating the vTable
    LLocalAttribute: -> enter the name of the  attribute/column
        RVTableTemplate: _FFFFFFFFFFFFFF00001522325705241045_ -> same value as LVTableTemplate indicating this is ATOMIC vTable
    RLocalAttribute: -> enter the name of the  attribute/column
    RelationalDbType: Varchar
    OxygenPType: String
[3] Click "Add Column" button. The attribute is added to the vTable.
[4] [Optional] Verify that the attribute is added to vTable by querying the "oxygen_globalAttributes" in Aurora DB

 

 

  • Create and maintain Composite vTable

 

 

A composite table shows a parent-child relation between several vtables, here the LVTableTemplate and the RVTableTemplate where LVTableTemplate composes one of the attributes from the RVTableTemplate. Unlike Atomic tables, in composite vtables, LVTableTemplate != RVTableTemplate due to the relation.

 

[1] Softlink to the repo :

Server: /Code/github/GreenDeployForSumithaP_0011_0094/vTable/RestaurantServer/server.js
Sample client: /Code/github/GreenDeployForSumithaP_0011_0094/vTable/RestaurantClient/

 

[2] In the home panel, enter value for "ParentTableTemplateID" as '_FFFFFFFFFFFFFF00001573141528890334_' or any other template of choice as base template. The display name of the vtable template is 'RelationalVTablesBasic-0011' .
    Enter value for "TableNamePrefix" field.
[3] Click on "create vTable" button. This would create a vTable based on the provided template("ParentTableTemplateID").
[4] Note down the "OID" and display name values in the Status table. This is the ID of the vTable template.


Adding attributes to vTable:



[2] In the home panel, enter the values for each fields. 

In case of composite tables, LVTableTemplate is the template which composes of the RVTableTemplate. There is a parent-child relation.
    sample data:
    LVTableTemplate: _FFFFFFFFFFFFFF00001522325705241045_ -> this is the Node ID of the vTable obtained while creating the vTable. This is the parent vtable template which composes of one of the RVtableTemplate’s attributes.
    LLocalAttribute: -> enter name of the  attribute/column
    RVTableTemplate: _FFFFFFFFFFFFFF00001522325705241060_ -> this is the Node ID of the vTable obtained while creating the vTable. This is the child vtable template whose attribute is composed within the LVTableTemplate.
    RLocalAttribute: -> enter name of the  attribute/column
    RelationalDBType: varchar
    OxygenPType: String


[3] Click "Add Column" button. The attribute is added to the vTable.
[4] [Optional] Verify that the attribute is added to vTable by querying the "oxygen_globalAttributes" table in Aurora.

 

 

  • Adding records/rows to vTable

 

Click on ‘Modify row’ button in home panel. A new panel ‘Modify VTable Data’ opens with following options:

 

  [a] create a record/row in a vTable

 

 

   [b] update a record/row in a vTable

 


  [c] delete a record/row in a vTable

 

 

  • View contents of a vTable

 

 

vTable View implements the functionality to display the rows of a given vtable:
Softlink to :

Repo:
Server: /Code/github/GreenDeployForSumithaP_0011_0094/vTable/vTableViewServer/
Sample client: /Code/github/GreenDeployForSumithaP_0011_0094/vTable/vTableViewClient/

[1] Enter a vTable display name in to the field 'vTable Display Name'
[2] press 'Enter' keyboard button => checkbox for each attribute/column of the specified vTable are displayed
[3] check the desired checkboxes
[4] Choose the from and to date-time from the date-time pickers
[5] Click the 'View Table Contents' button => Table contents for the chosen date-time range are displayed showing only the attributes selected in step [3].

 

 

  • Example for Atomic relational vTable

 

 

People Table: _FFFFFFFFFFFFFF00001573828029456249_

 

 

  • APIs:

 

VTable level APIs:

 

 

  • createRelationalVTable

 

 

It creates a record in the 'oxygen components' table by maintaining the hierarchy of Family, Type, RootTemplate, Template by getting from parenttemplateid Owner, Org and Account be identical to the one who is creating the templateParameters:

TableeNamePrefix - Prefix name of the vtable that is to be created

ParentTableTemplateID - TemplateID of the parent template, the created table inherits all the columns from this parent table. The parent template table OID is '_FFFFFFFFFFFFFF00001573141528890334_' and display name is 'RelationalVTablesBasic-0011'. The new vtable could be based on this basic vtable template.

.

VTable Column level APIs:

 

  • addColumnToRelationalvTable

 

Add a column/attribute for the table template that is created using API "createRelationalvTable"

 

Parameters:

LVTableTemplate: Table template that this global attribute is created in.
LLocalAttribute: Attribute Name
RVTableTemplate: Table template of the foreign key table(Will be same as the LVTableTemplate if the table doesn't have any foreign key)
RLocalAttribute: "NodeID" if table has a foreign key. Else, it will be same as the LVLocalAttribute if the table doesn't have any foreign key
table doesn't have any foreign key
RelationaldbType: String
OxygenPType: String

 

    1. getColumnsForRelationalTableID

Returns columns for the specified vTable.

Parameters:

TableID is the oxygen ID returned by the API addOxygenComponent.

 

VTable Row level APIs:

    1. addDataToRelationalVTable

Adds a row/record to the specified vTable

Parameters:

TableID is the oxygen ID returned by the API addOxygenComponent.

 

    1. getRelationalVTableData

Returns the specified record/row from the vtable

Parameters:

TableID is the oxygen ID returned by the API 'addOxygenComponent'.
RowID is the oxygen ID('Node') returned by the API 'addDataToVTable'

 

    1. updateItemInRelationalVTable

Updates the specified record/row in a vTable

Parameters:

TableID is the oxygen ID returned by the API 'addOxygenComponent'.
RowID is the oxygen ID('Node') returned by the API 'addDataToVTable'

 

    1. deleteRowFromRelationalVTable

Deletes the specified record/row in a vTable

Parameters:

TableID is the oxygen ID returned by the API 'addOxygenComponent'.
RowID is the oxygen ID('Node') returned by the API 'addDataToVTable'

 

    1. GetRVtableRowsInSelectedTimeRange

Retrieves all the rows in the vTable between the specified range in time

Parameters:

SearchQuery: Display name of the vTable returned by the API createRelationalvtable
T1: From date
T2: To date

 

 

  • Marketing process flow:

 

Overview

Agent/poster posts a house for rent in craigslist.com on behalf of the house owner. People interested in the post contact poster via email or via website mentioned in the post. When the customer replies to the post via email, the simplia system is notified about the email. Then the poster is attributed with lead points which is later used to calculate the poster’s pay. If the customer responds to the post via the website mentioned in the post, the simplia system tracks that and attributes it as webLead to the poster. Simplia system also keeps track of all the posts done by the poster. Anytime poster’s manager could login to simplia and check performance of posters.

  1. Agent/Poster’s Workflow

Creates a gmail account, a craigslist account.

Available Domains are listed in https://console.aws.amazon.com/ses/home?region=us-east-1#verified-senders-domain:

Sets email forwarding to the assigned domain. For example, if gmail id is lotusagent1000@gmail.com and his assigned domain is foru2find.com then sets the email forwarding to lotusagent1000@foru2find.com. Refer the slides under doc references section for detailed steps.

 

Note: To verify forwarding address(lotusagent1000@foru2find.com), go to https://s3.console.aws.amazon.com/s3/object/received-emails-ses/emails/senders/ and search for “forward”. In the googlemail folder, open the last folder( which is usually the latest one). Open the body.txt. Here the verification code is found.

 

Verifying Email forwarding[Needs aws platform400 access] : alternate way until the issue is investigated/fixed

Set forwarding address as mentioned above. Send verification code. 

Go to https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logStream:group=/aws/lambda/Extract-Attachment-Message-Email-SES;streamFilter=typeLogStreamPrefix

Refresh and open the link matching the timestamp when u sent the verification code. 

Check for entry similar to 

“email-subject: (#634769307) Gmail Forwarding Confirmation - Receive Emails from deepudharmajan1994@gmail.com”

 

“634769307” is the verification code.

Note that the above email id and verification code is just for example.

 

Creates and publishes post in craigslist. Refer the slides under doc references section for detailed steps.

 

Registers the post in simplia using the AddPost panel in two steps.

 

this is set by the agent and domain in simplia (only done once)

      1. AgentEmail: AgentEmailIDInSimplia@xyz.com
      2. POSTURL: http://AgentEmailIDInSimplia@foru2find.com/dummypost
      3. WebsiteURL: http://www.foru2find.com
      4. Email on AD: losangelesrentals5000@gmail.com

 

this is what is submitted by poster for each ad(sample post only):

      1. AgentEmail: AgentEmailIDInSimplia@xyz.com
      2. POSTURL: https://losangeles.craigslist.org/lac/apa/d/1br-1ba-1500-westlake/6725142998.html
      3. WebsiteURL: http://MsinStreet.foru2find.com
      4. Email on AD: 5hww4-6739068610@hous.craigslist.org
  1. Manager workflow

Manager checks following metrics to assess agent/poster’s performance:

Leads, Quality Leads, Modem refresh count, Browser refresh count, Email Leads, Website Leads, Total time, Worked time, Not worked time, Total posts, Active posts, Not active posts.

Clicking on “View History” right menu option and providing the agent’s simplia account id displays metrics as selected:

 

Clicking on “performance view” right menu option displays agent’s all metrics in table form.

 

Clicking on “chart view” right menu option displays agent’s all metrics as pie chart.

 

Clicking on “view timeline” right menu option displays all leads in timeline.

  1. System features

Soon after the poster registers the post in simplia, system starts tracking the post’s status every minute.

When customer contacts poster via email, the system attributes it to the “Email Leads” metric for the agent/poster.

When customer contacts poster via email, the system sends a welcome email to the customer.

When customer contacts poster by registering on a website, the system attributes it to the “Web Leads” metric for the agent/poster.

 

  1. Documents for reference:

Poster_Flows_181026 by Rick Omori (slides pasted here for ref.)

 

 

  • Lex app features:

 

Overview:

The app is used to perform the canonical CRUD operations on vtables. For more info about vtables, please refer the 1st section of this document.

The app understands what operation user wants to perform and on which vtable through  dialogue with the user. It then displays a form so that user could perform the operation he had requested.

As mentioned, user can use the app to create a record, retrieve a record, update a record and delete a record from the desired vtable.

 

Please note: For simplicity, the app is designed to recognize only the following vtable:

Cars0000-0098

 

App needs to be trained to include other vtables. Please contact the developer for this.

 

 

  • Lex app using Simplia Panels:

 

    1. Set-up instructions:

[1] Deploy app in test machine:

Link a simplia Tip to the following components and refresh browser:

/Code/github/GreenDeployForSumithaP_0011_0094/vTable/VueJsTestFormClient/

/Code/github/GreenDeployForSumithaP_0011_0094/vTable/VueJsTestFormSrv/server.js

 

[2] Open the newly configured tip.

 

[3] Console logs at https://<test server name>.laxroute53.com/outlog/simplia

 

[4] Error logs at

https://<test server name>.laxroute53.com/errlog/simplia

  1. Usecases:

Main panel:

 

    1. [1] Check through a dialogue if the App identifies the right action to perform 

User action: 

In the Main panel’s text box, input any one action to perform like create, retrieve, update, delete. Synonyms like add, put, remove, modify, read, write, etc must also be resolved to one of the CRUD operations.

Expected behaviour:

[a] App must resolve user’s intention by displaying list of operations as buttons to the user.

[b] When user clicks on the desired action button, app must ask the name of the table.

 

    1. [2] Check through a dialogue if the App identifies the right vtable

User action: 

Input  just first few characters from any of the following table name:

Cars0000-0098

 

Expected behaviour:

[a] App must display the vtables full names as buttons so that user could choose the desired table.

 

[b] Upon clicking the desired table button, its form must be displayed:

 

    1. [3] Creating a record in the desired vtable

User action: 

Input details in respective attributes of the chosen vtable.

Click on “Add row” button 

Expected behaviour:

App must create a record in the desired vtable and return confirmation message to the user as shown below.

 

Note: Verify the same using the vtables view panel. Refer to section “View contents of a vTable” in this document. Alternatively use the “Retrieve a record” option in this app to verify the record is created.

    1. [4] Retrieve a record from the desired vtable

User action: 

Click on desired table button to display the form with a textbox to enter the key value of the record. 

Input the key value of the record.

Click on the “Get record” button.

Expected behaviour:

App must fetch the record details and display as table:

    1. [5] Updating a record in the desired vtable

User action: 

Clicking the “update record in vtable” button and choosing the desired table, displays form to enter the key value of the record.

[1] Input the key value of the record.

     Click on the “update record” button.

[2] After modifying some field, click on “update details” button.

Expected behaviour:

[1] App must fetch the desired record details and display it as table with the attributes as editable fields.

[2] The record must be updated in the vtable and confirmation message is displayed to the user:

 

    1. [6] Deleting a record from the desired vtable

User action: 

Clicking the “delete record in vtable” button and choosing the desired table, displays form to enter the key value of the record.

 

Input the key value of the record.

     Click on the “delete record” button.

Expected behaviour:

The record must be deleted from the vtable and confirmation message is displayed to the user:

 

 

  • Lex app as standalone app:

 

Set-up instructions[for standalone app]:

===========================================

[1] Deploy app in test machine from https://s3.console.aws.amazon.com/s3/buckets/oxygen-codebase/EFS/EFS01/Code/github/GreenDeployForSumithaP_0011_0094/vTable/LexVTableApp_0025/?region=us-east-1&tab=overview

 

[2] After deploying, the app could be accessed as 

http://<test server name>.laxroute53.com/LexVTableApp_0025/clientSide/main.html

 

[3] Console logs at https://<test server name>.laxroute53.com/outlog/LexVTableApp_0025

 

[4] Error logs at

https://<test server name>.laxroute53.com/errlog/LexVTableApp_0025

 

  1. Usecases:

Landing page:

    1. [1] Check through a dialogue if the App identifies the right action to perform 

User action: 

In the landing page’s text box, input any one action to perform like create, retrieve, update, delete. Synonyms like add, put, remove, modify, read, write, etc must also be resolved to one of the CRUD operations.

Expected behaviour:

[a] App must resolve user’s intention by displaying list of operations as buttons to the user.

[b] When user clicks on the desired action button, app must ask the name of the table.

 

    1. [2] Check through a dialogue if the App identifies the right vtable

User action: 

Input  just first few characters from any of the following table names:

Cars0000-0098

 

Expected behaviour:

[a] App must display the vtables full names as buttons so that user could choose the desired table.

 

[b] Upon clicking the desired table button, its form must be displayed:

 

    1. [3] Creating a record in the desired vtable

User action: 

Input details in respective attributes of the chosen vtable.

Click on “Add row” button 

Expected behaviour:

App must create a record in the desired vtable and return confirmation message to the user.

Note: Verify the same using the vtables view panel. Refer to section “View contents of a vTable” in this document. Alternatively use the “Retrieve a record” option in this app to verify the record is created.

    1. [4] Retrieve a record from the desired vtable

User action: 

Click on desired table button to display the form with a textbox to enter the key value of the record. 

Input the key value of the record.

Click on the “Get record” button.

Expected behaviour:

App must fetch the record details and display as table:

    1. [5] Updating a record in the desired vtable

User action: 

Clicking the “update record in vtable” button and choosing the desired table, displays form to enter the key value of the record.

[1] Input the key value of the record.

     Click on the “update record” button.

[2] After modifying some field, click on “update details” button.

Expected behaviour:

[1] App must fetch the desired record details and display it as table with the attributes as editable fields.

[2] The record must be updated in the vtable and confirmation message is displayed to the user:

 

    1. [6] Deleting a record from the desired vtable

User action: 

Clicking the “delete record in vtable” button and choosing the desired table, displays form to enter the key value of the record.

Input the key value of the record.

     Click on the “delete record” button.

Expected behaviour:

The record must be deleted from the vtable and confirmation message is displayed to the user: