From e93a55cf5533d395c7ea9c6c402918c56a6a1b06 Mon Sep 17 00:00:00 2001 From: Allen Benny Date: Mon, 15 Apr 2024 15:48:42 +0530 Subject: [PATCH 1/6] Initialize Readme.md --- README.md | 140 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 127 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 63afdb6b0..4fdd5687d 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,133 @@ height="42" /> # wp-module-onboarding WordPress Module +[![Version Number](https://img.shields.io/github/v/release/newfold-labs/wp-module-onboarding?color=21a0ed&labelColor=333333)](https://github.com/newfold/wp-module-onboarding/releases) +[![License](https://img.shields.io/github/license/newfold-labs/wp-module-onboarding?labelColor=333333&color=666666)](https://raw.githubusercontent.com/newfold-labs/wp-module-onboarding/master/LICENSE) -Next-generation WordPress Onboarding for WordPress sites at Newfold Digital. +The Onboarding module is designed to streamline various tasks related to user onboarding and customization within a WordPress environment. It provides functionalities to enhance user experience, configure settings, install plugins and themes dynamically, and interact with other modules seamlessly. + +## Module Responsibilities + +1. **User Redirection:** + - Provide functions to redirect users after login, ensuring a smooth transition and a complete onboarding experience. + +2. **Dynamic Plugin and Theme Installation:** + - Install various plugins and themes dynamically based on user requirements, enhancing customization options. + +3. **WordPress Initialization:** + - Initialize WordPress options, permalinks, and configurations to ensure a consistent setup across users. + +4. **WordPress Version Upgrade:** + - Automatically upgrade WordPress versions for users running below version 6.2, ensuring security and performance improvements. + +5. **Brand-based Experience Customization:** + - Show a completely different experience to users based on the brands they are redirected from, enhancing brand consistency and personalization. + +6. **Custom Theme Generation:** + - Generate themes with templates and multiple pages according to user selections, including chosen colors and fonts, enhancing visual customization. + +7. **Event Handling:** + - Send various events according to user selections, enabling tracking and analytics for user behavior. + +8. **Integration with Onboarding Data Module:** + - Interact with the Onboarding Data Module for various operations and tasks, ensuring seamless user experience. + +## Critical Paths +1. **Automatic Onboarding Redirection:** + - Users should be automatically redirected to the onboarding process the first time they log in to wp-admin. + +2. **Onboarding Suppression:** + - Subsequent logins to WordPress should not display the onboarding process for users who have completed it previously. + +3. **WordPress Version Upgrade Prompt:** + - Users should be guided to upgrade the WordPress version if it is less than 6.2. + +4. **Brand-specific Experience:** + - Users should experience a brand-specific interface, displaying different brand logos and colors tailored to their brand affiliation. + +5. **Preview Options Display:** + - Users should be presented with either the Wonder Blocks or YITH Wonder Live Previews options. + +6. **Customized Child Theme Generation:** + - The child theme generated should reflect the choices made by the user during their onboarding experience. + +7. **User-provided Site Details:** + - The user's site should display a title, description, and logo provided during the onboarding process. + +## Release Process + +### Pre-release Preparation + +1. **Checkout the trunk branch locally:** + ```bash + git checkout trunk + ``` + +2. **Ensure trunk is up to date with origin:** + ```bash + git pull origin trunk + ``` + +3. **Test for any breaking changes and highlight concerns:** + - **Conduct thorough testing to ensure stability and functionality.** + - Note any issues or concerns for further action. + +4. **Increment version following Semantic Versioning 2.0.0:** + - Update version in: + - `bootstrap.php` + - `package.json` + - `package-lock.json` + - Run: + ```bash + npm install + npm run build + ``` + - Verify existence of `build/` folder. + +5. **Push changes to origin:** + ```bash + git push origin trunk + ``` + +### Creating a Release + +6. **Create a new release on Github:** + - Go to: [New Release](https://github.com/newfold-labs/wp-module-onboarding/releases/new) + - Tag number should match the updated version number. + - Title: `Version ` + - Generate release notes. + - Publish Release. + +7. **Ensure release tag exists on [Github](https://github.com/newfold-labs/wp-module-onboarding/releases/) and [Satis](https://github.com/newfold-labs/satis/actions).** + +### Pull Request and Testing + +8. **Make a branch in the Brand Plugin:** + - Create a branch `update/onboarding` in the Brand plugin. + +9. **Update Onboarding version in:** + - `composer.json` + - `composer.lock` + - Run: + ```bash + composer update newfold-labs/wp-module-onboarding + ``` + +10. **Push changes to the branch and add a small release description in the PR Desc.** + +11. **Wait for Cypress test workflow to run:** + - Ensure all Onboarding tests pass. + +12. **If any tests fail, fix them in the module and tag a re-release by deleting the earlier release and tag.** + +### Final Steps + +13. **Create a bump PR to the master branch of Brand Plugin.** + +14. **Send release details notification on WordPress Pillar APAC channel.** + +15. **Tag PRESS1 and share link in PRESS 1,2,4 Coordination Code Reviews channel:** + - Include Release Tag and Bump PR links. ## Installation @@ -21,15 +146,4 @@ Next-generation WordPress Onboarding for WordPress sites at Newfold Digital. composer require newfold-labs/wp-module-onboarding ``` -## Usage - -## More on NewFold WordPress Modules - -* What are modules? -* Creating/registering - modules -* Installing from our - Satis -* Local development notes -* Understanding the - module lifecycle +[More on NewFold WordPress Modules](https://github.com/newfold-labs/wp-module-loader) From 3f65f66893983b6d47cc29569fca625ec9f2674e Mon Sep 17 00:00:00 2001 From: Allen Benny Date: Tue, 16 Apr 2024 12:24:52 +0530 Subject: [PATCH 2/6] Add badges --- README.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 4fdd5687d..1c0b6171c 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,17 @@ height="42" /> -# wp-module-onboarding WordPress Module -[![Version Number](https://img.shields.io/github/v/release/newfold-labs/wp-module-onboarding?color=21a0ed&labelColor=333333)](https://github.com/newfold/wp-module-onboarding/releases) -[![License](https://img.shields.io/github/license/newfold-labs/wp-module-onboarding?labelColor=333333&color=666666)](https://raw.githubusercontent.com/newfold-labs/wp-module-onboarding/master/LICENSE) +# WordPress Onboarding Module +[![Version Number](https://img.shields.io/github/v/release/newfold-labs/wp-module-onboarding?color=77dd77&labelColor=00000&style=for-the-badge)](https://github.com/newfold/wp-module-onboarding/releases) +[![License](https://img.shields.io/github/license/newfold-labs/wp-module-onboarding?labelColor=333333&color=666666&style=for-the-badge)](https://raw.githubusercontent.com/newfold-labs/wp-module-onboarding/master/LICENSE) -The Onboarding module is designed to streamline various tasks related to user onboarding and customization within a WordPress environment. It provides functionalities to enhance user experience, configure settings, install plugins and themes dynamically, and interact with other modules seamlessly. +The Onboarding module is designed to streamline various tasks related to user onboarding and customization within a WordPress environment. It provides functionalities to enhance user experience, configure settings, install plugins and themes dynamically, and interact with other modules seamlessly. +

