|
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="π") |
|
|
|
|
|
st.markdown( |
|
""" |
|
<style> |
|
body { |
|
background-color: #ffffff; |
|
} |
|
</style> |
|
""", |
|
unsafe_allow_html=True |
|
) |
|
|
|
|
|
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") |
|
|
|
|
|
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: |
|
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})") |
|
|
|
|
|
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() |
|
|