/
Setup BCF Extension Projects

Setup BCF Extension Projects

This article covers how to setup as well as knowledge about BCF's AgendaBuilder, CompetencySurfer and PassagePlanner.

NOTE: THE FOLLOWING STEPS ARE AN AGGREGATE OF AVAILABLE INFORMATION.  TODO - Caleb - Clean it up and update.

Step-by-step guide

General/First Time Setup

Once you have a cloned the repository and have a build on your machine do the following.  :

  1. Log in to MarineLMS: http://localhost/MarineLMS.Web.Main.trunk/Cnt/Root/
  2. From the admin bar on the bottom of the home page, click on 'Edit' → 'Links'.
    1. Click on 'Add+' → Navigation Page.
    2. On the New Page dialog box, enter "BCF" in all and click 'Create'.
    3. Click 'Done'
  3. While still on the Home Page, click on 'Setup' (or go to /Pages/Dev) to go to the Administration page.
    1. Select 'Page Tags' on the left navigation. 
    2. In the middle section, enter:
      1. Path:  /Root/BCF/ 
      2. Dropdown (Tag For Path):  Organization 
      3. Click 'Set Tags For Path'
    3. In the top section, enter:
      1. Path:   /Root/BCF
      2. Click 'Get Tags For Path'.   
      3. You should see two entries:   
        1. Path:  /Root/                 Tags:  None   
        2. Path:  /Root/BCF          Tags: Organization 
  4. While still on the Administration page click on the "Custom DNS" tab
    1. Add an entry for BCF:
      1. Incoming DNS: localhost
      2. Target DNS: *Leave this blank* 
      3. Default Home Path: /Root/BCF (same as above)
      4. OrganizationalPath: /Root/BCF
    2. Hit Save/Update.
  5. While still on the Administration page click on the "Client" tab
    1. Run the following, to add/save the following 3 required key/value attribute pairs to specify the organization group names:
      1. addNavPageAttribute /Root/BCF/ System.Customer.Course.Management.Admins.GroupName AgendaBuilderRole-Administrator
      2. addNavPageAttribute /Root/BCF/ System.Customer.Users.GroupName AgendaBuilderRole-User
      3. addNavPageAttribute /Root/BCF/ System.Customer.User.Management.Admins.GroupName BCF-User-Administrator
    2. Existing Roles
      1.  Administrator
      2. Familiarizer
      3. OnboardEducator
      4. Public (default if user is not logged on)
    3. NOTES:
      • AgendaBuilder uses the Administrator and User groups and need to be spelled exactly as above.
      • The BCF ext web.config setting BCFModule mandates some of the group names in the LMS. That is, BCFModule + 'Role-'  + Role Name generate the 2 group names for 'System.Customer.Course.Management.Admins.GroupName' and 'System.Customer.Users.GroupName'.
      • Those 2 group names are the same across all BCF extensions, or can be handled separate
      • For example if BCFModule = 'BCF'  the following group names are required
        • System.Customer.Course.Management.Admins.GroupName = BCFRole-Administrator
        • System.Customer.Users.GroupName = BCFRole-User
        • System.Customer.User.Management.Admins.GroupName can be set to whatever group name is best - usually 'BCF-User-Administrator for an organization with name BCF
    4. Existing Capabilities (groups with BCFModule + 'Capability-' + Capability Name):
      1. CompEditor (part of Competency Editor)
      2. PassageEditor (part of Passage Planner)
      3. TrainingManager (part of Agenda Builder)
  6. While still on the Administration page on the "Client" tab
    1. Select 'Clients' on the left navigation. Using the "Command Window" create the following OrgProfileField using the following command: 
      1. AddOrgProfileField "Department" "/Root/BCF/" "singlechoicestring" "true" "true" "na\catering\cwide\deck\engineering\TCER\terminals" 
    2. You should see a successful completion of the command.

  7. While still on the the Administration page in the Client tab also run the following command:
    1. NOTE: Before running the next command ensure the Feedback Notification template is in the configured folder (Found in: \MarineLMS\develop-content\CustomNotificationTemplates)
    2. createNotificationTemplate /Root/BCF Feedback /BCF/Feedback 

