Feat/Added a user feedback mechanism for translation quality - #48

Open
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism
Open

Feat/Added a user feedback mechanism for translation quality#48
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism

Conversation

@whatsupsumit

Copy link
Copy Markdown

#46 Its done made some changes hope you like it

Merge it if you like my work......tell me if any changes required i will implement it

image

✅ What Was Done

  1. Created New Branch
    Branch: feat/user-feedback-mechanism
    4 commits with clear, semantic commit messages
    Clean, ready for pull request
  2. Implemented Complete Feedback System

Frontend Changes:
✅ Added 👍 (thumbs up) and 👎 (thumbs down) buttons next to Copy button
✅ Created beautiful feedback modal for negative feedback
✅ Full dark mode support
✅ Smooth animations and visual feedback
✅ Message passing to background script

Backend Changes:
✅ New /v1/feedback endpoint
✅ Cloudflare KV storage integration
✅ Feedback validation and unique ID generation
✅ Proper error handling and CORS support

- Add thumbs up/down buttons next to Copy button in UI
- Implement feedback modal for negative feedback with optional comment
- Create /v1/feedback backend endpoint to store feedback
- Store feedback in Cloudflare KV with metadata
- Support both light and dark themes
- Pass original code through translation pipeline for feedback context
- Add comprehensive documentation in FEEDBACK_FEATURE.md
This enables users to report translation quality issues directly,
creating a feedback loop to improve AI prompts and translation quality.

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hi @whatsupsumit! 🎉
Welcome, and thank you for submitting your first pull request to CodeTranslateAI! We're thrilled to have your contribution.
Please make sure you've read our CONTRIBUTING.md guide. We'll review your changes shortly.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull Request Overview

Adds a complete user feedback mechanism to rate translation quality and capture optional comments, wiring frontend UI to a new backend endpoint with KV storage.

  • Adds 👍/👎 buttons and a modal for negative feedback in the UI, with dark mode support
  • Sends feedback via background script to new backend POST /v1/feedback
  • Stores feedback in Cloudflare KV; updates docs with setup and usage

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.

Show a summary per file
FileDescription
frontend/scripts/ui.jsAdds action buttons, feedback modal, and wiring to send feedback; updates styles and function signature to carry original code
frontend/scripts/content.jsPasses original selected code into injectOrUpdateTranslations for feedback context
frontend/background.jsHandles SUBMIT_FEEDBACK messages and POSTs to backend feedback endpoint
backend/src/index.tsIntroduces FEEDBACK_STORE and adds /v1/feedback route with storage in KV
backend/wrangler.jsoncBinds FEEDBACK_STORE KV namespace
README.mdDocuments the new feedback feature and setup
IMPLEMENTATION_SUMMARY.mdHigh-level implementation details for the feedback mechanism
FEEDBACK_FLOW_DIAGRAM.mdVisual flow/architecture of the feature
FEEDBACK_FEATURE.mdFeature documentation and setup instructions

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threadfrontend/background.js
Comment threadbackend/src/index.ts
Comment threadfrontend/scripts/ui.js
Comment threadFEEDBACK_FEATURE.md
Comment threadbackend/src/index.ts
@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you merge it passes the test...
and let me know if changes are required

@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you please review it and merge it
i will make further changes if you want ...but do merge this ..it will boost my confidence..😅😊😊

@dineshsutihar

Copy link
Copy Markdown
Collaborator

Hey @whatsupsumit , thanks again for your effort on this PR - the feedback feature itself is really solid

I noticed that you’ve added several .md files and also updated the main README. For this PR, those changes aren’t directly related to the feedback feature, so we should avoid mixing them in here.

If you want to improve the docs or add new guides, it’d be better to create a separate PR just for documentation. That way:

  • The feature PR stays focused and easier to review
  • You can get separate Hacktoberfest credit for your docs contributions

You can keep your current changes for the feedback functionality in this PR, and then submit another PR for the docs. Thanks for understanding, and I really appreciate your contributions!

Comment threadbackend/src/index.ts
}

// Generate a unique ID for the feedback
const feedbackId = `feedback_${Date.now()}_${Math.random().toString(36).substring(7)}`;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

line 116 could theoretically collide in very high traffic scenarios.

  • use UUID (crypto.randomUUID()) for safer uniqueness.

Sign up for freeto 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.

3 participants

@whatsupsumit@dineshsutihar
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Feat/Added a user feedback mechanism for translation quality - #48

