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( """ """, unsafe_allow_html=True ) # Set side panel color to blue st.sidebar.markdown( """ """, 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()