IIS Setup

 Please refer this document to setup the IIS - IIS Setup for Extensions


Generel Web config

Ensure the following entries are in the Web.config (Applies to all three projects respectively):

  <appSettings file="Web.User.config">
    <add key="Core.RequestContext" value="web"/>
    <add key="Network.NotificationServiceAdminEndPoint" value="net.tcp://localhost:8001/Services/NotificationService"/>
    <add key="Network.UserServiceSecureEndPoint" value="net.tcp://localhost:8000/Services/UserService"/>
    <add key="Network.UserServiceAdminEndPoint" value="net.tcp://localhost:8001/Services/UserService"/>
    <add key="Core.MaxReceivedMessageSize" value="2147483647"/>
    <!--Retrieved the Timezone from http://msdn.microsoft.com/en-us/library/cc749073.aspx -->
    <add key="Ext.ExtensionsServiceName" value="MarineLMS Extensions Service(CoreDev)"/>
    <add key="Core.CoreServiceName" value="MarineLMS Core Service(CoreDev)"/>
  </appSettings>

Agenda Builder

Configuration

If you have completed the General/First Time setup, do the following:

  1. Click on 'Setup' or go to /Pages/Dev to go to the Administration page.
    1. Select 'Clients' on the left navigation. Using the "Command Window" create the following 8 groups using the following commands: 
      1. createGroup /Root/BCF AgendaBuilderCapability-TrainingManager
      2. createGroup /Root/BCF AgendaBuilderRole-Administrator
      3. createGroup /Root/BCF AgendaBuilderFeedback-EmailDestinations
  2. While still on the the Administration page in the Client tab also run the following command:

    1. addOrgNotificationRule "/Root/BCF" Feedback "IsCategory(AgendaBuilder,FeedbackSubmission)" "InGroup(/Root/BCF,AgendaBuilderFeedback-EmailDestinations)" Email

    2. You should see a "New organization notification rule created" message.

  3. While still on the the Administration page in the Client tab also run the following command:
    1. NOTE: Before running the next command ensure the relevant Notification template is in the configured folder (Found in: \MarineLMS\develop-content\CustomNotificationTemplates)
    2. createNotificationTemplate /Root/BCF UseAgenda /BCF/UseAgenda 
    3. createNotificationTemplate /Root/BCF NewAgenda /BCF/NewAgenda   
    4. createNotificationTemplate /Root/BCF ShareAgenda /BCF/ShareAgenda  
  4. Return to the Home Page, and click on "BCF" or go to http://localhost/MarineLMS.Web.Main/Cnt/Root/BCF/
    1. From the admin bar on the bottom of the page click on 'Manage' → 'Users' and create any desired users.
    2. Ensure you select the proper department for each user.
  5. Click on 'Setup' or go to /Pages/Dev to go to the Administration page.
    1. Select "Clients" on the left navigation.  Using the "Command Window" add the users created in step 9 to their proper group:
      1. addUserToGroup /Root/BCF AgendaBuilderRole-Administrator [UserName]
      2. addUserToGroup /Root/BCF AgendaBuilderCapability-TrainingManager [UserName]
      3. addUserToGroup /Root/BCF AgendaBuilderFeedback-EmailDestinations [UserName]
    2. NOTE: Make sure you add at least 1 user to the four groups listed here.
    3. To get access to the Agenda Builder, the user must be set as a Sea Trainer

Web Config and Web.User.config

Additionally the <connectionStrings> "Initial Catalog" setting should match your own DB in addition to the general configs above.

<add name="SEALearningCS" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQL2012; Initial Catalog=BCF_AgendaBuilder; user=aspuser; password=13Monsters;"/>


For the Web.User.config ensure that the <appSettings> entries here match the ones in MarineLMS.Web.Main:

