BCopeland64's picture
Update app.py
b12c19b
raw
history blame contribute delete
No virus
14.9 kB
import streamlit as st
from reportlab.pdfgen import canvas
def generate_ai_innovation_pdf(project_title, objectives, metrics_collaborators, metrics_impact, metrics_outcomes,
achievements_collaborators, achievements_solutions, achievements_implementation,
lessons_collaboration, lessons_measuring, lessons_insights):
content = f"AI Innovation Challenges Documentation Template:\n\nProject Title: {project_title}\n"
content += f"**Objective:**\n{objectives}\n"
content += f"**Metrics:**\n- Collaborator Numbers: {metrics_collaborators} AI experts and innovators engaged.\n"
content += f"- Impact Results: {metrics_impact} innovative solutions generated.\n"
content += f"- Final Outcomes: {metrics_outcomes} successful implementations or prototypes.\n\n"
content += f"**Key Achievements:**\n- Collaborated with {achievements_collaborators} innovators from diverse backgrounds.\n"
content += f"- Generated {achievements_solutions} cutting-edge solutions addressing AI challenges.\n"
content += f"- Successfully implemented {achievements_implementation} solutions in real-world scenarios.\n\n"
content += f"**Lessons Learned:**\n- {lessons_collaboration}\n"
content += f"- {lessons_measuring}\n"
content += f"- {lessons_insights}"
pdf_filename = f"{project_title.replace(' ', '_')}_ai_innovation_output.pdf"
c = canvas.Canvas(pdf_filename)
width, height = c._pagesize
c.setFont("Helvetica", 12)
lines = content.split('\n')
for i, line in enumerate(lines):
c.drawString(100, height - 100 - i * 12, line)
c.save()
return pdf_filename
def generate_community_impact_pdf(project_title, objectives, metrics_collaborators, metrics_impact, metrics_outcomes,
achievements_collaborators, achievements_solutions, achievements_implementation,
lessons_collaboration, lessons_measuring, lessons_insights):
content = f"Community Impact Report Documentation Template:\n\nProject Title: {project_title}\n"
content += f"**Objective:**\n{objectives}\n"
content += f"**Metrics:**\n- Collaborator Numbers: {metrics_collaborators} community members involved.\n"
content += f"- Impact Results: {metrics_impact} positive changes or contributions.\n"
content += f"- Final Outcomes: {metrics_outcomes} sustainable impact on the community.\n\n"
content += f"**Key Achievements:**\n- Engaged with {achievements_collaborators} community members through diverse initiatives.\n"
content += f"- Implemented projects resulting in {achievements_solutions} positive changes.\n"
content += f"- Established {achievements_implementation} sustainable solutions for long-term impact.\n\n"
content += f"**Lessons Learned:**\n- {lessons_collaboration}\n"
content += f"- {lessons_measuring}\n"
content += f"- {lessons_insights}"
pdf_filename = f"{project_title.replace(' ', '_')}_community_impact_output.pdf"
c = canvas.Canvas(pdf_filename)
width, height = c._pagesize
c.setFont("Helvetica", 12)
lines = content.split('\n')
for i, line in enumerate(lines):
c.drawString(100, height - 100 - i * 12, line)
c.save()
return pdf_filename
def generate_local_chapter_challenges_pdf(project_title, objectives, metrics_collaborators, metrics_impact, metrics_outcomes,
achievements_collaborators, achievements_solutions, achievements_implementation,
lessons_collaboration, lessons_cross_chapter, lessons_local_context):
content = f"Local Chapter Challenges Documentation Template:\n\nProject Title: {project_title}\n"
content += f"**Objective:**\n{objectives}\n"
content += f"**Metrics:**\n- Collaborator Numbers: {metrics_collaborators} local chapter members involved.\n"
content += f"- Impact Results: {metrics_impact} challenges identified and resolved.\n"
content += f"- Final Outcomes: {metrics_outcomes} documented solutions for knowledge sharing.\n\n"
content += f"**Key Achievements:**\n- Engaged with {achievements_collaborators} local chapters across {achievements_solutions} regions.\n"
content += f"- Identified and addressed {achievements_implementation} challenges through collaborative efforts.\n"
content += f"- Established a knowledge-sharing platform for local chapters.\n\n"
content += f"**Lessons Learned:**\n- {lessons_collaboration}\n"
content += f"- {lessons_cross_chapter}\n"
content += f"- {lessons_local_context}"
pdf_filename = f"{project_title.replace(' ', '_')}_local_chapter_challenges_output.pdf"
c = canvas.Canvas(pdf_filename)
width, height = c._pagesize
c.setFont("Helvetica", 12)
lines = content.split('\n')
for i, line in enumerate(lines):
c.drawString(100, height - 100 - i * 12, line)
c.save()
return pdf_filename
def generate_academy_project_pdf(project_title, lead_facilitator, collaborators, project_overview, collaborator_metrics,
project_deliverables, class_deliverables, impact_metrics, milestones, evaluation_feedback,
resources_support, timeline, communication_channels, next_steps):
content = f"Omdena Academy Project Template\nProject Title: {project_title}\n"
content += f"Collaborators:\n- Lead Facilitator: {lead_facilitator}\n- Collaborators: {collaborators}\n"
content += f"Project Overview:\n- {project_overview}\n\n"
content += f"Key Metrics:\n1. Collaborator Metrics:\n- Number of Collaborators: {collaborator_metrics}\n"
content += f"- Diversity Metrics: {impact_metrics['diversity']}\n"
content += f"2. Deliverables:\n- Project Deliverables: {project_deliverables}\n- Class Deliverables: {class_deliverables}\n\n"
content += f"Impact Metrics:\n1. Social Impact:\n- {impact_metrics['social']}\n"
content += f"2. Technical Impact:\n- {impact_metrics['technical']}\n"
content += f"3. Learning Impact:\n- {impact_metrics['learning']}\n\n"
content += f"Milestones:\n1. Project Milestones: {milestones['project']}\n"
content += f"2. Learning Milestones: {milestones['learning']}\n\n"
content += f"Evaluation and Feedback:\n1. Continuous Evaluation: {evaluation_feedback['continuous']}\n"
content += f"2. Feedback Mechanism: {evaluation_feedback['mechanism']}\n\n"
content += f"Resources and Support:\n1. Collaborator Support: {resources_support['collaborator']}\n"
content += f"2. Learning Resources: {resources_support['learning']}\n\n"
content += f"Timeline:\n- {timeline}\n\n"
content += f"Communication Channels:\n- Primary Communication Platform: {communication_channels['platform']}\n"
content += f"- Regular Meetings: {communication_channels['meetings']}\n\n"
content += f"Next Steps:\n- {next_steps}"
pdf_filename = f"{project_title.replace(' ', '_')}_academy_project_output.pdf"
c = canvas.Canvas(pdf_filename)
width, height = c._pagesize
c.setFont("Helvetica", 12)
lines = content.split('\n')
for i, line in enumerate(lines):
c.drawString(100, height - 100 - i * 12, line)
c.save()
return pdf_filename
def generate_top_talent_deployment_pdf(project_title, objectives, metrics_collaborators, metrics_impact, metrics_outcomes,
achievements_collaborators, achievements_solutions, achievements_implementation,
lessons_collaboration, lessons_insights, lessons_continuous_improvement):
content = f"Top Talent/Product Deployment Documentation Template:\n\nProject Title: {project_title}\n"
content += f"**Objective:**\n{objectives}\n"
content += f"**Metrics:**\n- Collaborator Numbers: {metrics_collaborators} top talents or product developers involved.\n"
content += f"- Impact Results: {metrics_impact} successful deployments or launches.\n"
content += f"- Final Outcomes: {metrics_outcomes} measurable impact on the target audience or market.\n\n"
content += f"**Key Achievements:**\n- Engaged with {achievements_collaborators} top talents or product developers.\n"
content += f"- Executed successful deployments resulting in {achievements_solutions} positive outcomes.\n"
content += f"- Achieved {achievements_implementation} market recognition or user satisfaction.\n\n"
content += f"**Lessons Learned:**\n- {lessons_collaboration}\n"
content += f"- {lessons_insights}\n"
content += f"- {lessons_continuous_improvement}"
pdf_filename = f"{project_title.replace(' ', '_')}_top_talent_deployment_output.pdf"
c = canvas.Canvas(pdf_filename)
width, height = c._pagesize
c.setFont("Helvetica", 12)
lines = content.split('\n')
for i, line in enumerate(lines):
c.drawString(100, height - 100 - i * 12, line)
c.save()
return pdf_filename
def main():
st.set_page_config(layout="wide", page_title="Documentation App", page_icon="πŸ“„")
# Set background color to white
st.markdown(
"""
<style>
body {
background-color: #ffffff;
}
</style>
""",
unsafe_allow_html=True
)
# Set side panel color to blue
st.sidebar.markdown(
"""
<style>
div.sidebar {
background-color: #3498db;
}
</style>
""",
unsafe_allow_html=True
)
st.sidebar.title("Select Document Type")
document_type = st.sidebar.selectbox("Choose Document Type", ["AI Innovation Challenges", "Community Impact Report", "Local Chapter Challenges", "Omdena Academy Project", "Top Talent/Product Deployment"])
st.title(f"{document_type} Documentation App")
# Input boxes for each section
project_title = st.text_input("Project Title")
objectives = st.text_area("Objectives")
metrics_collaborators = st.text_input("Collaborator Numbers" )
metrics_impact = st.text_input("Impact Results")
metrics_outcomes = st.text_input("Final Outcomes")
achievements_collaborators = st.text_input("Collaborated with")
achievements_solutions = st.text_input("Generated cutting-edge solutions")
achievements_implementation = st.text_input("Successfully implemented")
lessons_collaboration = st.text_area("Importance of interdisciplinary collaboration")
lessons_measuring = st.text_area("Strategies for measuring and sustaining impact")
lessons_insights = st.text_area("Insights into challenges and opportunities")
if document_type == "AI Innovation Challenges":
pdf_filename = generate_ai_innovation_pdf(project_title, objectives, metrics_collaborators, metrics_impact, metrics_outcomes,
achievements_collaborators, achievements_solutions, achievements_implementation,
lessons_collaboration, lessons_measuring, lessons_insights)
elif document_type == "Community Impact Report":
pdf_filename = generate_community_impact_pdf(project_title, objectives, metrics_collaborators, metrics_impact, metrics_outcomes,
achievements_collaborators, achievements_solutions, achievements_implementation,
lessons_collaboration, lessons_measuring, lessons_insights)
elif document_type == "Local Chapter Challenges":
pdf_filename = generate_local_chapter_challenges_pdf(project_title, objectives, metrics_collaborators, metrics_impact, metrics_outcomes,
achievements_collaborators, achievements_solutions, achievements_implementation,
lessons_collaboration, lessons_cross_chapter, lessons_local_context)
elif document_type == "Omdena Academy Project":
lead_facilitator = st.text_input("Lead Facilitator")
collaborators = st.text_input("Collaborators (comma-separated)")
project_overview = st.text_area("Project Overview")
collaborator_metrics = st.text_input("Number of Collaborators")
project_deliverables = st.text_input("Project Deliverables (comma-separated)")
class_deliverables = st.text_input("Class Deliverables (comma-separated)")
impact_metrics_social = st.text_input("Social Impact Metrics")
impact_metrics_technical = st.text_input("Technical Impact Metrics")
impact_metrics_learning = st.text_input("Learning Impact Metrics")
milestones_project = st.text_input("Project Milestones (comma-separated)")
milestones_learning = st.text_input("Learning Milestones (comma-separated)")
evaluation_feedback_continuous = st.text_area("Continuous Evaluation")
evaluation_feedback_mechanism = st.text_area("Feedback Mechanism")
resources_support_collaborator = st.text_area("Collaborator Support")
resources_support_learning = st.text_input("Learning Resources (comma-separated)")
timeline = st.text_area("Timeline")
communication_channels_platform = st.text_input("Primary Communication Platform")
communication_channels_meetings = st.text_input("Regular Meetings (e.g., frequency and format)")
next_steps = st.text_area("Next Steps")
pdf_filename = generate_academy_project_pdf(project_title, lead_facilitator, collaborators, project_overview, collaborator_metrics,
project_deliverables, class_deliverables, impact_metrics, milestones, evaluation_feedback,
resources_support, timeline, {"platform": communication_channels_platform, "meetings": communication_channels_meetings},
next_steps)
else: # Top Talent/Product Deployment
metrics_continuous_improvement = st.text_area("Continuous Improvement Approaches")
pdf_filename = generate_top_talent_deployment_pdf(project_title, objectives, metrics_collaborators, metrics_impact, metrics_outcomes,
achievements_collaborators, achievements_solutions, achievements_implementation,
lessons_collaboration, lessons_insights, metrics_continuous_improvement)
st.success(f"PDF generated successfully! [Download PDF]({pdf_filename})")
# Download button
st.download_button(
label="Click to Download",
data=open(pdf_filename, "rb").read(),
key="download_pdf",
file_name=pdf_filename,
mime="application/pdf",
)
if __name__ == "__main__":
main()