Skip to content

Create Custom Certificates.md #303

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 7, 2025
Merged

Create Custom Certificates.md #303

merged 1 commit into from
Apr 7, 2025

Conversation

mahajantejas
Copy link
Collaborator

@mahajantejas mahajantejas commented Apr 7, 2025

added the documentation for using certificates feature,

Summary by CodeRabbit

  • New Features

    • Introduced a custom certificates and badges feature (currently in trial) that enables organizations to generate personalized documents based on specified criteria.
  • Documentation

    • Added a comprehensive guide detailing the setup and configuration process required to leverage the new feature, including necessary integrations and best practices for personalized outputs.

added the documentation for using certificates feature,
Copy link

coderabbitai bot commented Apr 7, 2025

Walkthrough

A new documentation file has been added that details the custom certificates feature for Glific. The document explains how organizations can upload multiple certificate or badge templates and personalize them with user data. It outlines the steps necessary to configure Google Cloud services (Slides and Drive APIs), create a service account with editor permissions, and generate a JSON key for integration. Additionally, the guide covers instructions for template modifications, certificate generation via a webhook, and error handling procedures.

Changes

File(s) Change Summary
docs/3. Product Features/Custom Certificates.md Added a new guide that describes the setup and usage of the custom certificates feature, including details on uploading templates, integrating with Google Cloud services, and handling errors.

Sequence Diagram(s)

sequenceDiagram
    participant Org as Organization
    participant Glific as Glific Platform
    participant Webhook as Certificate Generator (Webhook)
    participant Slides as Google Slides API

    Org->>Glific: Request certificate generation
    Glific->>Webhook: Trigger generation process with user data & template info
    Webhook->>Slides: Call API to fill template placeholders
    Slides-->>Webhook: Return processed certificate
    Webhook-->>Glific: Provide certificate URL/data or error info
    Glific-->>Org: Deliver generated certificate or error message
Loading

Poem

Hop, hop, through bytes and code,
I, the rabbit, bring a new road.
Certificates bloom with API might,
Templates dance in digital light.
Errors scurry, and success takes flight!
Celebrate the changes with delight!


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

github-actions bot commented Apr 7, 2025

@github-actions github-actions bot temporarily deployed to pull request April 7, 2025 09:57 Inactive
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (21)
docs/3. Product Features/Custom Certificates.md (21)

6-6: Hyphenate Compound Modifiers:
On line 6, the phrase "contact specific details" should be hyphenated to "contact-specific details" to improve clarity and correctness.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~6-~6: When ‘contact-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...e completion" details or any other such contact specific details be printed on the certificates ...

(SPECIFIC_HYPHEN)


9-9: Punctuation and Link Accessibility:
On line 9, consider inserting a comma after "trial feature" to aid readability. Additionally, the sentence would benefit from a rephrasing for brevity (e.g., replacing "in order to access the screens where certificate templates can be added" with a more concise alternative). Also, consider converting the email address [email protected] into a mailto link for enhanced accessibility.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~9-~9: A comma might be missing here.
Context: ... feature is released as a trial feature and as a result cannot be accessed by all o...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~9-~9: A comma might be missing here.
Context: ...is released as a trial feature and as a result cannot be accessed by all orgs using Gl...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[style] ~9-~9: Consider a shorter alternative to avoid wordiness.
Context: ... to be enabled for a particular account in order to access the screens where certificate te...

(IN_ORDER_TO_PREMIUM)

🪛 markdownlint-cli2 (0.17.2)

9-9: Bare URL used
null

(MD034, no-bare-urls)


30-30: Refine Instructional Wording:
On line 30, rather than "Give the service account an appropriate name", consider replacing it with "Provide the service account a descriptive name" to avoid redundancy and improve clarity.

🧰 Tools
🪛 LanguageTool

[style] ~30-~30: Try using a synonym here to strengthen your writing.
Context: ...-504f-4c1a-99ec-e33dac660493" /> - c. Give the service account an appropriate name...

(GIVE_PROVIDE)


31-31: Typographical Correction:
On line 31, there is a duplicate word ("the the"). Please remove the extra "the" so that it reads: "Give the “editor” access and complete the creation."

🧰 Tools
🪛 LanguageTool

[duplication] ~31-~31: Possible typo: you repeated a word.
Context: ...account an appropriate name. - d. Give the the “editor” access and complete the creati...

(ENGLISH_WORD_REPEAT_RULE)


