iisadia commited on
Commit
7a18fc3
Β·
verified Β·
1 Parent(s): ac76f21

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -32
app.py CHANGED
@@ -86,8 +86,7 @@ def analyze_requirement(requirement):
86
  def generate_pdf_report(results):
87
  pdf = FPDF()
88
  pdf.add_page()
89
- pdf.set_font("Arial", size=12)
90
-
91
  # Add watermark
92
  pdf.set_font("Arial", 'B', 50)
93
  pdf.set_text_color(230, 230, 230) # Light gray color for watermark
@@ -114,21 +113,16 @@ def generate_pdf_report(results):
114
  pdf.cell(200, 10, txt=f"Report Generated on: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}", ln=True, align='C')
115
  pdf.ln(10) # Add some space
116
 
117
- # Add requirement details
118
- pdf.set_font("Arial", 'B', 14)
119
- pdf.multi_cell(200, 10, txt=f"Requirement R{i}: {result['Requirement']}", align='L')
120
- pdf.set_font("Arial", size=12)
121
- pdf.multi_cell(200, 10, txt=f"Type: {result['Type']}", align='L')
122
- pdf.multi_cell(200, 10, txt=f"Domain: {result['Domain']}", align='L')
123
- pdf.multi_cell(200, 10, txt=f"Stakeholders: {result['Stakeholders']}", align='L')
124
- pdf.multi_cell(200, 10, txt=f"Defects: {result['Defects']}", align='L')
125
- pdf.multi_cell(200, 10, txt=f"Rewritten: {result['Rewritten']}", align='L')
126
- pdf.multi_cell(200, 10, txt="-" * 50, align='L')
127
- pdf.ln(5) # Add some space between requirements
128
 
129
  pdf_output = "requirements_report.pdf"
130
  pdf.output(pdf_output)
131
- return pdf_output
132
 
133
  # Custom CSS for professional styling
134
  st.markdown("""
@@ -226,7 +220,6 @@ def main():
226
  time.sleep(0.5)
227
  st.session_state.results = results
228
 
229
-
230
  # Display Results
231
  if 'results' in st.session_state:
232
  st.subheader("πŸ“Š Analysis Results")
@@ -256,24 +249,25 @@ def main():
256
  """, unsafe_allow_html=True)
257
 
258
  # PDF Report Section
259
- st.subheader("πŸ“€ Generate Report")
260
- with st.container():
261
- col1, col2 = st.columns([3, 2])
262
- with col1:
263
- st.info("πŸ’‘ Click below to generate a comprehensive PDF report with all analysis details")
264
- with col2:
265
- if st.button("πŸ“„ Generate PDF Report", type="secondary", use_container_width=True):
266
- with st.spinner("Generating PDF..."):
267
- pdf_report = generate_pdf_report(st.session_state.results)
268
- with open(pdf_report, "rb") as f:
269
- st.download_button(
270
- label="⬇️ Download Full Report",
271
- data=f,
272
- file_name="Requirement_Analysis_Report.pdf",
273
- mime="application/pdf"
274
- )
275
 
276
-
 
 
 
 
 
 
 
277
 
278
  if __name__ == "__main__":
279
  main()
 
86
  def generate_pdf_report(results):
87
  pdf = FPDF()
88
  pdf.add_page()
89
+
 
90
  # Add watermark
91
  pdf.set_font("Arial", 'B', 50)
92
  pdf.set_text_color(230, 230, 230) # Light gray color for watermark
 
113
  pdf.cell(200, 10, txt=f"Report Generated on: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}", ln=True, align='C')
114
  pdf.ln(10) # Add some space
115
 
116
+ pdf.set_font("Arial", '', 12)
117
+ pdf.multi_cell(0, 10, f"πŸ“Œ Type of Requirements: {req_type}")
118
+ pdf.multi_cell(0, 10, f"🌐 Domain of Requirements: {domain}")
119
+ pdf.multi_cell(0, 10, f"πŸ‘₯ Stakeholders: {stakeholders}")
120
+ pdf.multi_cell(0, 10, f"🐞 Defects Found: {defects}")
121
+ pdf.multi_cell(0, 10, f"✍️ Rewritten Requirements: {rewrite}")
 
 
 
 
 
122
 
123
  pdf_output = "requirements_report.pdf"
124
  pdf.output(pdf_output)
125
+ return pdf.output(dest='S').encode('latin1') # Return PDF bytes
126
 
127
  # Custom CSS for professional styling
128
  st.markdown("""
 
220
  time.sleep(0.5)
221
  st.session_state.results = results
222
 
 
223
  # Display Results
224
  if 'results' in st.session_state:
225
  st.subheader("πŸ“Š Analysis Results")
 
249
  """, unsafe_allow_html=True)
250
 
251
  # PDF Report Section
252
+ if st.button("πŸ“„ Generate Report"):
253
+ pdf_bytes = generate_pdf(
254
+ requirements_text,
255
+ requirement_type,
256
+ requirement_domain,
257
+ requirement_stakeholders,
258
+ requirement_defects,
259
+ requirement_rewrite
260
+ )
261
+ st.download_button("⬇️ Download PDF", data=pdf_bytes, file_name="Requirements_Report.pdf", mime="application/pdf")
 
 
 
 
 
 
262
 
263
+ # Footer
264
+ st.markdown("---")
265
+ st.markdown("""
266
+ <div style="text-align: center; color: #666; margin-top: 3rem;">
267
+ <p>AI-Powered Requirement Analysis System</p>
268
+ <p>πŸš€ Powered by Mistral AI & Groq β€’ πŸ› οΈ Developed by Team Four</p>
269
+ </div>
270
+ """, unsafe_allow_html=True)
271
 
272
  if __name__ == "__main__":
273
  main()