Open
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism
Open

Feat/Added a user feedback mechanism for translation quality#48
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism

Conversation

@whatsupsumit

Copy link
Copy Markdown

#46 Its done made some changes hope you like it

Merge it if you like my work......tell me if any changes required i will implement it

image

✅ What Was Done

  1. Created New Branch
    Branch: feat/user-feedback-mechanism
    4 commits with clear, semantic commit messages
    Clean, ready for pull request
  2. Implemented Complete Feedback System

Frontend Changes:
✅ Added 👍 (thumbs up) and 👎 (thumbs down) buttons next to Copy button
✅ Created beautiful feedback modal for negative feedback
✅ Full dark mode support
✅ Smooth animations and visual feedback
✅ Message passing to background script

Backend Changes:
✅ New /v1/feedback endpoint
✅ Cloudflare KV storage integration
✅ Feedback validation and unique ID generation
✅ Proper error handling and CORS support

- Add thumbs up/down buttons next to Copy button in UI
- Implement feedback modal for negative feedback with optional comment
- Create /v1/feedback backend endpoint to store feedback
- Store feedback in Cloudflare KV with metadata
- Support both light and dark themes
- Pass original code through translation pipeline for feedback context
- Add comprehensive documentation in FEEDBACK_FEATURE.md
This enables users to report translation quality issues directly,
creating a feedback loop to improve AI prompts and translation quality.

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hi @whatsupsumit! 🎉
Welcome, and thank you for submitting your first pull request to CodeTranslateAI! We're thrilled to have your contribution.
Please make sure you've read our CONTRIBUTING.md guide. We'll review your changes shortly.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull Request Overview

Adds a complete user feedback mechanism to rate translation quality and capture optional comments, wiring frontend UI to a new backend endpoint with KV storage.

  • Adds 👍/👎 buttons and a modal for negative feedback in the UI, with dark mode support
  • Sends feedback via background script to new backend POST /v1/feedback
  • Stores feedback in Cloudflare KV; updates docs with setup and usage

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.

Show a summary per file
FileDescription
frontend/scripts/ui.jsAdds action buttons, feedback modal, and wiring to send feedback; updates styles and function signature to carry original code
frontend/scripts/content.jsPasses original selected code into injectOrUpdateTranslations for feedback context
frontend/background.jsHandles SUBMIT_FEEDBACK messages and POSTs to backend feedback endpoint
backend/src/index.tsIntroduces FEEDBACK_STORE and adds /v1/feedback route with storage in KV
backend/wrangler.jsoncBinds FEEDBACK_STORE KV namespace
README.mdDocuments the new feedback feature and setup
IMPLEMENTATION_SUMMARY.mdHigh-level implementation details for the feedback mechanism
FEEDBACK_FLOW_DIAGRAM.mdVisual flow/architecture of the feature
FEEDBACK_FEATURE.mdFeature documentation and setup instructions

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threadfrontend/background.js
Comment threadbackend/src/index.ts
Comment threadfrontend/scripts/ui.js
Comment threadFEEDBACK_FEATURE.md
Comment threadbackend/src/index.ts
@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you merge it passes the test...
and let me know if changes are required

@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you please review it and merge it
i will make further changes if you want ...but do merge this ..it will boost my confidence..😅😊😊

@dineshsutihar

Copy link
Copy Markdown
Collaborator

Hey @whatsupsumit , thanks again for your effort on this PR - the feedback feature itself is really solid

I noticed that you’ve added several .md files and also updated the main README. For this PR, those changes aren’t directly related to the feedback feature, so we should avoid mixing them in here.

If you want to improve the docs or add new guides, it’d be better to create a separate PR just for documentation. That way:

  • The feature PR stays focused and easier to review
  • You can get separate Hacktoberfest credit for your docs contributions

You can keep your current changes for the feedback functionality in this PR, and then submit another PR for the docs. Thanks for understanding, and I really appreciate your contributions!

Comment threadbackend/src/index.ts
}

// Generate a unique ID for the feedback
const feedbackId = `feedback_${Date.now()}_${Math.random().toString(36).substring(7)}`;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

line 116 could theoretically collide in very high traffic scenarios.

  • use UUID (crypto.randomUUID()) for safer uniqueness.

Sign up for freeto 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.

3 participants

@whatsupsumit@dineshsutihar
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Feat/Added a user feedback mechanism for translation quality - #48