<appSettings>
    <add key="BcfOrgPath" value="/Root/BCF"/>
    <add key="BCFModule"  value="AgendaBuilder"/>
    <add key="Ext.ExtensionsServiceName" value="MarineLMS Extensions Service(CoreDev)"/>
    <add key="Core.CoreServiceName" value="MarineLMS Core Service(CoreDev)"/>
</appSettings>


Competency Surfer

Configuration

If you have completed the General/First Time setup, do the following:

Once you have a cloned the repository and have a build on your machine do the following:

  1. Log in to MarineLMS: http://localhost/MarineLMS.Web.Main.trunk/Cnt/Root/
  2. Click on 'Setup' or go to /Pages/Dev to go to the Administration page.
    1. Select 'Clients' on the left navigation. Using the "Command Window" create the following 8 groups using the following commands: 
      1. createGroup /Root/BCF CompetenceSurferRole-Administrator
      2. createGroup /Root/BCF CompetenceSurferFeedback-EmailDestinations
  3. While still on the the Administration page in the Client tab also run the following command:
    1. addOrgNotificationRule "/Root/BCF" Feedback "IsCategory(CompetenceSurfer,FeedbackSubmission)" "InGroup(/Root/BCF,CompetenceSurferFeedback-EmailDestinations)" Email
    2. You should see a "New organization notification rule created" message.
  4. Return to the Home Page, and click on "BCF" or go to http://localhost/MarineLMS.Web.Main/Cnt/Root/BCF/
    1. From the admin bar on the bottom of the page click on 'Manage' → 'Users' and create any desired users.
    2. Ensure you select the proper department for each user.
  5. Click on 'Setup' or go to /Pages/Dev to go to the Administration page.
    1. Select "Clients" on the left navigation.  Using the "Command Window" add the users created in step 11 to their proper group:
      1. addUserToGroup /Root/BCF CompetenceSurferRole-Administrator [UserName]
      2. addUserToGroup /Root/BCF CompetenceSurferFeedback-EmailDestinations [UserName]
    2. NOTE: Make sure you add at least 1 user to the groups listed here.
    3. To be able to edit Competencies, the user must be given the OPF Competency Editor

Web Config and Web.User.config

Additionally the <connectionStrings> "Initial Catalog" setting should match your own DB in addition to the general configs above.

<add name="SEALearningCS" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQL2012; Initial Catalog=BCF_CompetenceSurfer; user=aspuser; password=13Monsters;"/>


For the Web.User.config ensure that the <appSettings> entries here match the ones in MarineLMS.Web.Main:

 <appSettings>
	<add key="BcfOrgPath" value="/Root/BCF"/>
	<add key="BCFModule"  value="CompetenceSurfer"/>
    <add key="Ext.ExtensionsServiceName" value="MarineLMS Extensions Service(CoreDev)"/>
    <add key="Core.CoreServiceName" value="MarineLMS Core Service(CoreDev)"/>
  </appSettings>


Passage Planner

Configuration

If you have completed the General/First Time setup, do the following:

Once you have a cloned the repository and have a build on your machine do the following:

  1. Log in to MarineLMS: http://localhost/MarineLMS.Web.Main.trunk/Cnt/Root/
  2. Click on 'Setup' or go to /Pages/Dev to go to the Administration page.
    1. Select 'Clients' on the left navigation. Using the "Command Window" create the following 8 groups using the following commands: 
      1. createGroup /Root/BCF PassagePlannerRole-Administrator
      2. createGroup /Root/BCF PassagePlannerFeedback-EmailDestinations
  3. While still on the the Administration page in the Client tab also run the following command:
    1. addOrgNotificationRule "/Root/BCF" Feedback "IsCategory(PassagePlanner,FeedbackSubmission)" "InGroup(/Root/BCF,PassagePlannerFeedback-EmailDestinations)" Email 
    2. You should see a "New organization notification rule created" message.
  4. Return to the Home Page, and click on "BCF" or go to http://localhost/MarineLMS.Web.Main/Cnt/Root/BCF/
    1. From the admin bar on the bottom of the page click on 'Manage' → 'Users' and create any desired users.
    2. Ensure you select the proper department for each user.
  5. Click on 'Setup' or go to /Pages/Dev to go to the Administration page.
    1. Select "Clients" on the left navigation.  Using the "Command Window" add the users created in step 11 to their proper group:
      1. addUserToGroup /Root/BCF PassagePlannerRole-Administrator [UserName]
      2. addUserToGroup /Root/BCF PassagePlannerFeedback-EmailDestinations [UserName]
    2. NOTE: Make sure you add at least 1 user to the four groups listed here.
    3. To be able to edit Passages, the user must be given the OPF Passage Editor

