Given that our backend supports 2 types of user entities - professional and business, design and implement a system which will allow businesses to post jobs and professionals to search and apply for them.
Basic data structure might look like this:
Professional
full_name
email
title
daily_rate_range
availability
- 1-2 days/wk, 3-4 days/wk, full time or combination of themlocation
- onsite / remote / mixed or combination of them
Business
company_name
website
Job
title
daily_rate_range
availability
- 1-2 days/wk, 3-4 days/wk, full time or combination of themlocation
- onsite / remote / mixed or combination of themskills
- list of skills
Please design a set of APIs which will allow for following
- List all entities listed on the website
- Allow professional to apply for any job
- Allow to list all applicants for any job
- Limit to 5 applications per job per day
- Search for jobs, professionals
Feel free to adjust data structure as you feel would be the best.
We use Django and Django Rest Framework, so please consider using these frameworks.
Preferred way of deliverable is a link to github repo with readme on how to run and use the app.
Go to http://0.0.0.0:8008/api/v1
in your browser to see Django RESTframework's browsable API root page:
Example endpoint:
Before you can see the above you first need to log in though; e.g. via using dummy populated user credentials.
Check out the commits and inline comments for some more detail about implementation considerations.
Tested on docker version 25.0.4
-
Jump into the command line of your docker-based environment.
sudo docker compose run web bash
When running for the first time this might take a minute or two as it ...
- downloads docker image
- does docker related setup
- installs python requirements
-
Do Django set up from within your docker environment.
cd job_board python manage.py migrate python manage.py dummy_populate
sudo docker compose up
Now visit the api (example url) from a web client (e.g. browser):
http://0.0.0.0:8008/api/v1/job