- DRF| SQLite| Rabbitmq| Celery| Docker| Postman
- sudo apt-get install rabbitmq-server
- sudo systemctl enable rabbitmq-server
- sudo service rabbitmq-server start OR sudo systemctl start rabbitmq-server
- sudo service rabbitmq-server status OR systemctl status rabbitmq-server
- celery purge
- celery -A backend worker --pool=solo -l info
- pip install celery --no-cache-dir
- linkedin : https://www.linkedin.com/in/akshayrr1027/
-
create application ✅
-
update application | email, name, skills ✅
-
upload and update resume ✅
-
delete application ✅
-
get one particular application ✅
-
get all applications ✅
-
ability to make an application selected or rejected ✅
-
get all selected applications ✅
-
get all rejected applications ✅
-
filter all applications by name and or email ✅
-
filter all applications based on skill ✅
-
send mail after an application is marked ✅
-
TODO (minimum):
- It should have api endpoints to create, retrieve, update, delete and list the information of an applicant. ✅
- It should also have a feature to mark applicants Selected or rejected. ✅
- TODO (extra):
- Upload Resume and store as URL ✅
- API Documentation (but in postman) ✅
- Filtering Applications ✅
- TODO (my own):
- Extra filters ✅
- Extra update APIs ✅
- Multiple jobs (it is a job (single job) review system but still mutiple jobs feature can be added in future) ❌
- Send mail after application is marked ✅
- NOTE: toogle each request, the grey colour ones are the request and response tested in local env and saved. link
-
I have kept the Application model small as of now as its a project to test my coding ability. Eg: Emitted fields like Phone_number, Degree etc deliberately, for the reasons stated before.
-
UUID is better for performing queries faster.
-
For patch request, dont keep ending slash https://stackoverflow.com/questions/2712682/how-to-select-a-record-and-update-it-with-a-single-queryset-in-django
-
Eg: Backend developer and frontend developer jobs exist. So if a user applied for backend role, they can't apply for frontend with same email id due to current design having email id as unique field.
Sol: Use uuid or shorter ID instead, i used email before to get an application uniquely as its easier by now how to go with id only.
-
Eg: UUID vs Normal ID : https://stackoverflow.com/a/58737923/13946919
-
How to upload file:
- Install pillow.
- Make necessary changes in settings file for configuration of files.
- Define the model.
- Define the serializer.
- Define the view. EG: Resume uploaded: http://127.0.0.1:8000/static/resumes/3a5fa5e4-21c9-21ce-b0eb-d5d335275f2d.pdf
-
Mumble api
-
django documentation
-
stackoverflow
job-mail