51-51: Heading Punctuation:
On line 51, the heading "For best results:" contains a trailing colon. Removing the colon (i.e. using "For best results") will adhere to markdown style guidelines.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

51-51: Trailing punctuation in heading
Punctuation: ':'

(MD026, no-trailing-punctuation)


52-53: Article Inclusion for Consistency:
On line 53, consider adding the article "a" so that it reads "Use a resolution of 816 x 1056 px" for portrait certificates. This improves grammatical completeness.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~53-~53: You might be missing the article “a” here.
Context: ...00 px. - Portrait certificates: Use resolution of 816 x 1056 px - Badges: Use a sq...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


59-59: Proper Noun Capitalization:
On line 59, update "google slide" to "Google Slide" to correctly capitalize the proper noun.

🧰 Tools
🪛 LanguageTool

[grammar] ~59-~59: “Google” is a proper noun and needs to be capitalized.
Context: ...> To change the page dimensions for a google slide 1. Go to file -> page setup -...

(A_GOOGLE)


67-67: Terminology Consistency:
On line 67, replace "softwares" with "software" since "software" is uncountable.

🧰 Tools
🪛 LanguageTool

[grammar] ~67-~67: In standard English, the noun “softwares” is uncountable. Consider using an alternative.
Context: ... certificates created on canva or other softwares, export the designs as “ppt” and save i...

(SOFTWARES)


81-81: Capitalize Proper Noun in Descriptions:
On line 81, update "google slide template" to "Google Slide template" for consistency in proper noun capitalization.

🧰 Tools
🪛 LanguageTool

[grammar] ~81-~81: “Google” is a proper noun and needs to be capitalized.
Context: ... 8. Certificate url is the link to the google slide template taken by copying the lin...

(A_GOOGLE)


85-85: Consistent Capitalization for Brand Names:
On line 85, ensure that "google service account’s client email address" has "Google" capitalized.

🧰 Tools
🪛 LanguageTool

[grammar] ~85-~85: “Google” is a proper noun and needs to be capitalized.
Context: ...il id. 9. Provide editor access to the google service account’s client email address....

(A_GOOGLE)


123-125: Clarify Placeholder Instructions:
Around line 125, the sentence regarding placeholders is somewhat convoluted. Consider rephrasing it as:
"Ensure that the placeholders on the template match the replacement texts specified in the webhook function body."
This revision will make the instruction clearer.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~125-~125: Possible missing preposition found.
Context: ...holder replacement texts being referred in the webhook function body are matching....

(AI_EN_LECTOR_MISSING_PREPOSITION)


127-128: Grammar Correction in Descriptive Text:
On line 127, the phrase "Google Cloud media url is can be called by" contains a redundant "is." Removing it so that it reads "Google Cloud media url can be called by" will improve clarity.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~127-~127: “is” is redundant in this context. Write “can be called” instead.
Context: ...ame defined, the Google Cloud media url is can be called by `@results.webhookresul...

(IS_CAN_BE_CAN_BE)


140-140: Typographical Correction for Consistency:
On line 140, there appears to be a double period in "@..". Please verify if only a single period is intended (e.g., "@." or simply "@" if that is the condition meant).

🧰 Tools
🪛 LanguageTool

[typographical] ~140-~140: Two consecutive dots
Context: ...ue if any of the variables start with “@..” which indicates that the variable is e...

(DOUBLE_PUNCTUATION)


152-152: Grammar and Capitalization Enhancements:
On line 152, update "google drive" to "Google Drive" and consider rephrasing "is not able to perform" to "cannot perform" for improved clarity and conciseness.

🧰 Tools
🪛 LanguageTool

[grammar] ~152-~152: Did you mean “Google Drive”?
Context: ...icates the location of the slide in the google drive and if the location is not present, the...

(GOOGLE_PRODUCTS)


[style] ~152-~152: As a shorter alternative for ‘able to’, consider using “can not”.
Context: ... location is not present, then the code is not able to perform the steps like create a copy an...

(BE_ABLE_TO)


[uncategorized] ~152-~152: This verb may not be in the correct form. Consider using a different form for this context.
Context: ...e is not able to perform the steps like create a copy and replace the placeholder text...

(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)


[uncategorized] ~152-~152: This verb may not be in the correct form. Consider using a different form for this context.
Context: ...erform the steps like create a copy and replace the placeholder text with the variables...

(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)


155-155: Instructional Clarity:
On line 155, the instruction could be made clearer by rephrasing it to, for example, "Copy the root slide as slides 2 and 3." This version is more direct and easier to follow.

🧰 Tools
🪛 LanguageTool

[grammar] ~155-~155: A word may be missing after ‘a’.
Context: ...om the webhook. Steps to resolve - a. Copy the root slide as slide 2 and slid...

(THE_SENT_END)


164-164: Enhance Clarity in Error Handling Instructions:
On line 164, update "google drive" to "Google Drive" and consider rewording the sentence for clarity. For example:
"Ensure that the design template is created in the Google Drive account linked to the organization's email address."

🧰 Tools
🪛 LanguageTool

[grammar] ~164-~164: A word may be missing after ‘a’.
Context: ...ission Issues” Steps to resolve - a. Ensure that the design template is crea...

(THE_SENT_END)


[grammar] ~164-~164: Did you mean “Google Drive”?
Context: ...t the design template is created in the google drive account linked to the org’s email id. -...

(GOOGLE_PRODUCTS)


103-111: Specify Language for Code Blocks:
For the fenced code block starting on line 103, please specify a language (for example, ```json) to enable appropriate syntax highlighting.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

