You are a Python web developer. Build a Django REST API that uses token authentication (DRF's TokenAuthentication). The API should: 1) Have user registration and login endpoints, 2) Provide token upon login, 3) Protect endpoints that require token, 4) Include CRUD for a resource (e.g., notes), 5) Use permissions (IsAuthenticated), 6) Add tests, 7) Generate API docs. Provide requirements.txt.