Open
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism
Open

Feat/Added a user feedback mechanism for translation quality#48
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism

Conversation

@whatsupsumit

Copy link
Copy Markdown

#46 Its done made some changes hope you like it

Merge it if you like my work......tell me if any changes required i will implement it

image

✅ What Was Done

  1. Created New Branch
    Branch: feat/user-feedback-mechanism
    4 commits with clear, semantic commit messages
    Clean, ready for pull request
  2. Implemented Complete Feedback System

Frontend Changes:
✅ Added 👍 (thumbs up) and 👎 (thumbs down) buttons next to Copy button
✅ Created beautiful feedback modal for negative feedback
✅ Full dark mode support
✅ Smooth animations and visual feedback
✅ Message passing to background script

Backend Changes:
✅ New /v1/feedback endpoint
✅ Cloudflare KV storage integration
✅ Feedback validation and unique ID generation
✅ Proper error handling and CORS support

- Add thumbs up/down buttons next to Copy button in UI
- Implement feedback modal for negative feedback with optional comment
- Create /v1/feedback backend endpoint to store feedback
- Store feedback in Cloudflare KV with metadata
- Support both light and dark themes
- Pass original code through translation pipeline for feedback context
- Add comprehensive documentation in FEEDBACK_FEATURE.md
This enables users to report translation quality issues directly,
creating a feedback loop to improve AI prompts and translation quality.

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hi @whatsupsumit! 🎉
Welcome, and thank you for submitting your first pull request to CodeTranslateAI! We're thrilled to have your contribution.
Please make sure you've read our CONTRIBUTING.md guide. We'll review your changes shortly.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull Request Overview

Adds a complete user feedback mechanism to rate translation quality and capture optional comments, wiring frontend UI to a new backend endpoint with KV storage.

  • Adds 👍/👎 buttons and a modal for negative feedback in the UI, with dark mode support
  • Sends feedback via background script to new backend POST /v1/feedback
  • Stores feedback in Cloudflare KV; updates docs with setup and usage

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.

Show a summary per file
FileDescription
frontend/scripts/ui.jsAdds action buttons, feedback modal, and wiring to send feedback; updates styles and function signature to carry original code
frontend/scripts/content.jsPasses original selected code into injectOrUpdateTranslations for feedback context
frontend/background.jsHandles SUBMIT_FEEDBACK messages and POSTs to backend feedback endpoint
backend/src/index.tsIntroduces FEEDBACK_STORE and adds /v1/feedback route with storage in KV
backend/wrangler.jsoncBinds FEEDBACK_STORE KV namespace
README.mdDocuments the new feedback feature and setup
IMPLEMENTATION_SUMMARY.mdHigh-level implementation details for the feedback mechanism
FEEDBACK_FLOW_DIAGRAM.mdVisual flow/architecture of the feature
FEEDBACK_FEATURE.mdFeature documentation and setup instructions

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threadfrontend/background.js
Comment threadbackend/src/index.ts
Comment threadfrontend/scripts/ui.js
Comment threadFEEDBACK_FEATURE.md
Comment threadbackend/src/index.ts
@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you merge it passes the test...
and let me know if changes are required

@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you please review it and merge it
i will make further changes if you want ...but do merge this ..it will boost my confidence..😅😊😊

@dineshsutihar

Copy link
Copy Markdown
Collaborator

Hey @whatsupsumit , thanks again for your effort on this PR - the feedback feature itself is really solid

I noticed that you’ve added several .md files and also updated the main README. For this PR, those changes aren’t directly related to the feedback feature, so we should avoid mixing them in here.

If you want to improve the docs or add new guides, it’d be better to create a separate PR just for documentation. That way:

  • The feature PR stays focused and easier to review
  • You can get separate Hacktoberfest credit for your docs contributions

You can keep your current changes for the feedback functionality in this PR, and then submit another PR for the docs. Thanks for understanding, and I really appreciate your contributions!

Comment threadbackend/src/index.ts
}

// Generate a unique ID for the feedback
const feedbackId = `feedback_${Date.now()}_${Math.random().toString(36).substring(7)}`;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

line 116 could theoretically collide in very high traffic scenarios.

  • use UUID (crypto.randomUUID()) for safer uniqueness.

Sign up for freeto 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.

3 participants

@whatsupsumit@dineshsutihar
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Feat/Added a user feedback mechanism for translation quality - #48

Open
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism
Open

