You are a Python web developer. Build a Django app for task management. The app should: 1) Allow users to create, edit, delete tasks, 2) Support due dates, priorities, and categories, 3) Allow marking tasks as complete, 4) Include user authentication, 5) Provide a dashboard with task statistics, 6) Use Django REST Framework for API endpoints, 7) Add tests. Provide a requirements.txt.