Complete implementation of Phase 1-3 (64 tasks): - Phase 1: Project setup with Flask, pytest, configuration - Phase 2: Core infrastructure (auth, models, services, testing) - Phase 3: Anonymous feedback submission with file uploads Features: - Anonymous feedback submission (text and/or up to 3 file attachments) - Multi-language support (any language accepted) - File validation (type, size) and virus scanning (ClamAV) - Product management with active/archived status - File-based storage with YAML metadata - User authentication system (Flask-Login) - CSRF protection and rate limiting - Test coverage: 10 passing tests (contract + integration) Security: - No IP address logging (FR-055 compliance) - File type whitelist and size limits (10MB max) - Virus scanning with graceful degradation - Filename sanitization and secure storage Test Results: - 8 contract tests passed - 2 integration tests passed - End-to-end workflow verified 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
38 lines
1.3 KiB
HTML
38 lines
1.3 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}Feedback Submitted - {{ product.name }}{% endblock %}
|
|
|
|
{% block content %}
|
|
<div style="text-align: center; padding: 40px 20px;">
|
|
<div style="font-size: 4em; color: #2ecc71; margin-bottom: 20px;">✓</div>
|
|
|
|
<h1>Thank You!</h1>
|
|
|
|
<p style="font-size: 1.2em; margin: 20px 0;">
|
|
Your feedback has been successfully submitted.
|
|
</p>
|
|
|
|
<div style="background-color: #f8f9fa; padding: 20px; border-radius: 4px; margin: 30px 0; text-align: left;">
|
|
<h3 style="margin-top: 0;">What happens next?</h3>
|
|
<ul style="line-height: 2;">
|
|
<li>Your feedback will be analyzed automatically</li>
|
|
<li>The product team will review your submission</li>
|
|
<li>They may use your feedback to improve {{ product.name }}</li>
|
|
</ul>
|
|
|
|
<p style="margin: 20px 0 10px 0; font-size: 0.9em; color: #666;">
|
|
<strong>Reference ID:</strong> {{ feedback_id }}
|
|
</p>
|
|
<p style="margin: 0; font-size: 0.9em; color: #666;">
|
|
(This ID is for your reference only. We cannot track individual submissions.)
|
|
</p>
|
|
</div>
|
|
|
|
<p style="margin-top: 40px;">
|
|
<a href="{{ url_for('submission.form', product_slug=product.submission_url_slug) }}" class="btn">
|
|
Submit More Feedback
|
|
</a>
|
|
</p>
|
|
</div>
|
|
{% endblock %}
|