KS2 Writing Assessment Tool
Analyzing document... Please wait...
{% if error %}
{{ error }}
{% endif %}
{% if result %}
This writing is
{% if result.meets_standard %}
at the expected standard
{% else %}
working towards the expected standard
{% endif %}
for Key Stage 2 (Overall Score: {{ result.score }}%)
Detailed Scores:
{% for criterion, score in result.detailed_scores.items() %}
- {{ criterion|title }}: {{ score }}%
{% endfor %}
Text Statistics:
{% for stat, value in result.stats.items() %}
- {{ stat|replace('_', ' ')|title }}: {{ value }}
{% endfor %}
{% if result.improvements %}
Ways to improve:
{% for improvement in result.improvements %}
- {{ improvement }}
{% endfor %}
{% endif %}
{% endif %}
"""
@app.route('/', methods=['GET', 'POST'])
def index():
error = None
result = None
if request.method == 'POST':
try:
if 'pdf' not in request.files:
raise ValueError('No file uploaded')
pdf_file = request.files['pdf']
if pdf_file.filename == '':
raise ValueError('No file selected')
if not allowed_file(pdf_file.filename):
raise ValueError('Invalid file type. Please upload a PDF file')
text = extract_text_from_pdf(pdf_file)
result = analyze_text(text)
except Exception as e:
error = str(e)
logging.error(f"Error processing request: {str(e)}")
return render_template_string(HTML_TEMPLATE, result=result, error=error)
if __name__ == '__main__':
app.run(debug=True)