103-103: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


119-124: Specify Language for Code Blocks:
Similarly, for the fenced code block starting on line 119, add a language identifier (such as ```json) to improve clarity and maintain markdown best practices.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

119-119: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


133-133: Maintain Consistent Heading Hierarchy:
On line 133, the heading level advances directly from a higher-level (e.g., from "## Error Handling") to "####". Consider reducing this to "###" to maintain a consistent and logical heading hierarchy within the document.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

133-133: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4

(MD001, heading-increment)


143-143: Adjust Trailing Punctuation in Headings:
On line 143, verify whether the trailing punctuation (if any) in the heading "Error 1: URL ending with slide=id.p" is intentional. Removing unnecessary punctuation may improve compliance with markdown style guidelines.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

143-143: Trailing punctuation in heading
Punctuation: '.'

(MD026, no-trailing-punctuation)


151-152: Use Proper Structural Headings Instead of Emphasis:
The phrase "Steps to resolve" on line 151 is currently formatted as bold text. For better semantic structure and consistency, consider converting it to a proper heading (e.g., "### Steps to resolve").

🧰 Tools
🪛 LanguageTool

[grammar] ~152-~152: Did you mean “Google Drive”?
Context: ...icates the location of the slide in the google drive and if the location is not present, the...

(GOOGLE_PRODUCTS)


[style] ~152-~152: As a shorter alternative for ‘able to’, consider using “can not”.
Context: ... location is not present, then the code is not able to perform the steps like create a copy an...

(BE_ABLE_TO)


[uncategorized] ~152-~152: This verb may not be in the correct form. Consider using a different form for this context.
Context: ...e is not able to perform the steps like create a copy and replace the placeholder text...

(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)


[uncategorized] ~152-~152: This verb may not be in the correct form. Consider using a different form for this context.
Context: ...erform the steps like create a copy and replace the placeholder text with the variables...

(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f3bcce5 and 5b1c3ed.

📒 Files selected for processing (1)
  • docs/3. Product Features/Custom Certificates.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/3. Product Features/Custom Certificates.md

[uncategorized] ~6-~6: When ‘contact-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...e completion" details or any other such contact specific details be printed on the certificates ...

(SPECIFIC_HYPHEN)


[uncategorized] ~9-~9: A comma might be missing here.
Context: ... feature is released as a trial feature and as a result cannot be accessed by all o...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~9-~9: A comma might be missing here.
Context: ...is released as a trial feature and as a result cannot be accessed by all orgs using Gl...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[style] ~9-~9: Consider a shorter alternative to avoid wordiness.
Context: ... to be enabled for a particular account in order to access the screens where certificate te...

(IN_ORDER_TO_PREMIUM)


[style] ~30-~30: Try using a synonym here to strengthen your writing.
Context: ...-504f-4c1a-99ec-e33dac660493" /> - c. Give the service account an appropriate name...

(GIVE_PROVIDE)


[duplication] ~31-~31: Possible typo: you repeated a word.
Context: ...account an appropriate name. - d. Give the the “editor” access and complete the creati...

(ENGLISH_WORD_REPEAT_RULE)


[uncategorized] ~53-~53: You might be missing the article “a” here.
Context: ...00 px. - Portrait certificates: Use resolution of 816 x 1056 px - Badges: Use a sq...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


[grammar] ~59-~59: “Google” is a proper noun and needs to be capitalized.
Context: ...> To change the page dimensions for a google slide 1. Go to file -> page setup -...

(A_GOOGLE)


[grammar] ~67-~67: In standard English, the noun “softwares” is uncountable. Consider using an alternative.
Context: ... certificates created on canva or other softwares, export the designs as “ppt” and save i...

(SOFTWARES)


[grammar] ~81-~81: “Google” is a proper noun and needs to be capitalized.
Context: ... 8. Certificate url is the link to the google slide template taken by copying the lin...

(A_GOOGLE)


[grammar] ~85-~85: “Google” is a proper noun and needs to be capitalized.
Context: ...il id. 9. Provide editor access to the google service account’s client email address....

(A_GOOGLE)


[uncategorized] ~125-~125: Possible missing preposition found.
Context: ...holder replacement texts being referred in the webhook function body are matching....

(AI_EN_LECTOR_MISSING_PREPOSITION)


[uncategorized] ~127-~127: “is” is redundant in this context. Write “can be called” instead.
Context: ...ame defined, the Google Cloud media url is can be called by `@results.webhookresul...

(IS_CAN_BE_CAN_BE)


[typographical] ~140-~140: Two consecutive dots
Context: ...ue if any of the variables start with “@..” which indicates that the variable is e...

(DOUBLE_PUNCTUATION)


[grammar] ~152-~152: Did you mean “Google Drive”?
Context: ...icates the location of the slide in the google drive and if the location is not present, the...

(GOOGLE_PRODUCTS)


[style] ~152-~152: As a shorter alternative for ‘able to’, consider using “can not”.
Context: ... location is not present, then the code is not able to perform the steps like create a copy an...

(BE_ABLE_TO)


[uncategorized] ~152-~152: This verb may not be in the correct form. Consider using a different form for this context.
Context: ...e is not able to perform the steps like create a copy and replace the placeholder text...

(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)


[uncategorized] ~152-~152: This verb may not be in the correct form. Consider using a different form for this context.
Context: ...erform the steps like create a copy and replace the placeholder text with the variables...

(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)


[grammar] ~155-~155: A word may be missing after ‘a’.
Context: ...om the webhook. Steps to resolve - a. Copy the root slide as slide 2 and slid...

(THE_SENT_END)


[grammar] ~164-~164: A word may be missing after ‘a’.
Context: ...ission Issues” Steps to resolve - a. Ensure that the design template is crea...

(THE_SENT_END)


[grammar] ~164-~164: Did you mean “Google Drive”?
Context: ...t the design template is created in the google drive account linked to the org’s email id. -...

(GOOGLE_PRODUCTS)

🪛 markdownlint-cli2 (0.17.2)
docs/3. Product Features/Custom Certificates.md

9-9: Bare URL used
null

(MD034, no-bare-urls)


51-51: Trailing punctuation in heading
Punctuation: ':'

(MD026, no-trailing-punctuation)


103-103: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


119-119: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


133-133: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4

(MD001, heading-increment)


143-143: Trailing punctuation in heading
Punctuation: '.'

(MD026, no-trailing-punctuation)


154-154: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


163-163: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)

🔇 Additional comments (1)
docs/3. Product Features/Custom Certificates.md (1)

1-10: Overall Document Structure and Clarity:
The document is comprehensive and well-organized, offering detailed step‐by‐step guidance for setting up and using the custom certificates feature. As you proceed, please ensure consistency in tone, proper grammar, and concise phrasing throughout the document.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~6-~6: When ‘contact-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...e completion" details or any other such contact specific details be printed on the certificates ...

(SPECIFIC_HYPHEN)


[uncategorized] ~9-~9: A comma might be missing here.
Context: ... feature is released as a trial feature and as a result cannot be accessed by all o...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~9-~9: A comma might be missing here.
Context: ...is released as a trial feature and as a result cannot be accessed by all orgs using Gl...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[style] ~9-~9: Consider a shorter alternative to avoid wordiness.
Context: ... to be enabled for a particular account in order to access the screens where certificate te...

(IN_ORDER_TO_PREMIUM)

🪛 markdownlint-cli2 (0.17.2)

9-9: Bare URL used
null

(MD034, no-bare-urls)

@SangeetaMishr SangeetaMishr merged commit 52f002f into main Apr 7, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants