feat(feedback): Add content improvement feedback system

Frontend (frontend/app.js):

- Add textarea for improvement feedback

- Add submit button with loading state

- Handle API response and display improved content

Backend (backend/copywriter.py):

- Add improve_copy() method using Cohere API

- Integrate retry mechanism for API calls

Backend (backend/main.py):

- Add /improve-content POST endpoint

- Implement error handling and return improved content with metadata

Testing:

- Verified feedback submission flow

- Confirmed improved content generation

- Tested error scenarios and loading states
This commit is contained in:
Michael Ikehi
2025-04-18 19:19:10 +01:00
parent 12e0830ba6
commit 71ad7b4d26
8 changed files with 790 additions and 91 deletions
+15 -73
View File
@@ -1,3 +1,4 @@
<!DOCTYPE html>
<html lang="en">
<head>
@@ -198,9 +199,18 @@
<select id="history-filter-type">
<option value="">All Content Types</option>
<option value="email_campaign">Email Campaign</option>
<option value="email">Email</option>
<option value="social_media">Social Media</option>
<option value="blog_post">Blog Post</option>
<option value="website_copy">Website Copy</option>
<option value="sales_copy">Sales Copy</option>
<option value="ad_copy">Ad Copy</option>
<option value="video_script">Video Script</option>
<option value="case_study">Case Study</option>
<option value="product_description">Product Description</option>
<option value="landing_page">Landing Page</option>
<option value="press_release">Press Release</option>
<option value="newsletter">Newsletter</option>
</select>
</div>
<div class="form-group">
@@ -209,45 +219,7 @@
</div>
<div class="history-list">
<div class="history-item">
<div class="history-item-type email_campaign">Email</div>
<div class="history-item-content">
<h4>Transformation Masterclass Invitation</h4>
<p>Subject: Transform Your Potential with Adriana James' Exclusive Workshop...</p>
</div>
<div class="history-item-date">Apr 17, 2025</div>
<div class="history-item-actions">
<button class="btn btn-icon" title="View content"><i class="fas fa-eye"></i></button>
<button class="btn btn-icon" title="Edit content"><i class="fas fa-edit"></i></button>
<button class="btn btn-icon" title="Delete content"><i class="fas fa-trash"></i></button>
</div>
</div>
<div class="history-item">
<div class="history-item-type social_media">Social</div>
<div class="history-item-content">
<h4>3-Step Framework Post</h4>
<p>BREAKTHROUGH MOMENT ✨ Ever feel stuck in patterns that hold you back...</p>
</div>
<div class="history-item-date">Apr 16, 2025</div>
<div class="history-item-actions">
<button class="btn btn-icon" title="View content"><i class="fas fa-eye"></i></button>
<button class="btn btn-icon" title="Edit content"><i class="fas fa-edit"></i></button>
<button class="btn btn-icon" title="Delete content"><i class="fas fa-trash"></i></button>
</div>
</div>
<div class="history-item">
<div class="history-item-type blog_post">Blog</div>
<div class="history-item-content">
<h4>5 Ways to Overcome Limiting Beliefs</h4>
<p>Are limiting beliefs holding you back from achieving your full potential?...</p>
</div>
<div class="history-item-date">Apr 14, 2025</div>
<div class="history-item-actions">
<button class="btn btn-icon" title="View content"><i class="fas fa-eye"></i></button>
<button class="btn btn-icon" title="Edit content"><i class="fas fa-edit"></i></button>
<button class="btn btn-icon" title="Delete content"><i class="fas fa-trash"></i></button>
</div>
</div>
<!-- History items will be loaded dynamically -->
</div>
</section>
@@ -391,7 +363,7 @@
<label for="training-content-type">Content Type</label>
<select id="training-content-type">
<option value="">Select Type</option>
<option value="email_campaign">Email Campaign</option>
<option value="email">Email Campaign</option>
<option value="social_media">Social Media</option>
<option value="blog_post">Blog Post</option>
<option value="website_copy">Website Copy</option>
@@ -434,10 +406,11 @@
<div class="form-group">
<select id="training-filter-type">
<option value="">All Content Types</option>
<option value="email_campaign">Email Campaign</option>
<option value="email">Email Campaign</option>
<option value="social_media">Social Media</option>
<option value="blog_post">Blog Post</option>
<option value="website_copy">Website Copy</option>
<option value="ad_copy">Ad Copy</option>
</select>
</div>
<div class="form-group">
@@ -446,38 +419,7 @@
</div>
<div class="training-list">
<div class="training-item">
<div class="training-item-type email_campaign">Email</div>
<div class="training-item-content">
<h4>Transformation Masterclass Promotion</h4>
<p>Added on: Apr 15, 2025</p>
<div class="metrics">
<span class="metric">Open Rate: 42%</span>
<span class="metric">Click Rate: 18%</span>
<span class="metric">Conversion: 8%</span>
</div>
</div>
<div class="training-item-actions">
<button class="btn btn-icon" title="View content"><i class="fas fa-eye"></i></button>
<button class="btn btn-icon" title="Delete content"><i class="fas fa-trash"></i></button>
</div>
</div>
<div class="training-item">
<div class="training-item-type social_media">Social</div>
<div class="training-item-content">
<h4>Breakthrough Framework</h4>
<p>Added on: Apr 10, 2025</p>
<div class="metrics">
<span class="metric">Engagement: 6.4%</span>
<span class="metric">Saves: 178</span>
<span class="metric">Shares: 92</span>
</div>
</div>
<div class="training-item-actions">
<button class="btn btn-icon" title="View content"><i class="fas fa-eye"></i></button>
<button class="btn btn-icon" title="Delete content"><i class="fas fa-trash"></i></button>
</div>
</div>
<!-- Training items will be loaded dynamically -->
</div>
</div>
</section>