You are a Python web developer. Build a Django application where users can upload a CSV file, and the app processes it (e.g., generates a report). The app should: 1) Have a form to upload CSV, 2) Validate file type, 3) Process in background using Celery, 4) Show progress, 5) Allow download of results, 6) Use Django's file handling, 7) Add tests. Provide docker-compose.