Skip to content

Product Guides

Akshay edited this page May 15, 2024 · 4 revisions

Content Workflow

The Workflows describe how a piece of content moves from creation to the publishing of the content.

● The CMS provides the country users a Content Workflow that ensures that content is reviewed by specific roles in the system, through a specific process before it is published.

● The key country users who participate in the workflow are: Editors, SMEs, Senior Editors

● Each of the roles have specific permissions & activities in the workflow

  • Editor - creates content

  • SME - Subject Matter Expert reviews the content

  • Senior Editor - has the final authority and can publish content.

● The document goes through different states during the workflow process

  • Below is a list of states in the workflow and what it indicates:
State Description
Draft Indicates that content is not fully ready and work is in progress
SME Review Indicates that the content is ready and submitted for SME review
Sr. Editor Review Indicates that the content is ready and submitted for Sr. Editor review
Require Modification Indicates that content has been submitted for review and SME has requested for the content to be modified
Published Indicates that content is published and can be viewed
Archive Indicates that content is not available to be viewed (unpublished)
Review After Translation Indicates that the content has been reviewed after being translated through Memsource.
Roles & Responsibilities

Editor Content:

Editors are able to create content. The article remains in Draft mode while they make changes to it. When a piece of material is in draft form, work is still being done and it is not yet finished.

When the content for the Editor is complete, the user can send it to the Senior Editor or SME for review.

In your capacity as Editor, you can: Create new Content and Assign for Review to SME or Senior Editor Editor can also pick up Content marked as 'Require Modification' in the Country Content page User can make edits to the Content by moving it to the 'Draft' mode Once the Editor's Content is prepared, it can again be sent for Review to SME or Senior Editor SME (Subject Matter Expert) reviews Content.

SME’s main role is to review content:

  • User picks up content marked as ‘SME Review’ in the Country Content page

  • Once User reviews he repost that content back to an Editor for further corrections or Senior Editor for final review

  • Content that needs further corrections is marked as ‘Require Modification’

  • Content that is ready to be published marked as ‘Sr. Editor Review’

  • SME can set ‘SME Review’ state, which indicates that content is not fully ready and work is in progress.

  • As SME: Review content posted by the Editors and Submit to the Senior Editor

  • Senior Editor has the final authority and can publish content.

Senior Editor’s roles & responsibilities:

  • User picks up content marked as ‘Sr. Editor Review’ in the Country Content page

  • Once User reviews re-posts that content back to an Editor for further corrections or User can ‘Publish’ the same.

  • Content that needs further corrections is marked as ‘Require Modification’

  • Content that is ready to be published marked as ‘Published’

  • As Senior Editor: Review content submitted by the Editor or SME and then either Publish the same or send it back for correction

  • Senior editor can also move ‘Published’ content to ‘Archived’ state. This is normally done if a content is no longer required /old/ outdated.

Roles & Permissions
ROLES PERMISSIONS
Editor

1. Login in to Bebbo system

2. View content belonging to all Countries in the Global Content tab

3. View content belonging to your Country in the Country Content tab

4. Proofread the translation that is received from Memsource

5. Assign Content to your Country

6. Create new Content and Assign for Review or Draft status to SME or Senior Editor or Edit existing content

Country Admin

1. Login in to Bebbo system

2. View content belonging to all Countries in the Global Content tab

3. View content belonging to your Country in the Country Content tab

4. Assign Content to your Country

5. Manage the users in your Country - Creating new users, editing an existing user and blocking an existing user are some of the activities you can do to Manage users.

6. When change state to Archive need to update revision log message as it is mandatory

Senior Editor

1. Login in to Bebbo system

2. View content belonging to all Countries in the Global Content tab

3. View content belonging to your Country in the Country Content tab

4. Proofread the translation that is received from Memsource

5. Assign Content to your Country

6. Create new Content and Assign for Review to SME or Publish the same or Edit existing content [same as what the Editor can do]

7. Review content submitted by the Editors or SME and then either Publish the same or send it back for correction.

8. As Senior Editor: Can change the state from Published content to Archive

9. When change state to Archive need to update revision log message as it is mandatory

SME (Subject Matter Expert)

1. Login in to Bebbo system

