Skip to content
Akhror Abduvaliev edited this page Aug 18, 2023 · 13 revisions

Introduction

Welcome to Bebbo’s content management system (CMS) documentation.

Bebbo is a mobile app developed by UNICEF with an aim to guide parents throughout the development of children up to 6 years of age. Contents of the app in various languages are managed through a CMS that serves the content with APIs. This documentation provides technical and functional details of the CMS.

Installation Guide

Objective

This document details the installation of the Bebbo CMS framework in a new environment. It is a semi-automated process, where components and features will be included in the package by default and content/data has to be added manually through the Drupal interfaces.

Prerequisites

The CMS framework requires the following prerequisites:

  1. OS with Lamp Stack
    1. For Windows users: xampp or wamp
    2. For Linux users: lamp or xampp
    3. Latest Tool used : wsl
  2. Composer
  3. Drush
  4. Drupal
  5. CKEDITOR library
  6. Minimum 500 MB empty space is required.

This section details the installation of the prerequisites.

  1. Download and install XAMPP from https://www.apachefriends.org/download.html. Recommended version for Windows is 7.4.28. Make sure to choose the XAMPP installer based on your operating system.

    Click OK to the below warning message:

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

    Let’s assume you install it on a C drive.

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

    Please enable the PHP OPCODE CACHING module. (Paste zend_extension=php_opcache.dll below [opcache])

    Click on Config button in XAMPP control panel and open my.ini file. Set the max_allowed_packet to 100M.

  2. Install Composer: Follow the instructions mentioned in the below link

    1. For Windows: https://getcomposer.org/doc/00-intro.md#installation-windows (Here is more detailed info: https://thecodedeveloper.com/install-composer-windows-xampp/)
    2. For Linux: https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx
    3. Optional - global composer installation from https://getcomposer.org/doc/00-intro.md#globally. If you face any issues or global installation fails, you may need to replace composer with php composer.phar for your setup.
  3. Install Drush: execute the following command in terminal: composer global require drush/drush

  4. Install Drupal: To Download Drupal through composer execute the following command in terminal:

    composer create-project drupal/recommended-project:{version} {folder name}.

    For example go to C:\xampp\htdocs and run below command in CMD:

    composer create-project drupal/recommended-project: 8.9.14 bebbo

    Click ‘y’ to continue installation.

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

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

  5. Install CKEDITOR: Download the CKEDITOR library from https://github.com/ckeditor/ckeditor4.git.

    Go to C:\xampp\htdocs\bebbo\web and make a “libraries” folder if it does not already exist. Unzip ckeditor library into libraries folder as ckeditor.

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

Install Bebbo CMS

The procedures below describe the steps involved in installing the framework following Drupal.

Download Bebo App profile from drive link

  1. Unzip bebbo_app_profile into “profiles” folder as shown below:

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

  2. Make sure both Apache and MySQL are started in the XAMPP tool. Click the Admin button of MySQL as shown below.

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

  3. It should open http://localhost/phpmyadmin page. Create new database called bebbo.

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

  4. Please go to http://localhost/bebbo/web.

    Select the 'Bebbo App Framework V1.0' from the installation screen.

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

  5. Enter the database configuration details and then click on the 'Save and continue' button.

    In our example: Database name: bebbo, username: root, password is empty.

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

  6. Then Provide the basic site details like site name , time zone and admin credentials

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

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

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

  7. After successful installation, users will be redirected to the home page of the new installation.

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

Menu Creation

After the profile installation, the menu mentioned in the below table has to be added.

  1. Login as admin and click ‘Structure’ and select the “Menus” option

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

  2. Select the “Editorial Menu“ Edit button

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

  3. Title denotes the Menu Name and Administrative summary denotes the menu description.

    Click on the Add Link button and add required menu items as mentioned below.

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

  4. Enter the Menu details and click on the save button.

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

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

Global Admin Creation