+[![React](https://img.shields.io/badge/Wordpress-21759B?style=for-the-badge&logo=wordpress&logoColor=white)]() +[![React](https://img.shields.io/badge/PHP-777BB4?style=for-the-badge&logo=php&logoColor=white)]() +[![React](https://shields.io/badge/react-black?logo=react&style=for-the-badge)]() +
## Module Responsibilities 1. **User Redirection:** @@ -59,7 +64,7 @@ The Onboarding module is designed to streamline various tasks related to user on ## Release Process -### Pre-release Preparation +### Local Release Preparation 1. **Checkout the trunk branch locally:** ```bash @@ -92,7 +97,7 @@ The Onboarding module is designed to streamline various tasks related to user on git push origin trunk ``` -### Creating a Release +### Creating a Release on Github 6. **Create a new release on Github:** - Go to: [New Release](https://github.com/newfold-labs/wp-module-onboarding/releases/new) @@ -103,10 +108,10 @@ The Onboarding module is designed to streamline various tasks related to user on 7. **Ensure release tag exists on [Github](https://github.com/newfold-labs/wp-module-onboarding/releases/) and [Satis](https://github.com/newfold-labs/satis/actions).** -### Pull Request and Testing +### Pull Request and Cypress Testing 8. **Make a branch in the Brand Plugin:** - - Create a branch `update/onboarding` in the Brand plugin. + - Create a branch `update/onboarding` in the Brand plugin from `develop`. 9. **Update Onboarding version in:** - `composer.json` From cfd816a296b9c9632326de98249a21571b202a81 Mon Sep 17 00:00:00 2001 From: Allen Benny Date: Wed, 17 Apr 2024 13:00:59 +0530 Subject: [PATCH 3/6] Use Newfold Satis --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1c0b6171c..83abca185 100644 --- a/README.md +++ b/README.md @@ -139,10 +139,10 @@ The Onboarding module is designed to streamline various tasks related to user on ## Installation -### 1. Add the Bluehost Satis to your `composer.json`. +### 1. Add the Newfold Satis to your `composer.json`. ```bash - composer config repositories.bluehost composer https://bluehost.github.io/satis + composer config repositories.newfold composer https://newfold-labs.github.io/satis ``` ### 2. Require the `newfold-labs/wp-module-onboarding` package. From bc0c873da02d114ccf264b06aa5da93acec9f0b3 Mon Sep 17 00:00:00 2001 From: Allen Benny Date: Thu, 18 Apr 2024 11:55:13 +0530 Subject: [PATCH 4/6] Remove subheadings --- README.md | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/README.md b/README.md index 83abca185..83b6c0304 100644 --- a/README.md +++ b/README.md @@ -16,50 +16,22 @@ The Onboarding module is designed to streamline various tasks related to user on
## Module Responsibilities -1. **User Redirection:** - Provide functions to redirect users after login, ensuring a smooth transition and a complete onboarding experience. - -2. **Dynamic Plugin and Theme Installation:** - Install various plugins and themes dynamically based on user requirements, enhancing customization options. - -3. **WordPress Initialization:** - Initialize WordPress options, permalinks, and configurations to ensure a consistent setup across users. - -4. **WordPress Version Upgrade:** - Automatically upgrade WordPress versions for users running below version 6.2, ensuring security and performance improvements. - -5. **Brand-based Experience Customization:** - Show a completely different experience to users based on the brands they are redirected from, enhancing brand consistency and personalization. - -6. **Custom Theme Generation:** - Generate themes with templates and multiple pages according to user selections, including chosen colors and fonts, enhancing visual customization. - -7. **Event Handling:** - Send various events according to user selections, enabling tracking and analytics for user behavior. - -8. **Integration with Onboarding Data Module:** - Interact with the Onboarding Data Module for various operations and tasks, ensuring seamless user experience. ## Critical Paths -1. **Automatic Onboarding Redirection:** - Users should be automatically redirected to the onboarding process the first time they log in to wp-admin. - -2. **Onboarding Suppression:** - Subsequent logins to WordPress should not display the onboarding process for users who have completed it previously. - -3. **WordPress Version Upgrade Prompt:** - Users should be guided to upgrade the WordPress version if it is less than 6.2. - -4. **Brand-specific Experience:** - Users should experience a brand-specific interface, displaying different brand logos and colors tailored to their brand affiliation. - -5. **Preview Options Display:** - Users should be presented with either the Wonder Blocks or YITH Wonder Live Previews options. - -6. **Customized Child Theme Generation:** - The child theme generated should reflect the choices made by the user during their onboarding experience. - -7. **User-provided Site Details:** - The user's site should display a title, description, and logo provided during the onboarding process. ## Release Process From 048cf862c07d6c9e7c200faa9045e55f246bcfbb Mon Sep 17 00:00:00 2001 From: Allen Benny Date: Thu, 18 Apr 2024 13:58:05 +0530 Subject: [PATCH 5/6] Divide Module Responsibilities --- README.md | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 83b6c0304..338884d11 100644 --- a/README.md +++ b/README.md @@ -15,15 +15,38 @@ The Onboarding module is designed to streamline various tasks related to user on [![React](https://shields.io/badge/react-black?logo=react&style=for-the-badge)]()
## Module Responsibilities - - - Provide functions to redirect users after login, ensuring a smooth transition and a complete onboarding experience. - - Install various plugins and themes dynamically based on user requirements, enhancing customization options. - - Initialize WordPress options, permalinks, and configurations to ensure a consistent setup across users. - - Automatically upgrade WordPress versions for users running below version 6.2, ensuring security and performance improvements. - - Show a completely different experience to users based on the brands they are redirected from, enhancing brand consistency and personalization. - - Generate themes with templates and multiple pages according to user selections, including chosen colors and fonts, enhancing visual customization. - - Send various events according to user selections, enabling tracking and analytics for user behavior. - - Interact with the Onboarding Data Module for various operations and tasks, ensuring seamless user experience. +### Common Grounds + +- Automatically upgrade WordPress versions for users running below version 6.2, ensuring security and performance improvements. +- Initialize WordPress options, permalinks, and configurations to ensure a consistent setup across users. +- Provide functions to redirect users after login, ensuring a smooth transition and a complete onboarding experience. +- Install various plugins and themes dynamically based on user requirements, enhancing customization options. +- Show a completely different experience to users based on the brands they are redirected from, enhancing brand consistency and personalization. +- Send various events according to user selections, enabling tracking and analytics for user behavior. +- Interact with the Onboarding Data Module for various operations and tasks, ensuring seamless user experience. + +### Default Flow [wp-setup] + +- Defines appropriate Primary and Secondary categories in the Site Classification section within the Data Module. +- Incorporate the title, description, and logo supplied by the user for their WordPress site. +- Transition to an ecommerce flow if the user selects "Selling" as the Top Priority Step. +- Produce themes featuring templates such as headers, homepages, and supplementary pages, tailored to the user's preferences, including selected colors and fonts. + +### Ecommerce Flow [ecommerce] + +- This flow has supplementary stages, including address input, tax particulars, and product configuration. +- User-provided address details are seamlessly integrated into the WooCommerce plugin, with the default currency adapted based on user selections. +- The Tax step facilitates the establishment of default tax calculation preferences. +- The Products step, users can define the type and quantity of products they intend to sell. + +### Sitegen Flow [sitegen] + +- Users are presented with the option to proceed through either the standard DIY process or the cutting-edge Sitegen Flow. +- Users have the capability to integrate their Facebook accounts to elevate the website creation experience. +- Many pivotal elements of the site are synthesized through AI calls. +- Users are presented with various iterations of their site and have the ability to generate multiple versions with distinct styles. +- They can personalize the visual aspects of the website, including color schemes, typography, and even the theme name. +- A customized child theme is created based on the user's preferences, accompanied by a live preview showcasing the website's appearance. ## Critical Paths - Users should be automatically redirected to the onboarding process the first time they log in to wp-admin. From 9b2c04fdee3027ca6575fb12e28b11481d3beb9f Mon Sep 17 00:00:00 2001 From: Allen Benny Date: Thu, 18 Apr 2024 15:02:03 +0530 Subject: [PATCH 6/6] Update Critical Paths --- README.md | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 338884d11..c4665639a 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,9 @@ The Onboarding module is designed to streamline various tasks related to user on [![React](https://img.shields.io/badge/PHP-777BB4?style=for-the-badge&logo=php&logoColor=white)]() [![React](https://shields.io/badge/react-black?logo=react&style=for-the-badge)]()
+ ## Module Responsibilities + ### Common Grounds - Automatically upgrade WordPress versions for users running below version 6.2, ensuring security and performance improvements. @@ -49,16 +51,32 @@ The Onboarding module is designed to streamline various tasks related to user on - A customized child theme is created based on the user's preferences, accompanied by a live preview showcasing the website's appearance. ## Critical Paths + +### Common Grounds + - Users should be automatically redirected to the onboarding process the first time they log in to wp-admin. - Subsequent logins to WordPress should not display the onboarding process for users who have completed it previously. - Users should be guided to upgrade the WordPress version if it is less than 6.2. - Users should experience a brand-specific interface, displaying different brand logos and colors tailored to their brand affiliation. - - Users should be presented with either the Wonder Blocks or YITH Wonder Live Previews options. - The child theme generated should reflect the choices made by the user during their onboarding experience. - - The user's site should display a title, description, and logo provided during the onboarding process. -## Release Process +### Default Flow [wp-setup] + +- Primary and secondary classifications should be promptly established in the SiteClassification option upon the user's selection. +- The workflow should seamlessly switch when the user prioritizes "Selling" in the Top Priority step. +- Users should be presented with a choice between Wonder Blocks or YITH Wonder Live Previews options. +- The Live preview should vividly illustrate the user's selections, providing a visual depiction of the site's appearance. + +### Sitegen Flow [sitegen] + +- Ensure that all Site meta requests are executed concurrently and that data processing proceeds smoothly. +- Validate the functionality of all live previews, showcasing various iterations of the site. +- Generate and publish additional pages according to the user's instructions. +- Apply the chosen color schemes and fonts, allowing users to observe immediate updates reflected in their live previews. +- Upload large AI-generated images into WordPress media and incorporate the new WordPress links into their respective contexts. +- Generate screenshots tailored to the user's preferences and create a child theme using the provided name. +## Release Process ### Local Release Preparation 1. **Checkout the trunk branch locally:**