Feat/Added a user feedback mechanism for translation quality#48
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism

Conversation

@whatsupsumit

Copy link
Copy Markdown

#46 Its done made some changes hope you like it

Merge it if you like my work......tell me if any changes required i will implement it

image

✅ What Was Done

  1. Created New Branch
    Branch: feat/user-feedback-mechanism
    4 commits with clear, semantic commit messages
    Clean, ready for pull request
  2. Implemented Complete Feedback System

Frontend Changes:
✅ Added 👍 (thumbs up) and 👎 (thumbs down) buttons next to Copy button
✅ Created beautiful feedback modal for negative feedback
✅ Full dark mode support
✅ Smooth animations and visual feedback
✅ Message passing to background script

Backend Changes:
✅ New /v1/feedback endpoint
✅ Cloudflare KV storage integration
✅ Feedback validation and unique ID generation
✅ Proper error handling and CORS support

- Add thumbs up/down buttons next to Copy button in UI
- Implement feedback modal for negative feedback with optional comment
- Create /v1/feedback backend endpoint to store feedback
- Store feedback in Cloudflare KV with metadata
- Support both light and dark themes
- Pass original code through translation pipeline for feedback context
- Add comprehensive documentation in FEEDBACK_FEATURE.md
This enables users to report translation quality issues directly,
creating a feedback loop to improve AI prompts and translation quality.

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hi @whatsupsumit! 🎉
Welcome, and thank you for submitting your first pull request to CodeTranslateAI! We're thrilled to have your contribution.
Please make sure you've read our CONTRIBUTING.md guide. We'll review your changes shortly.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull Request Overview

Adds a complete user feedback mechanism to rate translation quality and capture optional comments, wiring frontend UI to a new backend endpoint with KV storage.

  • Adds 👍/👎 buttons and a modal for negative feedback in the UI, with dark mode support
  • Sends feedback via background script to new backend POST /v1/feedback
  • Stores feedback in Cloudflare KV; updates docs with setup and usage

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.

Show a summary per file
FileDescription
frontend/scripts/ui.jsAdds action buttons, feedback modal, and wiring to send feedback; updates styles and function signature to carry original code
frontend/scripts/content.jsPasses original selected code into injectOrUpdateTranslations for feedback context
frontend/background.jsHandles SUBMIT_FEEDBACK messages and POSTs to backend feedback endpoint
backend/src/index.tsIntroduces FEEDBACK_STORE and adds /v1/feedback route with storage in KV
backend/wrangler.jsoncBinds FEEDBACK_STORE KV namespace
README.mdDocuments the new feedback feature and setup
IMPLEMENTATION_SUMMARY.mdHigh-level implementation details for the feedback mechanism
FEEDBACK_FLOW_DIAGRAM.mdVisual flow/architecture of the feature
FEEDBACK_FEATURE.mdFeature documentation and setup instructions

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threadfrontend/background.js
Comment threadbackend/src/index.ts
Comment threadfrontend/scripts/ui.js
Comment threadFEEDBACK_FEATURE.md
Comment threadbackend/src/index.ts
@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you merge it passes the test...
and let me know if changes are required

@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you please review it and merge it
i will make further changes if you want ...but do merge this ..it will boost my confidence..😅😊😊

@dineshsutihar

Copy link
Copy Markdown
Collaborator

Hey @whatsupsumit , thanks again for your effort on this PR - the feedback feature itself is really solid

I noticed that you’ve added several .md files and also updated the main README. For this PR, those changes aren’t directly related to the feedback feature, so we should avoid mixing them in here.

If you want to improve the docs or add new guides, it’d be better to create a separate PR just for documentation. That way:

  • The feature PR stays focused and easier to review
  • You can get separate Hacktoberfest credit for your docs contributions

You can keep your current changes for the feedback functionality in this PR, and then submit another PR for the docs. Thanks for understanding, and I really appreciate your contributions!

Comment threadbackend/src/index.ts
}

// Generate a unique ID for the feedback
const feedbackId = `feedback_${Date.now()}_${Math.random().toString(36).substring(7)}`;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

line 116 could theoretically collide in very high traffic scenarios.

  • use UUID (crypto.randomUUID()) for safer uniqueness.

Sign up for freeto 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.

3 participants

@whatsupsumit@dineshsutihar
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Feat/Added a user feedback mechanism for translation quality - #48

Open
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism
Open