Steps to create a new Global Admin user:

  1. Click on the “People” and select the “Add user” option.

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

  2. Enter the user email address, user name, password, role and assign all the language permissions to the global admin role then click on the “Create account” button.

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

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

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

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

    Note: For Global Admin, please select all languages.

    The following content can be added by the Global Admin

    1. All Taxonomy Terms
    2. Add Languages
    3. Add Country
    4. Add Country User: Country Admin, Sr. Editor, Editor and SME.

Drupal & Bebbo

Drupal CMS Architecture

Key decision to the below architecture was to ease the adding & managing more countries in future and bring more flexibility in the overall editorial process.

The diagram below explains the architecture in detail.

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

  • From a governance perspective all the countries need to be hosted in a single environment; Drupal uses Group module to separate the country specific content

  • The code base and database are shared.

  • The APIs are accessible from a single domain URL.

  • Using an endpoint from the Drupal website that provides data in HTTP/JSON forms, make it easy to share .

Headless Drupal Architecture

Headless Drupal is an approach to building Drupal websites, in which Drupal serves as the backend content repository. The front end is built in different technologies and communicates with Drupal via an API.

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

Tech stack

Technology stack and versions used to build the application. (Upgrades pending)

Drupal Content Management System

Acquia cloud

Cloud Platform is a Drupal-tuned application lifecycle management suite with a complete infrastructure to support Drupal deployment workflow processes from development and staging through to production.

CDN

Integrated CMS with CDN the APIs and static assets to be cached in the CDN.

This API, which provides JSON-formatted content, is comparable to an RSS feed in that it is accessible to the general public. As long as the content is open source and accessible to anyone, there is no risk in making API public.

Git version control

Git version control will be used on the application code, and all commits will be preserved in a special repository that other UNICEF members can access.

MySQL
PHP

Technical Specification

Content types & Structure

This section details the different content types used in the CMS and their structures.

List of content types

  1. Article
  2. Basic pages
  3. Child Development
  4. Child Growth
  5. Daily Homescreen
  6. FAQ
  7. Games
  8. Health Check-ups
  9. Linked Pages
  10. Milestone
  11. Vaccinations
  12. Video Article.
Article

Articles grouped in thematic categories providing information and advice for parents.

Fields Type Usage Editable Remarks Translate Field
Title Text Free text Yes Required Field Yes
Body Long Text Basic HTML Formatting Yes Yes
Language Select Single Select Yes From Drupal core Language module Yes
Category Entity Reference [Taxonomy] Single Select No Required Field No
Child Age Entity Reference [Taxonomy] Multiple Select No Required Field No
Child Gender Entity Reference [Taxonomy] Single Select No Required Field No
Parent Gender Entity Reference [Taxonomy] Single Select No Required Field No
Keywords Entity Reference [Taxonomy] Multiple Select Yes Yes
Cover Image Media Reference Single Yes Required Field Yes
Related Articles Entity Reference [Content] Multiple Select No No
Related Video Article Entity Reference [Content] Multiple Select Yes No
Licensed Content Checkbox Single No No
Premature Content Checkbox Single Yes Yes
Australian Article Checkbox Single No No
References and comments Long Text Basic HTML Formatting Yes Yes
Mandatory Content Checkbox Single No No
Pre-Populated Checkbox Single No Yes
Moderation State Select Single Select Yes Yes
Basic pages

Pages containing information like Terms and Conditions, About Us & Privacy Policy

Fields Type Usage Editable Remarks Translate Field
Title Text Free text Yes Required Field Yes
Language Select Single Select Yes From Drupal core Language module Yes
Body Long Text Basic HTML Formatting Yes Yes
Mandatory Content Checkbox Single No Yes
Moderation State Select Single Select Yes Yes
Child Development – Age Periods

Features key development article for each age period

Fields Type Usage Editable Remarks Translate Field
Title Text Free text Yes Required Field Yes
Language Select Single Select Yes From Drupal core Language module Yes
Short description Entity Reference [Content] Text area No No
Child Age Entity Reference [Taxonomy] Multiple Select No Required Field No
Pinned Video Article for Boy Baby Entity Reference [Content] Single Select No Required Field Yes
Pinned Video Article for Girl Baby Entity Reference [Content] Single Select No Required Field Yes
Milestone Instructions Long Text Basic HTML Formatting Yes Yes
Mandatory Content Checkbox Single No No
Moderation State Select Single Select Yes Yes
Child Growth – Age Periods

