Giter Club home page Giter Club logo

job_board's Introduction

Problem description

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 them
  • location - 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 them
  • location - onsite / remote / mixed or combination of them
  • skills - 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.

Solution

Overview

Go to http://0.0.0.0:8008/api/v1 in your browser to see Django RESTframework's browsable API root page:

drf-browsable-api-urls-once-logged-in

Example endpoint:

example-endpoint-via-drf-browsable-api

Before you can see the above you first need to log in though; e.g. via using dummy populated user credentials.

how-to-log-in

Check out the commits and inline comments for some more detail about implementation considerations.

commits

Requirements

Tested on docker version 25.0.4

Local server (for debugging purposes)

Setup

  1. 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
  2. Do Django set up from within your docker environment.

     cd job_board   
     python manage.py migrate   
     python manage.py dummy_populate    
    

Running local server

    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

job_board's People

Contributors

robrechtdr avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.