Feat/Added a user feedback mechanism for translation quality#48
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism

Conversation

@whatsupsumit

Copy link
Copy Markdown

#46 Its done made some changes hope you like it

Merge it if you like my work......tell me if any changes required i will implement it

image

✅ What Was Done

  1. Created New Branch
    Branch: feat/user-feedback-mechanism
    4 commits with clear, semantic commit messages
    Clean, ready for pull request
  2. Implemented Complete Feedback System

Frontend Changes:
✅ Added 👍 (thumbs up) and 👎 (thumbs down) buttons next to Copy button
✅ Created beautiful feedback modal for negative feedback
✅ Full dark mode support
✅ Smooth animations and visual feedback
✅ Message passing to background script

Backend Changes:
✅ New /v1/feedback endpoint
✅ Cloudflare KV storage integration
✅ Feedback validation and unique ID generation
✅ Proper error handling and CORS support

- Add thumbs up/down buttons next to Copy button in UI
- Implement feedback modal for negative feedback with optional comment
- Create /v1/feedback backend endpoint to store feedback
- Store feedback in Cloudflare KV with metadata
- Support both light and dark themes
- Pass original code through translation pipeline for feedback context
- Add comprehensive documentation in FEEDBACK_FEATURE.md
This enables users to report translation quality issues directly,
creating a feedback loop to improve AI prompts and translation quality.

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hi @whatsupsumit! 🎉
Welcome, and thank you for submitting your first pull request to CodeTranslateAI! We're thrilled to have your contribution.
Please make sure you've read our CONTRIBUTING.md guide. We'll review your changes shortly.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull Request Overview

Adds a complete user feedback mechanism to rate translation quality and capture optional comments, wiring frontend UI to a new backend endpoint with KV storage.

  • Adds 👍/👎 buttons and a modal for negative feedback in the UI, with dark mode support
  • Sends feedback via background script to new backend POST /v1/feedback
  • Stores feedback in Cloudflare KV; updates docs with setup and usage

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.

Show a summary per file
FileDescription
frontend/scripts/ui.jsAdds action buttons, feedback modal, and wiring to send feedback; updates styles and function signature to carry original code
frontend/scripts/content.jsPasses original selected code into injectOrUpdateTranslations for feedback context
frontend/background.jsHandles SUBMIT_FEEDBACK messages and POSTs to backend feedback endpoint
backend/src/index.tsIntroduces FEEDBACK_STORE and adds /v1/feedback route with storage in KV
backend/wrangler.jsoncBinds FEEDBACK_STORE KV namespace
README.mdDocuments the new feedback feature and setup
IMPLEMENTATION_SUMMARY.mdHigh-level implementation details for the feedback mechanism
FEEDBACK_FLOW_DIAGRAM.mdVisual flow/architecture of the feature
FEEDBACK_FEATURE.mdFeature documentation and setup instructions

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threadfrontend/background.js
Comment threadbackend/src/index.ts
Comment threadfrontend/scripts/ui.js
Comment threadFEEDBACK_FEATURE.md
Comment threadbackend/src/index.ts
@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you merge it passes the test...
and let me know if changes are required

@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you please review it and merge it
i will make further changes if you want ...but do merge this ..it will boost my confidence..😅😊😊

@dineshsutihar

Copy link
Copy Markdown
Collaborator

Hey @whatsupsumit , thanks again for your effort on this PR - the feedback feature itself is really solid

I noticed that you’ve added several .md files and also updated the main README. For this PR, those changes aren’t directly related to the feedback feature, so we should avoid mixing them in here.

If you want to improve the docs or add new guides, it’d be better to create a separate PR just for documentation. That way:

  • The feature PR stays focused and easier to review
  • You can get separate Hacktoberfest credit for your docs contributions

You can keep your current changes for the feedback functionality in this PR, and then submit another PR for the docs. Thanks for understanding, and I really appreciate your contributions!

Comment threadbackend/src/index.ts
}

// Generate a unique ID for the feedback
const feedbackId = `feedback_${Date.now()}_${Math.random().toString(36).substring(7)}`;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

line 116 could theoretically collide in very high traffic scenarios.

  • use UUID (crypto.randomUUID()) for safer uniqueness.

Sign up for freeto 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.

3 participants

@whatsupsumit@dineshsutihar
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Feat/Added a user feedback mechanism for translation quality - #48

Open
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism
Open

Feat/Added a user feedback mechanism for translation quality#48
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism

Conversation

@whatsupsumit

Copy link
Copy Markdown

#46 Its done made some changes hope you like it

Merge it if you like my work......tell me if any changes required i will implement it

image

✅ What Was Done

  1. Created New Branch
    Branch: feat/user-feedback-mechanism
    4 commits with clear, semantic commit messages
    Clean, ready for pull request
  2. Implemented Complete Feedback System

Frontend Changes:
✅ Added 👍 (thumbs up) and 👎 (thumbs down) buttons next to Copy button
✅ Created beautiful feedback modal for negative feedback
✅ Full dark mode support
✅ Smooth animations and visual feedback
✅ Message passing to background script

Backend Changes:
✅ New /v1/feedback endpoint
✅ Cloudflare KV storage integration
✅ Feedback validation and unique ID generation
✅ Proper error handling and CORS support

- Add thumbs up/down buttons next to Copy button in UI
- Implement feedback modal for negative feedback with optional comment
- Create /v1/feedback backend endpoint to store feedback
- Store feedback in Cloudflare KV with metadata
- Support both light and dark themes
- Pass original code through translation pipeline for feedback context
- Add comprehensive documentation in FEEDBACK_FEATURE.md
This enables users to report translation quality issues directly,
creating a feedback loop to improve AI prompts and translation quality.

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hi @whatsupsumit! 🎉
Welcome, and thank you for submitting your first pull request to CodeTranslateAI! We're thrilled to have your contribution.
Please make sure you've read our CONTRIBUTING.md guide. We'll review your changes shortly.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull Request Overview

Adds a complete user feedback mechanism to rate translation quality and capture optional comments, wiring frontend UI to a new backend endpoint with KV storage.

  • Adds 👍/👎 buttons and a modal for negative feedback in the UI, with dark mode support
  • Sends feedback via background script to new backend POST /v1/feedback
  • Stores feedback in Cloudflare KV; updates docs with setup and usage

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.

Show a summary per file
FileDescription
frontend/scripts/ui.jsAdds action buttons, feedback modal, and wiring to send feedback; updates styles and function signature to carry original code
frontend/scripts/content.jsPasses original selected code into injectOrUpdateTranslations for feedback context
frontend/background.jsHandles SUBMIT_FEEDBACK messages and POSTs to backend feedback endpoint
backend/src/index.tsIntroduces FEEDBACK_STORE and adds /v1/feedback route with storage in KV
backend/wrangler.jsoncBinds FEEDBACK_STORE KV namespace
README.mdDocuments the new feedback feature and setup
IMPLEMENTATION_SUMMARY.mdHigh-level implementation details for the feedback mechanism
FEEDBACK_FLOW_DIAGRAM.mdVisual flow/architecture of the feature
FEEDBACK_FEATURE.mdFeature documentation and setup instructions

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threadfrontend/background.js
Comment threadbackend/src/index.ts
Comment threadfrontend/scripts/ui.js
Comment threadFEEDBACK_FEATURE.md
Comment threadbackend/src/index.ts
@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you merge it passes the test...
and let me know if changes are required

@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you please review it and merge it
i will make further changes if you want ...but do merge this ..it will boost my confidence..😅😊😊

@dineshsutihar

Copy link
Copy Markdown
Collaborator

Hey @whatsupsumit , thanks again for your effort on this PR - the feedback feature itself is really solid

I noticed that you’ve added several .md files and also updated the main README. For this PR, those changes aren’t directly related to the feedback feature, so we should avoid mixing them in here.

If you want to improve the docs or add new guides, it’d be better to create a separate PR just for documentation. That way:

  • The feature PR stays focused and easier to review
  • You can get separate Hacktoberfest credit for your docs contributions

You can keep your current changes for the feedback functionality in this PR, and then submit another PR for the docs. Thanks for understanding, and I really appreciate your contributions!

Comment threadbackend/src/index.ts
}

// Generate a unique ID for the feedback
const feedbackId = `feedback_${Date.now()}_${Math.random().toString(36).substring(7)}`;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

line 116 could theoretically collide in very high traffic scenarios.

  • use UUID (crypto.randomUUID()) for safer uniqueness.

Sign up for freeto 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.

3 participants

@whatsupsumit@dineshsutihar
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Feat/Added a user feedback mechanism for translation quality - #48

Open
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism
Open

Feat/Added a user feedback mechanism for translation quality#48
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism

Conversation