Growth scenario corresponding to measures of weight and height/length in relation to WHO Growth charts

Fields Type Usage Editable Remarks Translate Field
Title Text Free text Yes Required Field Yes
Growth Type Entity Reference [Taxonomy] Single Select No Required Field No
Language Select Single Select Yes From Drupal core Language module Yes
Standard Deviation Entity Reference [Taxonomy] Single Select No Required Field Yes
Child Age Entity Reference [Taxonomy] Multiple Select No Required Field No
Description Long Text Basic HTML Formatting Yes Yes
Pinned Articles Entity Reference [Content] Multiple Select No Required Field No
Pinned Video Articles Entity reference No No
Mandatory Content Checkbox Single No No
Moderation State Select Single Select Yes Yes
Daily Homescreen

Daily messages to parents featured on the homepage of the app

Fields Type Usage Editable Remarks Translate Field
Message Text Free text No Required Field Yes
Language Select Single Select Yes Yes
Moderation State Select Single Select Yes Yes
Mandatory Content Checkbox Yes
FAQ

Short responses to frequently asked questions featured in the Chatbot with links related articles

Fields Type Usage Editable Remarks Translate Field
Question Text Free Text Yes Required Field Yes
Answer Part 1 Text Basic HTML Formatting Yes Required Field Yes
Answer Part 2 Text Basic HTML Formatting Yes Yes
Language Select Single Select Yes From Drupal core Language module Yes
Chatbot SubCategory Entity Reference [Taxonomy] Single Select No Required Field No
Related Article Entity Reference [Taxonomy] Multi Select Yes Yes
Mandatory Content Checkbox Single No No
Moderation State Select Single Select Yes Yes
Games

Play activities/games to stimulate child development, linked with development domains and milestones

Fields Type Usage Editable Remarks Translate Field
Title Text Free text Yes Required Field Yes
Description Long Text Basic HTML Formatting Yes Yes
Language Select Single Select Yes From Drupal core Language module Yes
Domain Entity Reference [Taxonomy] Single Select No Required Field No
Type of support Entity Reference [Taxonomy] Single Select No No
Cover Image Media Reference Single Yes Required Field Yes
Child Age Entity Reference [Taxonomy] Multiple Select No Required Field No
Pinned Milestone Entity Reference [Content] Multiple Select No No
Mandatory Content Checkbox Single No No
Pre Populated Checkbox Single No No
Moderation State Select Single Select Yes Yes
Health Check-ups – Age Periods

Title and the age period of each health check-up

Fields Type Usage Editable Remarks Translate Field
Title Text Free text Yes Required Field Yes
Body Text Free text Yes Yes
Language Select Single Select Yes From Drupal core Language module No
Age periods for vaccinations and health check-ups Entity Reference [Taxonomy] Single Select No Required Field No
Pinned Article Entity Reference [Content] Single Select No No
Pinned Video Article Entity Reference [Content] Single Select No No
Moderation State Select Single Select Yes Yes
Linked Pages

Feature that allows running of short surveys with app users

Fields Type Usage Editable Remarks Translate Field
Title Text Free text Yes Required Field Yes
Language Select Single Select Yes From Drupal core Language module Yes
Description Long Text Basic HTML Formatting Yes Yes
Type Select Single Select Yes Required Field Yes
Survey / Feedback Link URL URL Link Yes Required Field Yes
Moderation State Select Single Select Yes Yes
Milestone

Developmental milestones specific to child age periods

Fields Type Usage Editable Remarks Translate Field
Title Text Free text Yes Required Field Yes
Body Long Text Basic HTML Formatting Yes Yes
Language Select Single Select Yes From Drupal core Language module Yes
Child Age Entity Reference [Taxonomy] Multiple Select No Required Field No
Related Articles Entity Reference [Content] Multiple Select No No
Related Video Articles Entity Reference [Content] Multi Select Yes Yes
Related Activities Entity Reference [Content] Multi Select No No
Mandatory Content Checkbox Single No No
Pre Populated Checkbox Single No No
Moderation State Select Single Select Yes Yes
Vaccinations – Age Periods

