fh / src /utils /documentGenerator.ts
Varun10000's picture
Upload 57 files
d8635c9 verified
Raw
History Blame Contribute Delete
34.1 kB
import type { RFPAnswer } from '../stores/appStore'
export interface DocumentOptions {
title: string
company: string
date: string
generatedBy: string
rfpName?: string
bidNumber?: string
}
export async function generateWordDocument(
answers: RFPAnswer[],
options: DocumentOptions
): Promise<Blob> {
// Generate enhanced HTML content with proper styling for Word
const htmlContent = generateWordCompatibleHTML(answers, options)
// Create a more sophisticated document structure
const wordContent = `
<!DOCTYPE html>
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="SEDNA Consulting Group RFP System">
<!--[if gte mso 9]>
<xml>
<w:WordDocument>
<w:View>Print</w:View>
<w:Zoom>90</w:Zoom>
<w:DoNotPromptForConvert/>
<w:DoNotShowInsertionsAndDeletions/>
</w:WordDocument>
</xml>
<![endif]-->
<style>
@page {
size: 8.5in 11in;
margin: 0;
}
body {
font-family: 'Arial', 'Calibri', sans-serif;
font-size: 11pt;
line-height: 1.15;
margin: 0;
padding: 0;
}
.sedna-cover {
width: 100%;
height: 100vh;
margin: 0;
padding: 0;
position: relative;
background: white;
page-break-after: always;
overflow: hidden;
}
.geometric-background {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 65%;
background: linear-gradient(135deg,
#d3d3d3 0%,
#a9a9a9 20%,
#808080 40%,
#404040 60%,
#2c2c2c 80%,
#1a1a1a 100%
);
clip-path: polygon(0 0, 100% 0, 85% 100%, 0 80%);
}
.geometric-accent {
position: absolute;
top: 15%;
right: 8%;
width: 280px;
height: 180px;
background: linear-gradient(45deg,
rgba(59, 130, 246, 0.2) 0%,
rgba(59, 130, 246, 0.4) 50%,
rgba(30, 64, 175, 0.3) 100%
);
border-radius: 20px;
transform: skew(-15deg, 0deg);
}
.tech-elements {
position: absolute;
top: 25%;
right: 12%;
width: 200px;
height: 120px;
}
.person-icon {
position: absolute;
top: 20px;
left: 80px;
font-size: 48px;
color: #fbbf24;
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.network-dots {
position: absolute;
top: 40px;
left: 20px;
width: 160px;
height: 80px;
}
.network-dots::before {
content: '';
position: absolute;
width: 6px;
height: 6px;
background: rgba(255, 255, 255, 0.6);
border-radius: 50%;
box-shadow:
20px 0 rgba(255, 255, 255, 0.4),
40px 10px rgba(255, 255, 255, 0.5),
60px -5px rgba(255, 255, 255, 0.3),
80px 15px rgba(255, 255, 255, 0.4),
100px 5px rgba(255, 255, 255, 0.5),
120px 20px rgba(255, 255, 255, 0.3),
10px 25px rgba(255, 255, 255, 0.4),
30px 35px rgba(255, 255, 255, 0.5),
50px 30px rgba(255, 255, 255, 0.3),
70px 40px rgba(255, 255, 255, 0.4),
90px 35px rgba(255, 255, 255, 0.5),
110px 45px rgba(255, 255, 255, 0.3);
}
.rfp-title-section {
position: absolute;
top: 40%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
color: white;
z-index: 10;
}
.rfp-main-title {
font-size: 48px;
font-weight: bold;
margin-bottom: 15px;
text-shadow: 3px 3px 6px rgba(0,0,0,0.5);
letter-spacing: 3px;
}
.rfp-subtitle {
font-size: 20px;
opacity: 0.9;
text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
font-weight: 300;
}
.white-section {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 35%;
background: white;
display: flex;
align-items: center;
padding: 0 60px;
box-sizing: border-box;
}
.company-info-left {
flex: 1;
padding-right: 40px;
}
.company-info-right {
flex: 1;
padding-left: 40px;
border-left: 2px solid #e2e8f0;
}
.company-name-large {
font-size: 28px;
font-weight: bold;
color: #000;
margin-bottom: 20px;
letter-spacing: 1px;
}
.address-section h4 {
font-size: 14px;
font-weight: bold;
color: #4a5568;
margin-bottom: 8px;
margin-top: 0;
}
.address-text {
font-size: 13px;
color: #4a5568;
line-height: 1.5;
margin: 0;
}
.contact-section h3 {
font-size: 18px;
font-weight: bold;
color: #000;
margin-bottom: 15px;
margin-top: 0;
text-decoration: underline;
}
.contact-section h4 {
font-size: 14px;
font-weight: bold;
color: #4a5568;
margin-bottom: 5px;
margin-top: 15px;
}
.contact-name {
font-size: 22px;
font-weight: bold;
color: #000;
margin: 8px 0;
}
.contact-details {
font-size: 13px;
color: #4a5568;
line-height: 1.6;
margin: 0;
}
.website-banner {
position: absolute;
bottom: 20px;
right: 60px;
background: #4a5568;
color: white;
padding: 10px 25px;
font-size: 16px;
font-weight: bold;
letter-spacing: 0.5px;
}
.page-break {
page-break-before: always;
padding: 40px;
}
.section-header {
font-size: 24pt;
font-weight: bold;
color: #1e40af;
margin: 0 0 25px 0;
border-bottom: 3px solid #1e40af;
padding-bottom: 10px;
}
.subsection-header {
font-size: 16pt;
font-weight: bold;
color: #059669;
margin: 25px 0 15px 0;
background: #f0f9ff;
padding: 8px 12px;
border-left: 4px solid #059669;
}
.question-container {
margin: 25px 0;
padding: 20px;
border: 1px solid #e2e8f0;
border-radius: 8px;
}
.question-header {
font-size: 18pt;
font-weight: bold;
color: #059669;
margin: 0 0 20px 0;
background: #f0f9ff;
padding: 12px 15px;
border-left: 4px solid #059669;
}
.question-label {
font-size: 14pt;
font-weight: bold;
color: #7c3aed;
margin: 15px 0 8px 0;
}
.question-content {
font-size: 12pt;
color: #374151;
margin: 0 0 20px 0;
padding: 10px;
background: #faf5ff;
border-left: 3px solid #7c3aed;
}
.answer-content {
font-size: 11pt;
color: #1f2937;
line-height: 1.6;
text-align: justify;
margin: 0 0 15px 0;
}
.references-section {
margin-top: 20px;
padding-top: 15px;
border-top: 1px solid #e2e8f0;
}
.references-label {
font-size: 12pt;
font-weight: bold;
color: #dc2626;
margin-bottom: 8px;
}
.references-content {
font-size: 10pt;
color: #7c3aed;
padding: 10px;
background: #faf5ff;
border-left: 3px solid #7c3aed;
}
.section-intro {
font-size: 12pt;
color: #6b7280;
font-style: italic;
margin-bottom: 30px;
padding: 15px;
background: #f8f9fa;
border-radius: 5px;
}
.toc-content {
background: #f8f9fa;
padding: 20px;
border-radius: 8px;
border: 1px solid #e2e8f0;
}
.capability-grid, .industry-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 10px;
margin: 15px 0;
}
.capability-item, .industry-item {
font-size: 11pt;
color: #1f2937;
padding: 8px;
background: #f0f9ff;
border-radius: 4px;
border-left: 3px solid #3b82f6;
}
.summary-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 30px;
margin: 20px 0;
}
.summary-section {
background: #f8f9fa;
padding: 20px;
border-radius: 8px;
border: 1px solid #e2e8f0;
}
.summary-details {
font-size: 11pt;
color: #1f2937;
line-height: 1.6;
margin: 0;
}
.disclaimer-section {
margin: 30px 0;
padding: 20px;
background: #fef2f2;
border: 1px solid #fecaca;
border-radius: 8px;
}
.disclaimer-text {
font-size: 10pt;
color: #7f1d1d;
line-height: 1.5;
margin: 0;
}
.document-footer {
margin-top: 40px;
text-align: center;
}
.footer-line {
height: 3px;
background: linear-gradient(90deg, #1e40af, #3b82f6, #1e40af);
margin: 20px 0;
}
.footer-title {
font-size: 16pt;
font-weight: bold;
color: #1e40af;
margin-bottom: 10px;
}
.footer-copyright {
font-size: 10pt;
color: #6b7280;
}
.answer-text {
font-size: 11pt;
color: #1f2937;
line-height: 1.6;
margin: 10px 0;
}
</style>
</head>
<body>
${htmlContent}
</body>
</html>`
await new Promise(resolve => setTimeout(resolve, 1000))
const blob = new Blob([wordContent], {
type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
})
return blob
}
function generateWordCompatibleHTML(answers: RFPAnswer[], options: DocumentOptions): string {
let htmlContent = `
<div class="sedna-cover">
<div class="geometric-background"></div>
<div class="geometric-accent"></div>
<div class="tech-elements">
<div class="person-icon">πŸ‘€</div>
<div class="network-dots"></div>
</div>
<div class="rfp-title-section">
<div class="rfp-main-title">RFP RESPONSE</div>
<div class="rfp-subtitle">Professional Technology Solutions</div>
</div>
<div class="white-section">
<div class="company-info-left">
<div class="company-name-large">SEDNA CONSULTING GROUP</div>
<div class="address-section">
<h4>HQ Address:</h4>
<p class="address-text">
860 US Route 1 N, Suite 102<br>
Edison, NJ 08817
</p>
</div>
</div>
<div class="company-info-right">
<div class="contact-section">
<h3>Main Point of Contact</h3>
<h4>Name & Title:</h4>
<div class="contact-name">Neha Arnold, CEO</div>
<p class="contact-details">
<strong>Email:</strong> neha@sednacg.com<br>
<strong>Phone #:</strong> 484-893-9910
</p>
</div>
</div>
</div>
<div class="website-banner">www.sednacg.com</div>
</div>
<div class="page-break">
<div class="section-header">EXECUTIVE SUMMARY</div>
<p class="answer-text">
Dear Evaluation Committee,<br><br>
SEDNA Consulting Group is pleased to submit our comprehensive proposal in response to your
${options.rfpName || 'Request for Proposal'}${options.bidNumber ? ` (Bid No: ${options.bidNumber})` : ''}.
As a leading provider of professional technology solutions, we bring extensive expertise, proven
methodologies, and a commitment to excellence that ensures successful project outcomes.<br><br>
Our response demonstrates:<br>
β€’ Deep understanding of your requirements and objectives<br>
β€’ Comprehensive technical capabilities and industry expertise<br>
β€’ Proven track record of successful project delivery<br>
β€’ Commitment to quality, innovation, and client satisfaction<br><br>
We look forward to the opportunity to partner with ${options.company} and deliver exceptional
results that exceed your expectations.<br><br>
Sincerely,<br><br>
<strong>Neha Arnold, CEO</strong><br>
SEDNA Consulting Group<br>
Phone: 484-893-9910<br>
Email: neha@sednacg.com
</p>
</div>
<div class="page-break">
<div class="section-header">TABLE OF CONTENTS</div>
<div class="toc-content">
<p class="answer-text">
<strong>1. Executive Summary</strong> ................................................ Page 2<br><br>
<strong>2. RFP Responses:</strong><br>`
// Add table of contents entries for each question
answers.forEach((answer, index) => {
const questionTitle = answer.question.length > 60
? answer.question.substring(0, 60) + "..."
: answer.question
htmlContent += `&nbsp;&nbsp;&nbsp;<strong>Question ${index + 1}:</strong> ${questionTitle} .............. Page ${index + 4}<br>`
})
htmlContent += `<br>
<strong>3. Company Profile & Capabilities</strong> ................................. Page ${answers.length + 4}<br>
<strong>4. Document Summary</strong> ............................................... Page ${answers.length + 5}
</p>
</div>
</div>
<div class="page-break">
<div class="section-header">RFP RESPONSES</div>
<p class="section-intro">
The following sections provide comprehensive responses to each question in your RFP.
Each response demonstrates our understanding of your requirements and our capability
to deliver exceptional results.
</p>
</div>`
// Add each question and answer
answers.forEach((answer, index) => {
htmlContent += `
<div class="question-container">
<div class="question-header">QUESTION ${index + 1}</div>
<div class="question-label">QUESTION:</div>
<div class="question-content">${answer.question}</div>
<div class="question-label">RESPONSE:</div>
<div class="answer-content">${answer.finalAnswer || answer.aiGeneratedAnswer}</div>`
if (answer.citations && answer.citations.length > 0) {
htmlContent += `
<div class="references-section">
<div class="references-label">REFERENCES:</div>
<div class="references-content">`
answer.citations.forEach((citation, citIndex) => {
htmlContent += `[${citIndex + 1}] ${citation}<br>`
})
htmlContent += `</div>
</div>`
}
htmlContent += `</div>`
if (index < answers.length - 1) {
htmlContent += `<div class="page-break"></div>`
}
})
htmlContent += `
<div class="page-break">
<div class="section-header">COMPANY PROFILE & CAPABILITIES</div>
<div class="subsection-header">ABOUT SEDNA CONSULTING GROUP</div>
<p class="answer-text">
SEDNA Consulting Group is a premier technology consulting firm specializing in comprehensive
IT solutions, digital transformation, and strategic consulting services. Founded with a mission
to deliver exceptional value through innovative technology solutions, we have established
ourselves as a trusted partner for organizations seeking to optimize their technology investments
and achieve sustainable competitive advantages.
</p>
<div class="subsection-header">CORE CAPABILITIES</div>
<div class="capability-grid">
<div class="capability-item">β€’ Strategic Technology Consulting</div>
<div class="capability-item">β€’ System Integration & Implementation</div>
<div class="capability-item">β€’ Digital Transformation Services</div>
<div class="capability-item">β€’ Project Management & Delivery</div>
<div class="capability-item">β€’ Quality Assurance & Testing</div>
<div class="capability-item">β€’ Training & Knowledge Transfer</div>
</div>
<div class="subsection-header">INDUSTRY EXPERTISE</div>
<div class="industry-grid">
<div class="industry-item">β€’ Government & Public Sector</div>
<div class="industry-item">β€’ Healthcare & Life Sciences</div>
<div class="industry-item">β€’ Financial Services</div>
<div class="industry-item">β€’ Education & Research</div>
<div class="industry-item">β€’ Manufacturing & Industrial</div>
<div class="industry-item">β€’ Technology & Communications</div>
</div>
<div class="subsection-header">COMPETITIVE ADVANTAGES</div>
<p class="answer-text">
β€’ <strong>Proven Track Record:</strong> Successful delivery of complex technology initiatives<br>
β€’ <strong>Technical Expertise:</strong> Deep knowledge across multiple platforms and technologies<br>
β€’ <strong>Agile Methodologies:</strong> Adaptive delivery approaches that respond to changing needs<br>
β€’ <strong>Client Focus:</strong> Strong emphasis on client satisfaction and long-term partnerships<br>
β€’ <strong>Quality Assurance:</strong> Comprehensive QA and risk management practices
</p>
<div class="subsection-header">CERTIFICATIONS & STANDARDS</div>
<p class="answer-text">
β€’ ISO 9001:2015 Quality Management System<br>
β€’ CMMI Level 3 Process Maturity<br>
β€’ PMP Certified Project Managers<br>
β€’ Industry-specific security clearances and certifications
</p>
</div>
<div class="page-break">
<div class="section-header">DOCUMENT SUMMARY</div>
<div class="summary-grid">
<div class="summary-section">
<div class="subsection-header">RFP INFORMATION</div>
<p class="summary-details">
<strong>RFP Name:</strong> ${options.rfpName || 'Request for Proposal'}<br>
<strong>Bid Number:</strong> ${options.bidNumber || 'Not Specified'}<br>
<strong>Client Organization:</strong> ${options.company}<br>
<strong>Total Questions Answered:</strong> ${answers.length}<br>
<strong>Document Date:</strong> ${new Date().toLocaleDateString('en-US', {
year: 'numeric',
month: 'long',
day: 'numeric'
})}
</p>
</div>
<div class="summary-section">
<div class="subsection-header">SUBMISSION DETAILS</div>
<p class="summary-details">
<strong>Submitted By:</strong> Neha Arnold, CEO<br>
<strong>Contact Email:</strong> neha@sednacg.com<br>
<strong>Contact Phone:</strong> 484-893-9910<br>
<strong>Company Website:</strong> www.sednacg.com<br>
<strong>Generated By:</strong> ${options.generatedBy}
</p>
</div>
</div>
<div class="disclaimer-section">
<div class="subsection-header">CONFIDENTIALITY NOTICE</div>
<p class="disclaimer-text">
This document contains confidential and proprietary information of SEDNA Consulting Group.
The information contained herein is submitted solely for the purpose of responding to the
referenced Request for Proposal and may not be reproduced, distributed, or disclosed to
third parties without the express written permission of SEDNA Consulting Group.
</p>
</div>
<div class="document-footer">
<div class="footer-line"></div>
<div class="footer-content">
<div class="footer-title">END OF DOCUMENT</div>
<div class="footer-copyright">Β© ${new Date().getFullYear()} SEDNA CONSULTING GROUP - ALL RIGHTS RESERVED</div>
</div>
</div>
</div>`
return htmlContent
}
export function generateDocumentPreview(
answers: RFPAnswer[],
options: DocumentOptions
): string {
const htmlContent = generateWordCompatibleHTML(answers, options)
// Add CSS styles for web preview
return `
<style>
.preview-container {
max-width: 8.5in;
margin: 0 auto;
background: white;
box-shadow: 0 0 20px rgba(0,0,0,0.1);
font-family: 'Calibri', 'Arial', sans-serif;
}
.cover-page {
min-height: 800px;
position: relative;
background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
}
.geometric-header {
background: linear-gradient(135deg,
#a9a9a9 0%,
#a9a9a9 25%,
#404040 50%,
#404040 75%,
#202020 100%);
height: 60%;
position: relative;
color: white;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 40px;
}
.tech-visual {
position: absolute;
top: 20%;
right: 10%;
width: 150px;
height: 100px;
background: radial-gradient(circle, rgba(59, 130, 246, 0.3) 30%, transparent 70%);
border-radius: 15px;
}
.tech-icon {
position: absolute;
top: 25%;
right: 15%;
font-size: 36px;
color: #fbbf24;
}
.main-title {
font-size: 36px;
font-weight: bold;
text-align: center;
margin: 20px 0;
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
letter-spacing: 2px;
}
.subtitle {
font-size: 16px;
text-align: center;
opacity: 0.9;
margin-bottom: 20px;
}
.company-section {
background: white;
padding: 30px;
height: 40%;
display: flex;
align-items: center;
}
.company-left {
flex: 1;
padding-right: 30px;
}
.company-right {
flex: 1;
border-left: 2px solid #e2e8f0;
padding-left: 30px;
}
.company-name {
font-size: 24px;
font-weight: bold;
color: #000;
margin-bottom: 15px;
letter-spacing: 1px;
}
.contact-header {
font-size: 16px;
font-weight: bold;
color: #000;
margin-bottom: 15px;
text-decoration: underline;
}
.contact-name {
font-size: 18px;
font-weight: bold;
color: #000;
margin: 10px 0;
}
.website-footer {
position: absolute;
bottom: 20px;
right: 30px;
background: #4a5568;
color: white;
padding: 8px 20px;
font-size: 14px;
font-weight: bold;
}
.page-break {
margin: 40px 0;
padding: 20px 0;
border-top: 2px solid #e2e8f0;
}
.section-header {
font-size: 24px;
font-weight: bold;
color: #1e40af;
margin: 30px 0 20px 0;
border-bottom: 3px solid #1e40af;
padding-bottom: 10px;
}
.question-header {
font-size: 18px;
font-weight: bold;
color: #059669;
margin: 25px 0 15px 0;
background: #f0f9ff;
padding: 10px 15px;
border-left: 4px solid #059669;
}
.question-text {
font-size: 14px;
font-weight: bold;
color: #374151;
margin: 15px 0 10px 0;
}
.answer-text {
font-size: 12px;
color: #1f2937;
line-height: 1.6;
margin: 10px 0;
}
.references {
font-size: 11px;
color: #7c3aed;
margin: 15px 0;
padding: 10px;
background: #faf5ff;
border-left: 3px solid #7c3aed;
}
</style>
<div class="preview-container">
${htmlContent}
</div>`
}
function generateDocumentContent(answers: RFPAnswer[], options: DocumentOptions): string {
const coverPage = `
SEDNA CONSULTING GROUP
Professional Technology Solutions
RFP RESPONSE
${options.rfpName || 'Request for Proposal'}
${options.bidNumber ? `Bid No: ${options.bidNumber}` : ''}
Submitted To: ${options.company}
Date: ${new Date().toLocaleDateString('en-US', {
year: 'numeric',
month: 'long',
day: 'numeric'
})}
═══════════════════════════════
Main Point of Contact:
Neha Arnold, CEO
Email: neha@sednacg.com
Phone: 484-893-9910
HQ Address:
860 US Route 1 N, Suite 102
Edison, NJ 08817
www.sednacg.com
═══════════════════════════════
CONFIDENTIAL AND PROPRIETARY INFORMATION
Β© ${new Date().getFullYear()} SEDNA CONSULTING GROUP
ALL RIGHTS RESERVED
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PAGE BREAK
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EXECUTIVE SUMMARY
═══════════════════════════════════════════════════════════════════════════
Dear Evaluation Committee,
SEDNA Consulting Group is pleased to submit our comprehensive proposal in
response to your Request for Proposal. As a leading provider of professional
technology solutions, we bring extensive expertise, proven methodologies, and
a commitment to excellence that ensures successful project outcomes.
Our response demonstrates:
β€’ Deep understanding of your requirements and objectives
β€’ Comprehensive technical capabilities and industry expertise
β€’ Proven track record of successful project delivery
β€’ Commitment to quality, innovation, and client satisfaction
We look forward to the opportunity to partner with ${options.company} and
deliver exceptional results that exceed your expectations.
Sincerely,
Neha Arnold, CEO
SEDNA Consulting Group
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PAGE BREAK
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TABLE OF CONTENTS
═══════════════════════════════════════════════════════════════════════════
1. Executive Summary ................................................ Page 2
2. RFP Responses:
`
let content = coverPage
// Add table of contents entries for each question
answers.forEach((answer, index) => {
const questionTitle = answer.question.length > 60
? answer.question.substring(0, 60) + "..."
: answer.question
content += ` Question ${index + 1}: ${questionTitle} .............. Page ${index + 4}\n`
})
content += `
3. Company Profile & Capabilities ................................. Page ${answers.length + 4}
4. Document Summary ............................................... Page ${answers.length + 5}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PAGE BREAK
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RFP RESPONSES
═══════════════════════════════════════════════════════════════════════════
`
answers.forEach((answer, index) => {
content += `
QUESTION ${index + 1}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
QUESTION:
${answer.question}
RESPONSE:
${answer.finalAnswer || answer.aiGeneratedAnswer}
`
if (answer.citations && answer.citations.length > 0) {
content += `REFERENCES:
`
answer.citations.forEach((citation, citIndex) => {
content += `[${citIndex + 1}] ${citation}\n`
})
}
content += `
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PAGE BREAK
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
`
})
content += `
COMPANY PROFILE & CAPABILITIES
═══════════════════════════════════════════════════════════════════════════
ABOUT SEDNA CONSULTING GROUP
SEDNA Consulting Group is a premier technology consulting firm specializing in
comprehensive IT solutions, digital transformation, and strategic consulting
services. Founded with a mission to deliver exceptional value through innovative
technology solutions, we have established ourselves as a trusted partner for
organizations seeking to optimize their technology investments and achieve
sustainable competitive advantages.
CORE CAPABILITIES
β€’ Strategic Technology Consulting
β€’ System Integration & Implementation
β€’ Digital Transformation Services
β€’ Project Management & Delivery
β€’ Quality Assurance & Testing
β€’ Training & Knowledge Transfer
INDUSTRY EXPERTISE
β€’ Government & Public Sector
β€’ Healthcare & Life Sciences
β€’ Financial Services
β€’ Education & Research
β€’ Manufacturing & Industrial
β€’ Technology & Communications
COMPETITIVE ADVANTAGES
β€’ Proven track record of successful project delivery
β€’ Deep technical expertise across multiple platforms
β€’ Agile and adaptive delivery methodologies
β€’ Strong focus on client satisfaction and long-term partnerships
β€’ Comprehensive quality assurance and risk management practices
CERTIFICATIONS & STANDARDS
β€’ ISO 9001:2015 Quality Management
β€’ CMMI Level 3 Process Maturity
β€’ PMP Certified Project Managers
β€’ Industry-specific security clearances
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PAGE BREAK
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DOCUMENT SUMMARY
═══════════════════════════════════════════════════════════════════════════
RFP INFORMATION:
β€’ RFP Name: ${options.rfpName || 'Request for Proposal'}
β€’ ${options.bidNumber ? `Bid Number: ${options.bidNumber}` : 'Bid Number: Not Specified'}
β€’ Client: ${options.company}
β€’ Total Questions Answered: ${answers.length}
DOCUMENT DETAILS:
β€’ Document Generated: ${new Date().toLocaleString()}
β€’ Generated By: ${options.generatedBy}
β€’ System: SEDNA Consulting Group RFP Management System
β€’ Version: 2.0
SUBMISSION INFORMATION:
β€’ Submitted By: Neha Arnold, CEO
β€’ Contact Email: neha@sednacg.com
β€’ Contact Phone: 484-893-9910
β€’ Company Website: www.sednacg.com
DISCLAIMER:
This document contains confidential and proprietary information of SEDNA
Consulting Group. The information contained herein is submitted solely for
the purpose of responding to the referenced RFP and may not be reproduced
or distributed without express written permission.
═══════════════════════════════════════════════════════════════════════════
END OF DOCUMENT
Β© ${new Date().getFullYear()} SEDNA CONSULTING GROUP
═══════════════════════════════════════════════════════════════════════════`
return content
}