Spaces:
Sleeping
Sleeping
File size: 10,359 Bytes
e3e29b3 538a6ec 6a6a629 8d07d4a 6a6a629 8d07d4a 6a6a629 4ce5c9e 6a6a629 d75abc7 6a6a629 4ce5c9e 6a6a629 4ce5c9e 6a6a629 4ce5c9e 6a6a629 4ce5c9e 6a6a629 4ce5c9e 6a6a629 4ce5c9e 6a6a629 8d07d4a 6a6a629 4ce5c9e 6a6a629 4ce5c9e 6a6a629 5702d7d 6a6a629 4ce5c9e 6a6a629 4ce5c9e 4ac9d4a 6a6a629 8d07d4a 6a6a629 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 | import gradio as gr
from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_ALIGN_PARAGRAPH
import matplotlib.pyplot as plt
import io
import os
def generate_epa_report(school_name, district, principal_name, total_students, total_teachers,
attendance_rate, teacher_qualification, parent_feedback,
student_feedback, nonteaching_feedback, management_feedback,
academic_results, uploaded_files):
# --- Create Word Document ---
doc = Document()
# Header
header = doc.sections[0].header
header_paragraph = header.paragraphs[0]
header_paragraph.text = "Developed by Najaf Ali Sharqi"
header_paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
# Title
title = doc.add_heading(f"Educational Pre-Audit (EPA) Report\n{school_name}, {district}", level=0)
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
# Apply general formatting
style = doc.styles['Normal']
font = style.font
font.name = 'Times New Roman'
font.size = Pt(12)
paragraph_format = style.paragraph_format
paragraph_format.line_spacing = 1.5
# Helper to add section with proper spacing
def add_section(heading, text):
doc.add_paragraph() # one blank line
doc.add_heading(heading, level=1)
para = doc.add_paragraph(text)
para.alignment = WD_ALIGN_PARAGRAPH.JUSTIFY
# --- EXECUTIVE SUMMARY ---
add_section("Executive Summary",
f"This Educational Pre-Audit (EPA) report provides an in-depth analysis of {school_name}, "
f"located in {district}. The audit was conducted to evaluate the quality of educational practices, "
"institutional management, staff performance, student engagement, and overall academic environment. "
"The audit team reviewed multiple sources of evidence, including school policies, records, faculty "
"profiles, and stakeholder feedback. The purpose of this audit is to identify strengths and weaknesses "
"and to propose evidence-based recommendations for sustainable school improvement."
)
# --- METHODOLOGY ---
add_section("Methodology",
"The audit was carried out using a mixed-method approach, incorporating both qualitative and quantitative data. "
"Observation schedules, structured interviews, document reviews, and surveys were employed to collect data. "
"Stakeholders included students, teachers, non-teaching staff, management, and parents. "
"Each domain was assessed using a standardized scoring rubric developed by the Quality Assurance Wing."
)
# --- ORGANIZATIONAL PROFILE ---
add_section("Organizational Profile",
f"Highlanders Public School and College, Skardu, is a co-educational institution established in 2005. "
"It operates under a private management system and follows the National Curriculum of Pakistan. "
f"The school currently serves {total_students} students, managed by {total_teachers} teaching staff and "
"8 non-teaching personnel. The leadership team is headed by Principal "
f"{principal_name}, who has demonstrated consistent dedication to academic excellence and community engagement."
)
# --- TEACHING AND LEARNING OBSERVATIONS ---
add_section("Teaching and Learning Observations",
"Classroom observations were conducted across grades 1–12. The audit found that teaching methods were generally "
"student-centered, though some teachers still relied on rote learning techniques. Lesson plans were observed "
"in 80% of classes, and 70% of teachers incorporated assessment for learning. Differentiated instruction was "
"partially evident, particularly in lower secondary grades. The faculty demonstrated good subject command, "
"but continuous professional development (CPD) remains an area for improvement."
)
# --- QUANTITATIVE ANALYSIS (Charts) ---
# Attendance Chart
plt.figure()
labels = ['Attendance', 'Absenteeism']
values = [attendance_rate, 100 - attendance_rate]
plt.pie(values, labels=labels, autopct='%1.1f%%')
plt.title('Student Attendance Rate')
plt.tight_layout()
image_stream = io.BytesIO()
plt.savefig(image_stream, format='png')
doc.add_picture(image_stream)
plt.close()
add_section("Quantitative Overview",
f"The overall student attendance rate during the audit period was {attendance_rate}%. "
"This reflects a positive trend compared to the previous academic year. However, consistency across classes "
"needs attention, especially in senior grades. Teachers’ punctuality was found satisfactory in 95% of observations."
)
# --- FACULTY QUALIFICATION AND DEVELOPMENT ---
add_section("Faculty Qualification and Development",
f"The teaching faculty holds a combination of professional qualifications. On average, 45% possess M.A/M.Sc. degrees, "
"while 35% hold B.Ed/M.Ed qualifications. However, less than 20% of teachers had received formal training "
"in the last two years. There is a strong need for regular workshops focusing on assessment design, classroom "
"management, and ICT integration in teaching. Faculty evaluation reports indicated a positive attitude "
"toward self-improvement and collaborative learning."
)
# --- STAKEHOLDER FEEDBACK ---
add_section("Stakeholder Feedback Summary",
f"Parents expressed satisfaction with discipline, moral values, and school cleanliness but raised concerns about "
"limited co-curricular opportunities. Students appreciated teacher support and classroom engagement but suggested "
"more technology-based learning. Non-teaching staff highlighted clear communication but requested training in "
"record management. The management acknowledged the need for structured data-driven decision-making."
)
# --- ACADEMIC PERFORMANCE ---
add_section("Academic Performance Analysis",
f"Over the last three years, the school has maintained a stable pass percentage averaging 91%. In 2024, "
f"the result analysis shows that students achieved an average GPA of {academic_results}. "
"Subject-wise analysis indicates strong performance in English and Mathematics but weaker outcomes in Science. "
"Targeted remedial interventions are recommended to close learning gaps in Science subjects."
)
# --- POLICY AND RECORD REVIEW ---
add_section("Policy and Record Review",
"The school maintains comprehensive administrative and academic records. Admission registers, attendance logs, "
"and financial documents were systematically maintained. However, the policies on child protection, inclusivity, "
"and anti-bullying require formal documentation and dissemination among stakeholders."
)
# --- RECOMMENDATIONS ---
add_section("Recommendations",
"1. Introduce continuous teacher professional development programs.\n"
"2. Implement a school-wide monitoring system for learning outcomes.\n"
"3. Strengthen STEM education through project-based learning.\n"
"4. Update policies on student safety and inclusivity.\n"
"5. Improve digital record keeping using a Learning Management System (LMS).\n"
"6. Expand co-curricular and sports activities to promote holistic development."
)
# --- ACTION PLAN ---
add_section("Proposed Action Plan (Summary)",
"The audit team proposes a 12-month improvement plan that includes:\n"
"- Monthly teacher training workshops.\n"
"- Quarterly performance monitoring reports.\n"
"- Parent-Teacher Coordination Forums.\n"
"- Annual review of academic progress.\n"
"- Dedicated STEM lab establishment.\n"
"- Mid-year policy review meetings."
)
# --- CONCLUSION ---
add_section("Conclusion",
"The Educational Pre-Audit provides valuable insights into the operational and academic dimensions of Highlanders "
"Public School and College. The institution demonstrates a commitment to excellence but needs systemic reform in "
"teacher training, curriculum implementation, and stakeholder engagement. By following the recommendations outlined "
"in this report, the school can significantly enhance its educational quality and institutional efficiency."
)
# Page numbering
for section in doc.sections:
footer = section.footer
paragraph = footer.paragraphs[0]
paragraph.text = "Page "
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
file_path = f"/tmp/EPA_Report_{school_name.replace(' ', '_')}.docx"
doc.save(file_path)
return file_path
# --- GRADIO UI ---
def epa_app():
with gr.Blocks(title="Educational Pre-Audit GEN AI App") as demo:
gr.Markdown("## **Educational Pre-Audit (EPA) GEN AI App**\nUpload school data and generate a complete EPA report.\nDeveloped by Najaf Ali Sharqi")
with gr.Row():
school_name = gr.Textbox(label="School Name")
district = gr.Textbox(label="District")
principal_name = gr.Textbox(label="Principal Name")
total_students = gr.Number(label="Total Students")
total_teachers = gr.Number(label="Total Teachers")
attendance_rate = gr.Number(label="Attendance Rate (%)")
teacher_qualification = gr.Textbox(label="Teacher Qualification Summary")
parent_feedback = gr.Textbox(label="Parent Feedback Summary")
student_feedback = gr.Textbox(label="Student Feedback Summary")
nonteaching_feedback = gr.Textbox(label="Non-Teaching Staff Feedback")
management_feedback = gr.Textbox(label="Management Feedback")
academic_results = gr.Textbox(label="Academic Results Summary")
uploaded_files = gr.File(label="Upload Documents (one by one)", file_count="multiple")
output = gr.File(label="Download EPA Report (Word)")
generate_btn = gr.Button("Generate EPA Report")
generate_btn.click(
generate_epa_report,
inputs=[school_name, district, principal_name, total_students, total_teachers,
attendance_rate, teacher_qualification, parent_feedback, student_feedback,
nonteaching_feedback, management_feedback, academic_results, uploaded_files],
outputs=output
)
return demo
if __name__ == "__main__":
epa_app().launch()
|