Name of each vaccine and period in which it is administered

Fields Type Usage Editable Remarks Translate Field
Vaccine Name Text Free text Yes Required Field Yes
Language Select Single Select Yes From Drupal core Language module Yes
Pinned Article Entity Reference [Content] Single Select No No
Pinned Video Article Entity Reference [Content] Single Select No No
Age periods for vaccinations and health check-ups Entity Reference [Taxonomy] Single Select No Required Field No
Moderation State Select Single Select Yes No
From old vaccination calendar Boolean Checkbox Yes No
Video Article

Video articles grouped under 6 thematic categories and videos supporting milestones.

Fields Type Usage Editable Remarks Translate Field
Title Text Free text Yes Yes
Body Long Text Basic HTML Formatting Yes Yes
Language Select Single Select Yes From Drupal core Language module Yes
Category Entity Reference [Taxonomy] Single Select No Yes
Child Age Entity Reference [Taxonomy] Multiple Select No No
Child Gender Entity Reference [Taxonomy] Single Select No No
Parent Gender Entity Reference [Taxonomy] Single Select No Yes
Keywords Entity Reference [Taxonomy] Multiple Select Yes Yes
Cover Video Media Reference Single Yes Yes
Related Articles Entity Reference [Content] Multiple Select No Yes
Licensed Content Checkbox Single No No
Premature Content Checkbox Single Yes Yes
Australian Article Checkbox Single No No
References and comments Long Text Basic HTML Formatting Yes Yes
Mandatory Content Checkbox Single No No
Related Video Articles Entity Reference [Taxonomy] Multiple Select No No
Moderation State Select Single Select Yes Yes

Taxonomies

Taxonomy is used for classifying or categorising content, Can associate taxonomy terms with specific content, which is useful for organising and displaying it based on its classification.

The list of vocabulary names for the CMS is shown below.

Age periods for vaccinations and health check-ups
Fields Type Usage Editable
Name Text Free text Yes
Health Check-up/Vaccination Open Integer Number No
Category
Fields Type Usage
Title Text Free text
Chatbot Category

Used in FAQ content type for the purpose of chatbot

Fields Type Usage Editable
Name Text Free text Yes
Unique Name Text Free text No
Chatbot Child Age
Fields Type Usage Editable
Name Text Free text Yes
Period Text Free text No
Days From Text Numeric No
Days To Text Numeric No
Chatbot Subcategory

Used in FAQ content type for the purpose of chatbot

Fields Type Usage Editable
Name Text Free text Yes
Unique Name Text Free text No
Category Entity Reference [Taxonomy] Single Select No
Child's Age

Child's age as per the defined age periods

Fields Type Usage Editable
Name Text Free text Yes
Language Select Single Select Yes
Days From Text Numeric No
Days To Text Numeric No
Content to be downloaded for the age bracket Entity Reference [Taxonomy] Multiple Select No
Buffers days Text Numeric No
Child's Gender

Child's gender - male, female

Fields Type Usage Editable
Name Text Free text Yes
Daily Home Screen Message Category

Daily messages for parents

Domain of Activity

Child development domains linked to Activities

Fields Type Usage
Unique name Text Free text
Growth Introductory

Introductory message about typical growth in a given age period

Fields Type Usage Editable
Name Text Free text Yes
Days From Text Numeric No
Days To Text Numeric No
Description Long Text Free text No
Growth Type [Child Growth Content type]

Weight for height/length; Weight for age

Fields Type Usage Editable
Title Text Free text Yes
Keywords

Distinct words/terms characteristic for a content of a given article

Fields Type Usage
Title Text Free text
Parent's Gender

Gender of a parent or a caregiver using the app, tagging category

Fields Type Usage Editable
Name Text Free text Yes
Relationship to Child
Fields Type Usage Editable
Name Text Free text Yes
Description Text area Multiple rows Yes
Standard Deviation

Standardized WHO Growth charts values with standard deviations

