Build Django JWT Auth API

Job ID: 40165968

Budget: ₹1,500 – ₹12,500 INR

I need a clean, well-structured Django REST Framework project that handles the entire user life-cycle with email-only credentials. A custom User model will replace the default username logic; every authentication step should key off the email field and reject duplicate addresses automatically.

Core flow
• Register → Email verification → Login (JWT, 1-hour expiry) → Logout
• Forgot / reset password emails sent through SMTP (I’ll supply host credentials)

Access rules
• Superusers keep full CRUD over every profile.
• Regular users may only update or delete their own profile, including avatar or other profile uploaded images.

Data layer
• UserProfile holds just name and email for now, but organise the code so I can extend it later without breaking migrations.
• All incoming data must be validated in DRF Serializers; no forms or ModelForms.

Deliverables
1. Django 4.x project with a Custom User model and Profile model.
2. JWT setup (djangorestframework-simplejwt or similar) with 60-minute access tokens and refresh tokens.
3. Endpoints: register, verify email, login, logout, refresh token, forgot password, reset password, profile read/update/delete, admin CRUD.
4. Minimal HTML templates that let me exercise each endpoint quickly from a browser.
5. Clear README covering environment setup, SMTP configuration, and endpoint examples (curl/Postman).
6. Well-named views, URLs, and serializers so the code doubles as a learning resource.

If you can include basic unit tests for the auth flow that would be a plus, but focus first on robust, readable code that follows Django best practices.