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. :
- Log in to MarineLMS: http://localhost/MarineLMS.Web.Main.trunk/Cnt/Root/
- From the admin bar on the bottom of the home page, click on 'Edit' → 'Links'.
- Click on 'Add+' → Navigation Page.
- On the New Page dialog box, enter "BCF" in all and click 'Create'.
- Click 'Done'
- While still on the Home Page, click on 'Setup' (or go to /Pages/Dev) to go to the Administration page.
- Select 'Page Tags' on the left navigation.
- In the middle section, enter:
- Path: /Root/BCF/
- Dropdown (Tag For Path): Organization
- Click 'Set Tags For Path'
- In the top section, enter:
- Path: /Root/BCF
- Click 'Get Tags For Path'.
- You should see two entries:
- Path: /Root/ Tags: None
- Path: /Root/BCF Tags: Organization
- While still on the Administration page click on the "Custom DNS" tab
- Add an entry for BCF:
- Incoming DNS: localhost
- Target DNS: *Leave this blank*
- Default Home Path: /Root/BCF (same as above)
- OrganizationalPath: /Root/BCF
- Hit Save/Update.
- Add an entry for BCF:
- While still on the Administration page click on the "Client" tab
- Run the following, to add/save the following 3 required key/value attribute pairs to specify the organization group names:
- addNavPageAttribute /Root/BCF/ System.Customer.Course.Management.Admins.GroupName AgendaBuilderRole-Administrator
- addNavPageAttribute /Root/BCF/ System.Customer.Users.GroupName AgendaBuilderRole-User
- addNavPageAttribute /Root/BCF/ System.Customer.User.Management.Admins.GroupName BCF-User-Administrator
- Existing Roles
- Administrator
- Familiarizer
- OnboardEducator
- Public (default if user is not logged on)
- 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
- Existing Capabilities (groups with BCFModule + 'Capability-' + Capability Name):
- CompEditor (part of Competency Editor)
- PassageEditor (part of Passage Planner)
- TrainingManager (part of Agenda Builder)
- Run the following, to add/save the following 3 required key/value attribute pairs to specify the organization group names:
- While still on the Administration page on the "Client" tab
- Select 'Clients' on the left navigation. Using the "Command Window" create the following OrgProfileField using the following command:
- AddOrgProfileField "Department" "/Root/BCF/" "singlechoicestring" "true" "true" "na\catering\cwide\deck\engineering\TCER\terminals"
You should see a successful completion of the command.
- Select 'Clients' on the left navigation. Using the "Command Window" create the following OrgProfileField using the following command:
- While still on the the Administration page in the Client tab also run the following command:
- NOTE: Before running the next command ensure the Feedback Notification template is in the configured folder (Found in: \MarineLMS\develop-content\CustomNotificationTemplates)
- 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:
- Click on 'Setup' or go to /Pages/Dev to go to the Administration page.
- Select 'Clients' on the left navigation. Using the "Command Window" create the following 8 groups using the following commands:
- createGroup /Root/BCF AgendaBuilderCapability-TrainingManager
- createGroup /Root/BCF AgendaBuilderRole-Administrator
- createGroup /Root/BCF AgendaBuilderFeedback-EmailDestinations
- Select 'Clients' on the left navigation. Using the "Command Window" create the following 8 groups using the following commands:
While still on the the Administration page in the Client tab also run the following command:
addOrgNotificationRule "/Root/BCF" Feedback "IsCategory(AgendaBuilder,FeedbackSubmission)" "InGroup(/Root/BCF,AgendaBuilderFeedback-EmailDestinations)" Email
You should see a "New organization notification rule created" message.
- While still on the the Administration page in the Client tab also run the following command:
- NOTE: Before running the next command ensure the relevant Notification template is in the configured folder (Found in: \MarineLMS\develop-content\CustomNotificationTemplates)
- createNotificationTemplate /Root/BCF UseAgenda /BCF/UseAgenda
- createNotificationTemplate /Root/BCF NewAgenda /BCF/NewAgenda
- createNotificationTemplate /Root/BCF ShareAgenda /BCF/ShareAgenda
- Return to the Home Page, and click on "BCF" or go to http://localhost/MarineLMS.Web.Main/Cnt/Root/BCF/.
- From the admin bar on the bottom of the page click on 'Manage' → 'Users' and create any desired users.
- Ensure you select the proper department for each user.
- Click on 'Setup' or go to /Pages/Dev to go to the Administration page.
- Select "Clients" on the left navigation. Using the "Command Window" add the users created in step 9 to their proper group:
- addUserToGroup /Root/BCF AgendaBuilderRole-Administrator [UserName]
- addUserToGroup /Root/BCF AgendaBuilderCapability-TrainingManager [UserName]
- addUserToGroup /Root/BCF AgendaBuilderFeedback-EmailDestinations [UserName]
- NOTE: Make sure you add at least 1 user to the four groups listed here.
- To get access to the Agenda Builder, the user must be set as a Sea Trainer
- Select "Clients" on the left navigation. Using the "Command Window" add the users created in step 9 to their proper group:
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:
- Log in to MarineLMS: http://localhost/MarineLMS.Web.Main.trunk/Cnt/Root/
- Click on 'Setup' or go to /Pages/Dev to go to the Administration page.
- Select 'Clients' on the left navigation. Using the "Command Window" create the following 8 groups using the following commands:
- createGroup /Root/BCF CompetenceSurferRole-Administrator
- createGroup /Root/BCF CompetenceSurferFeedback-EmailDestinations
- Select 'Clients' on the left navigation. Using the "Command Window" create the following 8 groups using the following commands:
- While still on the the Administration page in the Client tab also run the following command:
- addOrgNotificationRule "/Root/BCF" Feedback "IsCategory(CompetenceSurfer,FeedbackSubmission)" "InGroup(/Root/BCF,CompetenceSurferFeedback-EmailDestinations)" Email
- You should see a "New organization notification rule created" message.
- Return to the Home Page, and click on "BCF" or go to http://localhost/MarineLMS.Web.Main/Cnt/Root/BCF/.
- From the admin bar on the bottom of the page click on 'Manage' → 'Users' and create any desired users.
- Ensure you select the proper department for each user.
- Click on 'Setup' or go to /Pages/Dev to go to the Administration page.
- Select "Clients" on the left navigation. Using the "Command Window" add the users created in step 11 to their proper group:
- addUserToGroup /Root/BCF CompetenceSurferRole-Administrator [UserName]
- addUserToGroup /Root/BCF CompetenceSurferFeedback-EmailDestinations [UserName]
- NOTE: Make sure you add at least 1 user to the groups listed here.
- To be able to edit Competencies, the user must be given the OPF Competency Editor
- Select "Clients" on the left navigation. Using the "Command Window" add the users created in step 11 to their proper group:
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:
- Log in to MarineLMS: http://localhost/MarineLMS.Web.Main.trunk/Cnt/Root/
- Click on 'Setup' or go to /Pages/Dev to go to the Administration page.
- Select 'Clients' on the left navigation. Using the "Command Window" create the following 8 groups using the following commands:
- createGroup /Root/BCF PassagePlannerRole-Administrator
- createGroup /Root/BCF PassagePlannerFeedback-EmailDestinations
- Select 'Clients' on the left navigation. Using the "Command Window" create the following 8 groups using the following commands:
- While still on the the Administration page in the Client tab also run the following command:
- addOrgNotificationRule "/Root/BCF" Feedback "IsCategory(PassagePlanner,FeedbackSubmission)" "InGroup(/Root/BCF,PassagePlannerFeedback-EmailDestinations)" Email
- You should see a "New organization notification rule created" message.
- Return to the Home Page, and click on "BCF" or go to http://localhost/MarineLMS.Web.Main/Cnt/Root/BCF/.
- From the admin bar on the bottom of the page click on 'Manage' → 'Users' and create any desired users.
- Ensure you select the proper department for each user.
- Click on 'Setup' or go to /Pages/Dev to go to the Administration page.
- Select "Clients" on the left navigation. Using the "Command Window" add the users created in step 11 to their proper group:
- addUserToGroup /Root/BCF PassagePlannerRole-Administrator [UserName]
- addUserToGroup /Root/BCF PassagePlannerFeedback-EmailDestinations [UserName]
- NOTE: Make sure you add at least 1 user to the four groups listed here.
- To be able to edit Passages, the user must be given the OPF Passage Editor
- Select "Clients" on the left navigation. Using the "Command Window" add the users created in step 11 to their proper group:
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
- Do a standard install of the LMS on to the target machine
- 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)
- Zip up the project folders (e.g. MarineLMSExtensions.Web.BCF.PassagePlanner)
- Copy [Passage Planner] to C:\Sites\Main\[NAME OF PROJECT]\
- Restore the Databases for the Ext projects (link below in the 'Info' section)
- Add the application in IIS Manager:
- Go to Sites > right click > Add Website
- NOTE: Seperate AppPool creation may be needed as per first time setup instructions for use by the Extensions service.
- Give it an Alias and choose the Ext AppPool that was created in the initial setup. (e.g. 'BCFPassagePlanner')
- Give it the path to the project where is was copied in step (2)
- Go to Sites > right click > Add Website
- Ensure all DB connection settings and Services have the correct values in the Web.config
- Try and hit site giving the virtual directory created
- If there are IIS errors it's likely duplicate keys in Web.config or no longer used settings.
- remove lines that cause issues:
- Line ~56 <authentication mode="Forms"> and <authorization> need to be removed
- 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>
- 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 )
- 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" />
- 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)
Related articles
Filter by label
There are no items with the selected labels at this time.