Fields Type Usage Editable
Growth Type Entity Reference [Taxonomy] Single Select No
Length/Day Text Free text No
Child Gender Entity Reference [Taxonomy] Single Select No
SD4neg Text Numeric No
SD3neg Text Numeric No
SD2neg Text Numeric No
SD1neg Text Numeric No
SD0 Text Numeric No
SD1 Text Numeric No
SD2 Text Numeric No
SD3 Text Numeric No
SD4 Text Numeric No
Standard Deviation Category

Standardized WHO Growth charts values with standard deviations

Fields Type Usage Editable
Name Text Free text Yes
Description Text area Multiple rows Yes
Type of Support

Type of support required to implement an Activity

Fields Type Usage Editable
Name Text Free text Yes

Drupal RestFull API

Web Services allow other applications to read and update information on your site via the Web. REST is one of a number of different ways of making Web Services available on your site. In contrast to other techniques such as SOAP or XML-RPC, REST encourages developers to rely on HTTP methods (such as GET and POST) to operate on resources (data managed by Drupal).

Features

Drupal Serialization module to provide a customizable, extensible RESTful API of data managed by Drupal. It allows you to interact with any content entity (nodes, users, comments etc.) or Drupal config entity (vocabularies, user roles etc.) and watchdog database log entries.

  • modules can expose additional resources
  • supports GET/POST/PATCH/DELETE
  • integrates with Drupal's role-based authentication system automatically: one permission per resource (and per verb)
  • modules can add authentication mechanisms, these can then be applied to any of the resources
  • modules can add more serialization formats — see the Serialization module.
APIs

Following are the key considerations while building the APIs.

  1. Data will be available via RESTful API in JSON format (read only)
  2. API provides read-only data access.
  3. APIs are cached in the CDN
  4. API Urls were constructed leveraging default views/rest API and Serialisation module.
API Name Sponsor API
Page on Mobile App Daily Messages Listing Page
Purpose Serves country logo, sponsors logo and national partner image
Query Parameters Not applicable
API URL /api/sponsors/{countryid}: GET
API Name Daily Home Screen Messages API
Page on Mobile App Daily Messages Listing Page
Purpose Serves daily messages based on Language
Query Parameters Not applicable
API URL /api/daily-homescreen-messages/{langcode}: GET
API Name Article API
Page on Mobile App Article Listing Page
Purpose Serves List of Articles based on Language, Category, Child Age, Child Gender, Parent Gender
Query Parameters childAge, childGender, parentGender, category, pre_populated, datetime
API URL /api/articles/{langcode}: GET
API Name Video Article API
Page on Mobile App Video Article Listing Page
Purpose Serves List of Video Articles based on Language, Category, Child Age, Child Gender, Parent Gender
Query Parameters datetime
API URL /api/video-articles/{langcode}: GET
API Name FAQs API
Page on Mobile App FAQ Listing Page
Purpose Serves Categorised List of FAQs based on Language, chatbot sub category
Query Parameters datetime
API URL /api/faqs{langcode}: GET
API Name Child Growth API (Disabled)
Page on Mobile App Child Growth page
Purpose Serves child growth information for development diary based on Language, Child Age, Growth Type, Standard Deviation, Growth Introductory
Query Parameters Not applicable
API URL /api/child-growth-data/{langcode}: GET
API Name Child Development API
Page on Mobile App Child Development Page
Purpose Serves child development information for development diary based on Language, Child Age and list of milestones for each development stage.
Query Parameters Not applicable
API URL /api/child-development-data/{langcode}: GET
API Name Milestones API
Page on Mobile App Child Development Page
Purpose Serves list of Milestones based on the child development with Language, Child Age
Query Parameters pre-populated
API URL /api/milestones/{langcode}: GET
API Name Basic Pages API
Page on Mobile App Basic Page
Purpose Serves basic detail pages based on the Language
Query Parameters Not applicable
API URL /api/basic-pages/{langcode}: GET
API Name Vaccinations API
Page on Mobile App Vaccination Page
Purpose Serves vaccination calendar information for development diary based on Language, Growth Period
Query Parameters Not applicable
API URL /api/vaccination-data/{langcode}: GET
API Name Health Checkups API
Page on Mobile App Health Checkup Page
Purpose Serves health checkups details for development diary based on Language, Growth Period
Query Parameters Not applicable
API URL /api/health-checkup-data/{langcode}: GET
API Name Survey/Feedback/User Guide
Page on Mobile App Survey and Feedback Page
Purpose Serves survey or feedback or user guide details which includes third party survey link, language.
Query Parameters Not applicable
API URL /api/surveys/{langcode}: GET
API Name List Taxonomy Vocabularies
Page on Mobile App Daily Messages Listing Page
Purpose Serves vocabularies list based on language [Category, Child Age, Child Growth, Child Gender, Parent Gender, Season, Growth Introductory, Growth Type, Standard Deviation,Growth Period
Query Parameters Not applicable
API URL /api/vocabularies/{langcode}: GET
API Name List Taxonomy Terms for Vocabulary
Page on Mobile App Daily Messages Listing Page
Purpose Serves vocabularies term list based on language
Query Parameters Not applicable
API URL /api/taxonomies/{langcode}/{vocabulary}: GET
API Name Child Development Pinned Articles
Page on Mobile App Pinned Articles API
Purpose Serves List of Articles pinned to each content of the content type Child Development based on Language
Query Parameters Not applicable
API URL /api/pinned-contents/{langcode}/{type}: GET (or)
API Name Child Growth Pinned Articles
Page on Mobile App Pinned Articles API
Purpose Serves List of Articles pinned to each content of the content type Child Growth based on Language
Query Parameters Not applicable
API URL /api/pinned-contents/{langcode}/{type}: GET
API Name Vaccination Pinned Articles
Page on Mobile App Pinned Articles API
Purpose Serves List of Articles pinned to each content of the content type Vaccination based on Language
Query Parameters Not applicable
API URL /api/pinned-contents/{langcode}/{type}: GET
API Name Health Checkups Pinned Articles
Page on Mobile App Pinned Articles API
Purpose Serves List of Articles pinned to each content of the content type Health Checkups based on Language
Query Parameters Not applicable
API URL /api/pinned-contents/{langcode}/{type}:
API Name Activities API
Page on Mobile App Activities Page
Purpose Serves Activity related information based on activity category, country, child age and language
Query Parameters pre-populated
API URL /api/activities/{langcode}: GET
API Name List Taxonomy Vocabularies
Page on Mobile App Daily Messages Listing Page
Purpose Serves vocabularies list based on language [Category, Child Age, Child Growth, Child Gender, Parent Gender, Season, Growth Introductory, Growth Type, Standard Deviation,Growth Period
Query Parameters Not applicable
API URL /api/vocabularies/{langcode}: GET
API Name List Taxonomy Terms for Vocabulary
Page on Mobile App Daily Messages Listing Page
Purpose Serves vocabularies term list based on language
Query Parameters Not applicable
API URL /api/taxonomies/{langcode}/{vocabulary}: GET
API Name Milestone Related Articles
Page on Mobile App Related Article API
Purpose Serves List of Articles related to each content of the content type milestone based on Language
Query Parameters Not applicable
API URL /api/related-article-contents/{langcode}/{type}: GET
API Name Forcefull Update Check API
Page on Mobile App Daily Messages Listing Page
Purpose Will provide information about whether the mobile has to forcefully update data.
Query Parameters Not applicable
API URL /api/check-update/{countryid}: GET
API Name FAQs Updated API
Page on Mobile App FAQ Listing Page
Purpose Serves updated related article content based on datetime
Query Parameters datetime
API URL /api/pinned-contents/{langcode}/faq: GET
API Name Deleted Content API
Purpose Serves list of content changed from published to any other state content (article, faq, games, video article)
Query Parameters datetime
API URL /api/archive/{langcode}: GET
API Name Standard Deviation JSON API
Purpose Serves child growth content based on good text, warning small height text, etc
Query Parameters Not applicable
API URL /api/archive/{langcode}: GET

Product Guides

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

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
Clone this wiki locally