Django/Python Task: Job Application Portal
Task Objective
Develop a Django-based job application platform with the following features:
- Separate dashboards for Applicants, Recruiters, and Admin
- Post jobs, apply to jobs, and review applications
- Use Django Rest Framework (DRF) for APIs
- Use Celery + Redis for async background task (email notifications)
- Implement JWT Authentication using djangorestframework-simplejwt
- Write unit tests for key functionalities
Functional Requirements
User Roles:
Admin: Full control, view all users and jobs, moderate content.
Recruiter: Can create, update, archive job listings; view applicants.
Applicant: Can register, upload resume, apply to jobs.
Models to Include
- User (with extended roles)
- JobPost (title, description, type, salary range, location, active/archive)
- Application (FK to JobPost and User, status: Applied/Rejected/Shortlisted)
- Resume (FileField, linked to user)
- CompanyProfile (for recruiters)
API Endpoints (DRF)
- /auth/register and /auth/login (JWT)
- /jobs/ list/create/update/archive
- /jobs/<id>/apply/ applicant applies
- /dashboard/applicant see applied jobs
- /dashboard/recruiter manage jobs & applications
Django/Python Task: Job Application Portal
- /admin-panel/users/ list, block/unblock users
Background Tasks (Celery + Redis)
- On application submission:
* Email to applicant (confirmation)
* Email to recruiter (new application alert)
Security
- JWT authentication
- Role-based access permissions
Testing
- Unit tests for:
* User registration
* Job creation
* Application submission
* Access control
Bonus Features (Optional)
- Swagger or Postman documentation
- Pagination for job listing
- Filters for job type, location, company
- Rate-limiting or throttling
Tech Stack
- Django 4+
- Django Rest Framework
- PostgreSQL (or SQLite for test)
Django/Python Task: Job Application Portal
- Celery + Redis
- drf-simplejwt
- Optional: Docker
Expected Time
5-7 days for a mid-level developer