@whatsupsumit

Copy link
Copy Markdown

#46 Its done made some changes hope you like it

Merge it if you like my work......tell me if any changes required i will implement it

image

✅ What Was Done

  1. Created New Branch
    Branch: feat/user-feedback-mechanism
    4 commits with clear, semantic commit messages
    Clean, ready for pull request
  2. Implemented Complete Feedback System

Frontend Changes:
✅ Added 👍 (thumbs up) and 👎 (thumbs down) buttons next to Copy button
✅ Created beautiful feedback modal for negative feedback
✅ Full dark mode support
✅ Smooth animations and visual feedback
✅ Message passing to background script

Backend Changes:
✅ New /v1/feedback endpoint
✅ Cloudflare KV storage integration
✅ Feedback validation and unique ID generation
✅ Proper error handling and CORS support

- Add thumbs up/down buttons next to Copy button in UI
- Implement feedback modal for negative feedback with optional comment
- Create /v1/feedback backend endpoint to store feedback
- Store feedback in Cloudflare KV with metadata
- Support both light and dark themes
- Pass original code through translation pipeline for feedback context
- Add comprehensive documentation in FEEDBACK_FEATURE.md
This enables users to report translation quality issues directly,
creating a feedback loop to improve AI prompts and translation quality.

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hi @whatsupsumit! 🎉
Welcome, and thank you for submitting your first pull request to CodeTranslateAI! We're thrilled to have your contribution.
Please make sure you've read our CONTRIBUTING.md guide. We'll review your changes shortly.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull Request Overview

Adds a complete user feedback mechanism to rate translation quality and capture optional comments, wiring frontend UI to a new backend endpoint with KV storage.

  • Adds 👍/👎 buttons and a modal for negative feedback in the UI, with dark mode support
  • Sends feedback via background script to new backend POST /v1/feedback
  • Stores feedback in Cloudflare KV; updates docs with setup and usage

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.

Show a summary per file
FileDescription
frontend/scripts/ui.jsAdds action buttons, feedback modal, and wiring to send feedback; updates styles and function signature to carry original code
frontend/scripts/content.jsPasses original selected code into injectOrUpdateTranslations for feedback context
frontend/background.jsHandles SUBMIT_FEEDBACK messages and POSTs to backend feedback endpoint
backend/src/index.tsIntroduces FEEDBACK_STORE and adds /v1/feedback route with storage in KV
backend/wrangler.jsoncBinds FEEDBACK_STORE KV namespace
README.mdDocuments the new feedback feature and setup
IMPLEMENTATION_SUMMARY.mdHigh-level implementation details for the feedback mechanism
FEEDBACK_FLOW_DIAGRAM.mdVisual flow/architecture of the feature
FEEDBACK_FEATURE.mdFeature documentation and setup instructions

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threadfrontend/background.js
Comment threadbackend/src/index.ts
Comment threadfrontend/scripts/ui.js
Comment threadFEEDBACK_FEATURE.md
Comment threadbackend/src/index.ts
@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you merge it passes the test...
and let me know if changes are required

@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you please review it and merge it
i will make further changes if you want ...but do merge this ..it will boost my confidence..😅😊😊

@dineshsutihar

Copy link
Copy Markdown
Collaborator

Hey @whatsupsumit , thanks again for your effort on this PR - the feedback feature itself is really solid

I noticed that you’ve added several .md files and also updated the main README. For this PR, those changes aren’t directly related to the feedback feature, so we should avoid mixing them in here.

If you want to improve the docs or add new guides, it’d be better to create a separate PR just for documentation. That way:

  • The feature PR stays focused and easier to review
  • You can get separate Hacktoberfest credit for your docs contributions

You can keep your current changes for the feedback functionality in this PR, and then submit another PR for the docs. Thanks for understanding, and I really appreciate your contributions!

Comment threadbackend/src/index.ts
}

// Generate a unique ID for the feedback
const feedbackId = `feedback_${Date.now()}_${Math.random().toString(36).substring(7)}`;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

line 116 could theoretically collide in very high traffic scenarios.

  • use UUID (crypto.randomUUID()) for safer uniqueness.

Sign up for freeto 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.

3 participants

@whatsupsumit@dineshsutihar
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Feat/Added a user feedback mechanism for translation quality - #48

Open
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism
Open

Feat/Added a user feedback mechanism for translation quality#48
whatsupsumit wants to merge 4 commits into
StructZ:developfrom
whatsupsumit:feat/user-feedback-mechanism