2. View content belonging to all Countries in the Global Content tab

3. View content belonging to your Country in the Country Content tab

4. Proofread the translation that is received from Memsource

5. Assign Content to your Country

6. Review content posted by the Editors and Submit to the Senior Editor

7. When change state to Archive need to update revision log message as it is mandatory

Global Admin

Global admin users can perform all the activities of country level users.

Beside the above the Global admin can also

1. How to navigate the Bebbo CMS

2. Dashboard

3. Onboard a Country

4. Offload a Country

5. View and Export Reports

6. Manage Force Update

7. Configure Google Analytics Settings

8. Exclusive Content Features for Global Admin

a. Manage Translations with Memsource

b. Manage Taxonomies

c. Create additional content types

d. Country listing : all content

e. Additional field level permissions

9. Create a ‘Global Country’ for managing Master Language

Country Workflow

Country and Language definition

  1. Countries will have languages associated with them
    1. E.g. Greece country will get associated with Greece-Greek
  2. Countries can have multiple languages.
    1. E.g. Tajikistan has Tajikistan-Russian and Tajikistan-Tajik
  3. No Language can have more than one country
    1. E.g. Greece-Greek will not be associated with any other country other than Greece.
    2. Languages will be associated with the users and not the country.
    3. Master language will also be associated with the respective users.
  4. A content in a specific language will be associated with one country. E.g.: An article content named “abc” in “Albania - Albanian” language can be associated with only the Albania country. North Macedonia country can assign the article “abc” to “North Macedonia- Albanian” This means that any language will be shared between countries. (Refer point no. 3) This Article “abc” will have the same Node ID for both languages North Macedonia- Albanian and Albania - Albanian.
  5. All translations need a Source Language
  6. List of Languages: [Green are Master languages as shown below]
  7. Users will be associated with master languages and their respective languages. E.g.: For Albania country editorial users, both Albania (Master Language) and Albania-Albanian will be associated

Country admins/Country Editors/SME must have access to their own master languages - because they need to be able to view the content in the master language even before it is published. Also they need to be able to access the associated translation jobs.

  1. In the “Country Content” listing page, the content with “Albanian” language and “Albania - Albanian” will get listed. For an Albanian country role users the “country content” listing will have content from the languages below: master language: Albanian and country language : Albania - Albanian. They can translate the content from Albanian master language to Albania-Albanian language. They can not edit the Master language Albanian

    a. E.g. for an Albanian Country Editor / SE

    Albania Albania - Albanian
    Albanian

    b. But mobile users of Albania will have access to only Albania-Albanian.Mobile users of Albania will choose to see the app in Albanian, and the content configured for them will be the one as Albania-Albanian.

    c. Mobile users will see the content saved as Albania-Albanian

    a. Will not see content associated with Albanian

    d. E.g. for a North Macedonian Country Editor.

    North Macedonian North Macedonian - Albanian
    North Macedonian - Macedonian
    Albanian

    e. Mobile users of Albania will choose to see the app in Albanian, and the content configured for them will be the one as North Macedonian-Albanian.

    f. Will not see content associated with Albanian master language.

Summary

  1. The country language association is only for mobile user consumption
  2. All country role users can access country language and master language
  3. Country role users cannot make changes to Master language content
  4. Country users requesting for any memsource translation to global admin will be offline and outside of the system.

Use cases for designers

Website Application Link - https://www.bebbo.app/

Aspose Words 85079702-9e20-482d-b7a1-ad07c6feeb12 027

Menu Section Pages

  1. Home - https://www.bebbo.app

  2. About Us - https://www.bebbo.app/about-us

  3. Privacy Policy - https://www.bebbo.app/privacy-policy

For Developers

Development tools helps to create Drupal sites faster and secure.

Composer is a dependency manager for PHP, it is the standard way across many PHP projects to set requirements for external dependencies. You can use it to install and update Drupal's external dependencies.

Drush is the command line and scripting interface for Drupal. You can use it to speed up installing, developing, debugging and maintaining Drupal sites.

The Drupal coding standards apply to code within Drupal and its contributed modules.

Administrator
  • Created a custom dashboard using custom module

  • View now has filters for sorting and filtering data results

  • The administrator can establish and assign roles to users

  • The administrator has control over the installation and configuration of custom and configuration modules

  • Admin enables the necessary views and modules.

Country and language definition

Groups are used to create countries.

Fields that define a country:

Fields
Country
Country Flag
Country Sponsor Logo
Country National Partner Image
Country Language
Master Language
Off Load Country

Managing language wise permissions:

Requirements:

  • All Country role users can access Country language content and Master language content

  • All Country role users can create Country language content

  • All Country role users can participate in the workflow of the Country language content

  • Country role users cannot make changes to Master language content.

Modules

Key Contributed modules mapped to the functionality

  1. Google Analytics module used to bring an interface for global admin to map the associated credentials
  2. Email Notifications was built using Content Moderation Notification
  3. Content Moderation & Workflow were built using Core Content Moderation module
  4. Role Specific Dashboards and Reports were built using Drupal views & View CSV export
  5. Mobile APIs were built using Serialisation module & Views
  6. Global Content Listing & Country Content Listing were built using views.

List of Contribute modules enabled

SNO Module Name Package Status in Prod Version
1 Admin Toolbar (admin_toolbar) Administration Contrib Enabled 3.4.1
2 Admin Toolbar Links Access Filter (admin_toolbar_links_access_filter) Administration Contrib Enabled 3.4.1
3 Admin Toolbar Search (admin_toolbar_search) Administration Contrib Enabled 3.4.1
4 Admin Toolbar Extra Tools (admin_toolbar_tools) Administration Contrib Enabled 3.4.1
5 Allowed Languages (allowed_languages) Custom Contrib Enabled 2.0.0-alpha3
6 Config Ignore (config_ignore) Config Contrib Enabled 8.x-3.0-beta2
7 Serialization (CSV) (csv_serialization) Web services Contrib Enabled 8.x-2.1
8 Date Popup (date_popup) Date Contrib Enabled 8.x-1.3
9 Entity (entity) Other Contrib Enabled 8.x-1.4
10 Feeds (feeds) Feeds Contrib Enabled 8.x-3.0-beta4
11 Feeds Tamper (feeds_tamper) Feeds Contrib Enabled 8.x-2.0-beta3
12 Google Analytics (google_analytics) Statistics Contrib Enabled 8.4-0.2
13 Group (group) Group Contrib Enabled 8.x-1.5
14 Group Node (gnode) Group Contrib Enabled 8.x-1.5
15 Image Style Quality (image_style_quality) Media Contrib Enabled 8.x-1.6
16 JSON Field (json_field) Field types Contrib Enabled 8.x-1.2
17 Language Switcher Dropdown (lang_dropdown) Multilingual Contrib Enabled 8.x-2.1
18 Language Field (languagefield) Field types Contrib Enabled 8.x-1.9
19 Menu Per Role (menu_per_role) Access control Contrib Enabled 8.x-1.5
20 Migrate Plus (migrate_plus) Migration Contrib Enabled 8.x-5.3
21 Migrate Source CSV (migrate_source_csv) Migration Contrib Enabled 8.x-3.5
22 Migrate Tools (migrate_tools) Migration Contrib Enabled
23 Drupal Upgrade (migrate_upgrade) Migration Contrib Enabled 8.x-3.2
24 REST UI (restui) Web services Contrib Enabled 8.x-1.21
25 Security Kit (seckit) Security Contrib Enabled 8.2.0.1
26 SMTP Authentication Support (smtp) Mail Contrib Enabled 8.x-1.2
27 Tamper (tamper) Other Contrib Enabled 8.x-1.0-alpha4
28 Title length (title_length) Other Contrib Enabled 8.2.0.0-rc0
29 Translation Management Demo (tmgmt_demo) Translation Management Contrib Enabled 8.x-1.15
30 Content Entity Source (tmgmt_content) Translation Management Contrib Enabled 8.x-1.15
31 Locales Source (tmgmt_locale) Translation Management Contrib Enabled 8.x-1.15
32 Config Entity Source (tmgmt_config) Translation Management Contrib Enabled 8.x-1.15
33 Translation Management Core (tmgmt) Translation Management Contrib Enabled 8.x-1.15
34 Export / Import File (tmgmt_file) Translation Management Contrib Enabled 8.x-1.15
35 Translation Language abilities (tmgmt_language_combination) Translation Management Contrib Enabled 8.x-1.15
36 Drupal user (tmgmt_local) Translation Management Contrib Enabled 8.x-1.15
37 Memsource Cloud Translator (tmgmt_memsource) Translation Management Contrib Enabled 8.x-1.13
38 Toolbar Menu (toolbar_menu) Other Contrib Enabled 8.3.0.0
39 Toolbar Menu Clean (toolbar_menu_clean) Other Contrib Enabled 8.x-1.3
40 VariationCache (variationcache) Other Contrib Enabled 8.x-1.3
41 Video Embed Media (video_embed_media) Video Embed Field Contrib Enabled 8.4.2.4
42 Video Embed Field (video_embed_field) Video Embed Field Contrib Enabled 8.4.2.4
43 Actions Permissions (actions_permissions) Views Bulk Operations Contrib Enabled 8.x-3.13
44 Views Bulk Operations (views_bulk_operations) Views Contrib Enabled 8.x-3.13
45 Views Data Export (views_data_export) Views Contrib Enabled 8.x-1.0
46 PB API Serialisation (custom_serialization) Custom Contrib Enabled
47 Group Country Field (group_country_field) custom Contrib Enabled
48 Custom Field (pb_custom_field) custom Contrib Enabled
49 Custom Form (pb_custom_form) custom Contrib Enabled
50 PB Custom Migrate (Multilingual) (pb_custom_migrate) Migration Contrib Enabled
51 Custom REST API (pb_custom_rest_api) Custom Contrib Enabled
52 PB Custom Standard Deviation (pb_custom_standard_deviation) Custom Contrib Enabled
53 Core modules
54 Automated Cron (automated_cron) Core Core Enabled 10.1.5
55 HTTP Basic Authentication (basic_auth) Web services Core Enabled 10.1.5
56 BigPipe (big_pipe) Core Core Enabled 10.1.5
57 Block (block) Core Core Enabled 10.1.5
58 Custom Block (block_content) Core Core Enabled 10.1.5
59 Breakpoint (breakpoint) Core Core Enabled 10.1.5
60 CKEditor (ckeditor) Core Core Enabled 10.1.5
61 Color (color) Core Core Enabled 10.1.5
62 Configuration Manager (config) Core Core Enabled 10.1.5
63 Configuration Translation (config_translation) Multilingual Core Enabled 10.1.5
64 Content Moderation (content_moderation) Core Core Enabled 10.1.5
65 Content Translation (content_translation) Multilingual Core Enabled 10.1.5
66 Contextual Links (contextual) Core Core Enabled 10.1.5
67 Datetime (datetime) Field types Core Enabled 10.1.5
68 Database Logging (dblog) Core Core Enabled 10.1.5
69 Internal Dynamic Page Cache (dynamic_page_cache) Core Core Enabled 10.1.5
70 Text Editor (editor) Core Core Enabled 10.1.5
71 Field (field) Core Core Enabled 10.1.5
72 Field UI (field_ui) Core Core Enabled 10.1.5
73 File (file) Field types Core Enabled 10.1.5
74 Filter (filter) Core Core Enabled 10.1.5
75 Help (help) Core Core Enabled 10.1.5
76 Image (image) Field types Core Enabled 10.1.5
77 Language (language) Multilingual Core Enabled 10.1.5
78 Link (link) Field types Core Enabled 10.1.5
79 Interface Translation (locale) Multilingual Core Enabled 10.1.5
80 Media (media) Core Core Enabled 10.1.5
81 Media Library (media_library) Core Core Enabled 10.1.5
82 Custom Menu Links (menu_link_content) Core Core Enabled 10.1.5
83 Menu UI (menu_ui) Core Core Enabled 10.1.5
84 Migrate (migrate) Migration Core Enabled 10.1.5
85 Migrate Drupal (migrate_drupal) Migration Core Enabled 10.1.5
86 Node (node) Core Core Enabled 10.1.5
87 Options (options) Field types Core Enabled 10.1.5
88 Internal Page Cache (page_cache) Core Core Enabled 10.1.5
89 Path (path) Core Core Enabled 10.1.5
90 Path alias (path_alias) Core Core Enabled 10.1.5
91 Quick Edit (quickedit) Core Core Enabled 10.1.5
92 RDF (rdf) Core Core Enabled 10.1.5
93 RESTful Web Services (rest) Web services Core Enabled 10.1.5
94 Search (search) Core Core Enabled 10.1.5
95 Serialization (serialization) Web services Core Enabled 10.1.5
96 Shortcut (shortcut) Core Core Enabled 10.1.5
97 System (system) Core Core Enabled 10.1.5
98 Taxonomy (taxonomy) Core Core Enabled 10.1.5
99 Text (text) Field types Core Enabled 10.1.5
100 Toolbar (toolbar) Core Core Enabled 10.1.5
101 Tour (tour) Core Core Enabled 10.1.5
102 User (user) Core Core Enabled 10.1.5
103 Views (views) Core Core Enabled 10.1.5
104 Views UI (views_ui) Core Core Enabled 10.1.5
105 Workflows (workflows) Core Core Enabled 10.1.5

The below section lists custom modules used in the project and the purpose:

Group_country_field

Pb_custom_field

Pb_custom_form

Custom_serialization

Pb_custom_migrate

Pb_custom_rest_api

Pb_custom_standard_deviation

Custom module

Created a custom to extend functionality

Group_country_field
  • This is a general module with customization all over the site which include:

  • Form alter, View Query alter, Views exposed form alter.

  • The pages that it will impact include the translation management of all Job items pages, Recently logged in users for Dashboard.

Pb_custom_field
  • This module also defines the Actions required in the Country Listing and Global Listing page.

    Assign Content Action

    Move From Publish to Draft Action

    Move From Publish to Senior Editor Action

    Move From Publish to SME Review Action

  • The alters in this module include:

    Allowed languages as multi-select in create country page

    Manage languages in media popup

    Manage languages in individual media page

    Making australian content and mandatory content as read only

    Managing languages in user creation pages

    Managing languages in country content listing page

    Managing languages in user listing page

    Manage language validation create, edit content pages

    Field link alter for dashboard and to make listing page menus dynamic, basis user language

    Country user management

    Login form alter for forgot password

    Content moderation mail notifications

    Implemented Hook View query alter

    Views alter altering views to list jobs as per roles to assigned language

    View altered views group by nodes to remove duplicate node ids

    Implemented Hook pre-execute To change the views job list column node id from varchar to numeric.

Pb_custom_form
  • This module provides Configuration pages for admin functionality Force Update API Check, Mobile Javascript management and to Administer Bebbo

  • Forcefull Update Check API is for the App to check Country based data validity for reissuing a force update

  • Mobile Javascript management configuration provides an interface to manage the Javascript that is loaded on ‘share’ url

  • The Administer Bebbo provides an interface to manage Master Languages. The Configuration assists in triggering emails for Master Languages.

Custom_serialization

This module is for using Serialization for API rendering. The module also supports API formatting, Removed tags and URL changes for embedded images and cover image.

Pb_custom_migrate

This module helps to manage source and data migration mapping.

Pb_custom_rest_api

Expose the force API table as REST API.

Pb_custom_standard_deviation

Expose the Standard Deviation API. As there are multiple validation, created a separate module.

Contributed module

List of contributed module used in application.

SNO Module Name Package
1 Admin Toolbar (admin_toolbar) Administration
2 Admin Toolbar Links Access Filter (admin_toolbar_links_access_filter) Administration
3 Admin Toolbar Search (admin_toolbar_search) Administration
4 Admin Toolbar Extra Tools (admin_toolbar_tools) Administration
5 Allowed Languages (allowed_languages) Custom
6 CKEditor Media Embed plugin (ckeditor_media_embed) CKEditor
7 Config Ignore (config_ignore) Config
8 Serialization (CSV) (csv_serialization) Web services
9 Date Popup (date_popup) Date
10 Entity (entity) Other
11 Feeds (feeds) Feeds
12 Feeds Tamper (feeds_tamper) Feeds
13 Google Analytics (google_analytics) Statistics
14 Group (group) Group
15 Group Node (gnode) Group
16 Image Style Quality (image_style_quality) Media
17 JSON Field (json_field) Field types
18 Language Switcher Dropdown (lang_dropdown) Multilingual
19 Language Field (languagefield) Field types
20 Menu Per Role (menu_per_role) Access control
21 Migrate Plus (migrate_plus) Migration
22 Migrate Source CSV (migrate_source_csv) Migration
23 Migrate Tools (migrate_tools) Migration
24 Drupal Upgrade (migrate_upgrade) Migration
25 REST UI (restui) Web services
26 Security Kit (seckit) Security
27 SMTP Authentication Support (smtp) Mail
28 Tamper (tamper) Other
29 Title length (title_length) Other
30 Translation Management Demo (tmgmt_demo) Translation Management
31 Content Entity Source (tmgmt_content) Translation Management
32 Locales Source (tmgmt_locale) Translation Management
33 Config Entity Source (tmgmt_config) Translation Management
34 Translation Management Core (tmgmt) Translation Management
35 Export / Import File (tmgmt_file) Translation Management
36 Translation Language abilities (tmgmt_language_combination) Translation Management
37 Drupal user (tmgmt_local) Translation Management
38 Memsource Cloud Translator (tmgmt_memsource) Translation Management
39 Toolbar Menu (toolbar_menu) Other
40 Toolbar Menu Clean (toolbar_menu_clean) Other
41 VariationCache (variationcache) Other
42 Video Embed Media (video_embed_media) Video Embed Field
43 Video Embed Field (video_embed_field) Video Embed Field
44 Actions Permissions (actions_permissions) Views Bulk Operations
45 Views Bulk Operations (views_bulk_operations) Views
46 Views Data Export (views_data_export) Views
47 PB API Serialisation (custom_serialization) Custom
48 Group Country Field (group_country_field) custom
49 Custom Field (pb_custom_field) custom
50 Custom Form (pb_custom_form) custom
51 PB Custom Migrate (Multilingual) (pb_custom_migrate) Migration
52 Custom REST API (pb_custom_rest_api) Custom
53 PB Custom Standard Deviation (pb_custom_standard_deviation) Custom
54 Core modules
55 Automated Cron (automated_cron) Core
56 HTTP Basic Authentication (basic_auth) Web services
57 BigPipe (big_pipe) Core
58 Block (block) Core
59 Custom Block (block_content) Core
60 Breakpoint (breakpoint) Core
61 CKEditor (ckeditor) Core
62 Color (color) Core
63 Configuration Manager (config) Core
64 Configuration Translation (config_translation) Multilingual
65 Content Moderation (content_moderation) Core
66 Content Translation (content_translation) Multilingual
67 Contextual Links (contextual) Core
68 Datetime (datetime) Field types
69 Database Logging (dblog) Core
70 Internal Dynamic Page Cache (dynamic_page_cache) Core
71 Text Editor (editor) Core
72 Field (field) Core
73 Field UI (field_ui) Core
74 File (file) Field types
75 Filter (filter) Core
76 Help (help) Core
77 Image (image) Field types
78 Language (language) Multilingual
79 Link (link) Field types
80 Interface Translation (locale) Multilingual
81 Media (media) Core
82 Media Library (media_library) Core
83 Custom Menu Links (menu_link_content) Core
84 Menu UI (menu_ui) Core
85 Migrate (migrate) Migration
86 Migrate Drupal (migrate_drupal) Migration
87 Node (node) Core
88 Options (options) Field types
89 Internal Page Cache (page_cache) Core
90 Path (path) Core
91 Path alias (path_alias) Core
92 Quick Edit (quickedit) Core
93 RDF (rdf) Core
94 RESTful Web Services (rest) Web services
95 Search (search) Core
96 Serialization (serialization) Web services
97 Shortcut (shortcut) Core
98 System (system) Core
99 Taxonomy (taxonomy) Core
100 Text (text) Field types
101 Toolbar (toolbar) Core
102 Tour (tour) Core
103 User (user) Core
104 Views (views) Core
105 Views UI (views_ui) Core
106 Workflows (workflows) Core