Spaces:
Build error
Build error
| 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() | |