Conversation

@whatsupsumit

Copy link
Copy Markdown

#46 Its done made some changes hope you like it

Merge it if you like my work......tell me if any changes required i will implement it

image

✅ What Was Done

  1. Created New Branch
    Branch: feat/user-feedback-mechanism
    4 commits with clear, semantic commit messages
    Clean, ready for pull request
  2. Implemented Complete Feedback System

Frontend Changes:
✅ Added 👍 (thumbs up) and 👎 (thumbs down) buttons next to Copy button
✅ Created beautiful feedback modal for negative feedback
✅ Full dark mode support
✅ Smooth animations and visual feedback
✅ Message passing to background script

Backend Changes:
✅ New /v1/feedback endpoint
✅ Cloudflare KV storage integration
✅ Feedback validation and unique ID generation
✅ Proper error handling and CORS support

- Add thumbs up/down buttons next to Copy button in UI
- Implement feedback modal for negative feedback with optional comment
- Create /v1/feedback backend endpoint to store feedback
- Store feedback in Cloudflare KV with metadata
- Support both light and dark themes
- Pass original code through translation pipeline for feedback context
- Add comprehensive documentation in FEEDBACK_FEATURE.md
This enables users to report translation quality issues directly,
creating a feedback loop to improve AI prompts and translation quality.

@github-actionsgithub-actionsBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hi @whatsupsumit! 🎉
Welcome, and thank you for submitting your first pull request to CodeTranslateAI! We're thrilled to have your contribution.
Please make sure you've read our CONTRIBUTING.md guide. We'll review your changes shortly.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull Request Overview

Adds a complete user feedback mechanism to rate translation quality and capture optional comments, wiring frontend UI to a new backend endpoint with KV storage.

  • Adds 👍/👎 buttons and a modal for negative feedback in the UI, with dark mode support
  • Sends feedback via background script to new backend POST /v1/feedback
  • Stores feedback in Cloudflare KV; updates docs with setup and usage

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.

Show a summary per file
FileDescription
frontend/scripts/ui.jsAdds action buttons, feedback modal, and wiring to send feedback; updates styles and function signature to carry original code
frontend/scripts/content.jsPasses original selected code into injectOrUpdateTranslations for feedback context
frontend/background.jsHandles SUBMIT_FEEDBACK messages and POSTs to backend feedback endpoint
backend/src/index.tsIntroduces FEEDBACK_STORE and adds /v1/feedback route with storage in KV
backend/wrangler.jsoncBinds FEEDBACK_STORE KV namespace
README.mdDocuments the new feedback feature and setup
IMPLEMENTATION_SUMMARY.mdHigh-level implementation details for the feedback mechanism
FEEDBACK_FLOW_DIAGRAM.mdVisual flow/architecture of the feature
FEEDBACK_FEATURE.mdFeature documentation and setup instructions

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment threadfrontend/background.js
Comment threadbackend/src/index.ts
Comment threadfrontend/scripts/ui.js
Comment threadFEEDBACK_FEATURE.md
Comment threadbackend/src/index.ts
@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you merge it passes the test...
and let me know if changes are required

@whatsupsumit

Copy link
Copy Markdown
Author

@dineshsutihar can you please review it and merge it
i will make further changes if you want ...but do merge this ..it will boost my confidence..😅😊😊

@dineshsutihar

Copy link
Copy Markdown
Collaborator

Hey @whatsupsumit , thanks again for your effort on this PR - the feedback feature itself is really solid

I noticed that you’ve added several .md files and also updated the main README. For this PR, those changes aren’t directly related to the feedback feature, so we should avoid mixing them in here.

If you want to improve the docs or add new guides, it’d be better to create a separate PR just for documentation. That way:

  • The feature PR stays focused and easier to review
  • You can get separate Hacktoberfest credit for your docs contributions

You can keep your current changes for the feedback functionality in this PR, and then submit another PR for the docs. Thanks for understanding, and I really appreciate your contributions!

Comment threadbackend/src/index.ts
}

// Generate a unique ID for the feedback
const feedbackId = `feedback_${Date.now()}_${Math.random().toString(36).substring(7)}`;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

line 116 could theoretically collide in very high traffic scenarios.

  • use UUID (crypto.randomUUID()) for safer uniqueness.

Sign up for freeto 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.

3 participants

@whatsupsumit@dineshsutihar