Web Config and Web.User.config

Additionally the <connectionStrings> "Initial Catalog" setting should match your own DB in addition to the general configs above.

<add name="SEALearningCS" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQL2012; Initial Catalog=BCF_PassagePlanner; user=aspuser; password=13Monsters;"/>


For the Web.User.config ensure that the <appSettings> entries here match the ones in MarineLMS.Web.Main:

<appSettings>
	<add key="BcfOrgPath" value="/Root/BCF"/>
	<add key="BCFModule"  value="PassagePlanner"/>
    <add key="Ext.ExtensionsServiceName" value="MarineLMS Extensions Service(CoreDev)"/>
    <add key="Core.CoreServiceName" value="MarineLMS Core Service(CoreDev)"/>
</appSettings>


Installing Extension Projects to an Installed LMS

  1. Do a standard install of the LMS on to the target machine
  2. Compile the extension projects locally as a Release build on your machine against develop (as the changes/dlls needed are not in the point release builds) 
    1. Zip up the project folders (e.g.  MarineLMSExtensions.Web.BCF.PassagePlanner)
    2. Copy [Passage Planner] to C:\Sites\Main\[NAME OF PROJECT]\
    3. Restore the Databases for the Ext projects (link below in the 'Info' section)
  3. Add the application in IIS Manager:
    1.  Go to Sites > right click > Add Website
      1. NOTE: Seperate AppPool creation may be needed as per first time setup instructions for use by the Extensions service.
      2. Give it an Alias and choose the Ext AppPool that was created in the initial setup. (e.g. 'BCFPassagePlanner')
      3. Give it the path to the project where is was copied in step (2)
  4. Ensure all DB connection settings and Services have the correct values in the Web.config
  5. Try and hit site giving the virtual directory created
    1. If there are IIS errors it's likely duplicate keys in Web.config or no longer used settings.
    2. remove lines that cause issues:
      1. Line ~56  <authentication mode="Forms">  and <authorization> need to be removed
      2. Stuck on the Web.config for line 119 of Web.config?  You may need to remove:
        <roleManager enabled="true" defaultProvider="MarineLMSRoleMembershipProvider">
        <providers>
        <clear />
        <add name="MarineLMSRoleMembershipProvider" type="MarineLMS.Web.Authentication.MarineLMSRoleProviderProxy" IOCProviderId="MarineLMSRoleProvider" />
        </providers>
        </roleManager>
  6. The Web.config for the installed project needs new/updated machineKey to match. (https://stackoverflow.com/questions/25857577/error-occurred-during-a-cryptographic-operation-when-decrypting-forms-cookie )
    1. Take key from: C:\Sites\Main\Web\444631260\web.config and replace it the Web.config for that project (e.g. C:\Sites\Main\Web\[444631260]\Ext\MarineLMSExtensions.Web.BCF.PassagePlanner\Web.config)

      <machineKey validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABF" decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72E" decryption="3DES" validation="SHA1" /> <sessionState mode="InProc" cookieless="false" timeout="20" />


Database and web.confg files can be found here: https://drive.google.com/drive/folders/1WHmMwCc168Gi4_4rlnOh0UKquZnavJOq

Filter by label

There are no items with the selected labels at this time.