Add two end to end tutorials - Social Media Backend and Supplier Order Ingestion Hub#556
Add two end to end tutorials - Social Media Backend and Supplier Order Ingestion Hub#556pasindufernando1 wants to merge 18 commits into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughThe PR adds two new tutorial pages and updates the Guides sidebar to link them. ChangesTutorial documentation and sidebar
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Broken links, images & orphan pages
Links/images come from one crawl of the production build (baseUrl-aware). Orphans are docs not referenced by Summary
Broken links & imagesIntroduced by this PRNo new broken link(s)/image(s) introduced by this PR. ✅ Already on
|
There was a problem hiding this comment.
🧹 Nitpick comments (3)
en/docs/guides/tutorials/file-order-hub.md (3)
411-411: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueUse the proper feature name "Sub Mapping" in link text.
The learning from this codebase indicates that "Sub Mappings" is the exact proper name of the Data Mapper feature and should be kept capitalized. The link text "sub-mapping" should use the proper name to match the feature documentation.
-11. Add a [sub-mapping](../../develop/integration-artifacts/supporting/data-mapper/submappings.md) named `lineTotals` of type `decimal[]`. +11. Add a [Sub Mapping](../../develop/integration-artifacts/supporting/data-mapper/submappings.md) named `lineTotals` of type `decimal[]`.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@en/docs/guides/tutorials/file-order-hub.md` at line 411, Update the tutorial text to use the exact Data Mapper feature name “Sub Mapping” in the link text instead of the lowercase “sub-mapping”; keep the existing link target and adjust the wording around the lineTotals step in the file-order-hub tutorial so the referenced feature name matches the documented terminology used by the Data Mapper docs.Source: Learnings
2-2: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAlign the URL slug with the page title's primary keywords.
The file slug
file-order-hubdoes not share the title's primary keywords (supplier,order,ingestion,hub). The title is "Build a Supplier Order Ingestion Hub", so the slug should derive fromsupplier-order-ingestion-huborsupplier-order-hub(with filler words removed).file-order-hubintroducesfilefrom the description rather than the title, weakening URL–title alignment per the project conventions.As per path instructions, page titles and URL slugs must use the same primary keywords, and URLs must be shorter and more concise than titles by removing filler words.
♻️ Suggested slug alternatives
If keeping the current title, rename the file to:
supplier-order-ingestion-hub.md→/guides/tutorials/supplier-order-ingestion-hubsupplier-order-hub.md→/guides/tutorials/supplier-order-hubOr adjust the title to match the slug:
title: "Build a File Order Hub with Supplier Integration"🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@en/docs/guides/tutorials/file-order-hub.md` at line 2, The document title and file slug are misaligned: the current slug uses “file” instead of the title’s primary keywords, so update the page naming in the markdown metadata and/or filename so they share the same core terms used by Build a Supplier Order Ingestion Hub. Prefer a shorter slug derived from supplier-order-ingestion-hub or supplier-order-hub, and ensure the title and slug stay keyword-aligned per the tutorial naming conventions.Source: Path instructions
648-648: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueUse the proper feature name "Sub Mapping" in link text.
Same as line 411 — the link text should use the proper feature name.
-13. Add a [sub-mapping](../../develop/integration-artifacts/supporting/data-mapper/submappings.md) `lineTotals` of type `decimal[]`. +13. Add a [Sub Mapping](../../develop/integration-artifacts/supporting/data-mapper/submappings.md) `lineTotals` of type `decimal[]`.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@en/docs/guides/tutorials/file-order-hub.md` at line 648, The link text uses an incorrect feature label and should be updated to the proper feature name, “Sub Mapping.” Adjust the relevant markdown link in the tutorial content so it matches the established naming used elsewhere in the document, keeping the target link unchanged and only correcting the visible text.Source: Learnings
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@en/docs/guides/tutorials/file-order-hub.md`:
- Line 411: Update the tutorial text to use the exact Data Mapper feature name
“Sub Mapping” in the link text instead of the lowercase “sub-mapping”; keep the
existing link target and adjust the wording around the lineTotals step in the
file-order-hub tutorial so the referenced feature name matches the documented
terminology used by the Data Mapper docs.
- Line 2: The document title and file slug are misaligned: the current slug uses
“file” instead of the title’s primary keywords, so update the page naming in the
markdown metadata and/or filename so they share the same core terms used by
Build a Supplier Order Ingestion Hub. Prefer a shorter slug derived from
supplier-order-ingestion-hub or supplier-order-hub, and ensure the title and
slug stay keyword-aligned per the tutorial naming conventions.
- Line 648: The link text uses an incorrect feature label and should be updated
to the proper feature name, “Sub Mapping.” Adjust the relevant markdown link in
the tutorial content so it matches the established naming used elsewhere in the
document, keeping the target link unchanged and only correcting the visible
text.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 745861e2-9bf3-4735-a385-ff482af5ac4d
⛔ Files ignored due to path filters (132)
en/static/img/guides/tutorials/order-hub/add-artifact.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/architecture.svgis excluded by!**/*.svgen/static/img/guides/tutorials/order-hub/canonical-types.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/create-integration.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/db-connect-introspect.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/db-connection.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/db-select-tables.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/ftp-configs.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/ftp-create-greenfield.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/ftp-create-harbor.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/ftp-sftp-artifact.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-configure.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-flow-map.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-flow.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-foreach.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-handler-created.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-handler.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-lines-op.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-lines-result.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-mapper-constants.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-mapper-create.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-mapper-line-fields.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-mapper-lines-menu.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-mapper-linetotal.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-mapper-orderdate.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-mapper-orderid-menu.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-mapper-orderid.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-mapper.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-orders-op.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-orders-result.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-ordertotal-menu.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-ordertotal-sum.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-persist-lines.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-persist-orders.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-row-schema.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-submapping-create.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-submapping-expr.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/greenfield-submapping-menu.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-flow-map.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-flow.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-foreach.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-handler.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-lines-result.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-mapper-constants.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-mapper-create.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-mapper-line-fields.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-mapper-lines-menu.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-mapper-linetotal-menu.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-mapper-linetotal.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-mapper-quantity.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-mapper-scalars.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-mapper-unitprice.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-mapper.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-orders-result.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-ordertotal-menu.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-ordertotal-sum.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-persist-lines.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-persist-orders.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-service-config.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-submapping-create.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-submapping-expr.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-submapping-menu.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-type-import.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/harbor-type-rename.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/service-config.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/shared-listener-tree.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-add-integration.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-automation-artifact.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-automation-create.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-count-increment.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-date-mapper.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-date-type.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-db-connection.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-declare-date.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-email-connection.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-flow.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-foreach.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-get-orders.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-htmlbody-expr.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-htmlbody.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-ordercount.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-orderrows.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-push.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-row-template.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-send-email.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-smtp-configs.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-utcnow-fn.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-utcnow.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-utctocivil-fn.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-utctocivil.pngis excluded by!**/*.pngen/static/img/guides/tutorials/order-hub/summary-where-clause.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/architecture.svgis excluded by!**/*.svgen/static/img/guides/tutorials/social-media/create-integration.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/empty-integration-design.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-call-sentiment.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-check-rejection.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-create-service.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-db-connection.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-db-credentials.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-error-type.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-get-users.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-insert-post.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-not-accepted.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-not-found.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-post-payload.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-post-resource.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-prepare-sentiment.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-publish.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-rabbitmq-client.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-return-success.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-return-users.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-sentiment-client.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-try-it-post.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-try-it.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/main-user-check.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/notifier-configs.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/notifier-create-integration.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/notifier-define-content.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/notifier-flow.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/notifier-rabbitmq-artifact.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/notifier-rabbitmq-config.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/notifier-slack-connection.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/notifier-slack-message.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/project-landing-view.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/sentiment-add-integration.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/sentiment-add-resource.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/sentiment-create-integration.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/sentiment-flow.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/sentiment-http-service.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/sentiment-return.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/sentiment-types.pngis excluded by!**/*.pngen/static/img/guides/tutorials/social-media/type-diagram.pngis excluded by!**/*.png
📒 Files selected for processing (3)
en/docs/guides/tutorials/file-order-hub.mden/docs/guides/tutorials/social-media.mden/sidebars.ts
There was a problem hiding this comment.
Pull request overview
Adds two new end-to-end WSO2 Integrator tutorials to the docs site (Social Media Backend + Supplier Order Ingestion Hub), including architecture diagrams and sidebar registration so the tutorials appear under a new Tutorials section.
Changes:
- Added two new tutorial pages (
social-media.md,file-order-hub.md) with Visual Designer walkthroughs and generated Ballerina code tabs. - Added new architecture SVG diagrams for both tutorials.
- Updated
en/sidebars.tsto register both tutorials under Tutorials.
Reviewed changes
Copilot reviewed 3 out of 135 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| en/docs/guides/tutorials/social-media.md | New Social Media backend tutorial (HTTP + MySQL + RabbitMQ + Slack), with walkthrough and code excerpts. |
| en/docs/guides/tutorials/file-order-hub.md | New file-ingestion hub tutorial (FTP + CSV/XML mapping + MySQL + SMTP summary automation). |
| en/sidebars.ts | Adds a Tutorials category and registers both new pages. |
| en/static/img/guides/tutorials/social-media/architecture.svg | New architecture diagram for the social media tutorial. |
| en/static/img/guides/tutorials/order-hub/architecture.svg | New architecture diagram for the order hub tutorial. |
Summary
This PR introduces two WSO2 Integrator tutorials, each designed end to end in the Visual Designer (every step shows the visual flow on one tab and the generated Ballerina on the other):
social-media.md) — a REST API that checks the user, screens each post with a sentiment service, stores accepted posts in MySQL, and announces them to Slack over a RabbitMQ event pipeline. Built as three integrations.file-order-hub.md) — an FTP intake (one listener, two gated services) that normalizes supplier CSV and XML into one canonicalOrderwith the data mapper, persists to MySQL, archives each file, and emails a scheduled daily summary. Built as two integrations.What's included
en/docs/guides/tutorials/social-media.mden/docs/guides/tutorials/file-order-hub.mden/static/img/guides/tutorials/social-media/*anden/static/img/guides/tutorials/order-hub/*(screenshots + hand-built architecture SVGs)en/sidebars.ts— both tutorials registered under TutorialsSummary by CodeRabbit