Skip to content

nicole-malaquias/Freeladev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FreelaDev

Routes

​ ​

GET List of jobs that don't have a developer assigned to it *****

freeladev.com/api
{
  "name": "SpaceBlog",
  "description": "an website about astronomy",
  "price": 3000,
  "difficulty_level": "beginner",
  "expiration_date": "12/12/2021 23:59",
  "contractor": {"name": "Thiago Almeida",
  "email":"thiagoi43@gmailcom", 
  "cnpj": "13.339.532/0001-09"}
}

GET List of developers

freeladev.com/api/developers
{
  "name": "Vitor Menezes",
  "email": "[email protected]",
  "birthdate": "17/10/1990",
  "technologies": [{"name": "python"}, {"name": "javascript"}]
}

GET List of contractors

freeladev.com/api/contractors

{
  "name": "Pedro Musk",
  "email": "[email protected]",
  "cnpj": "13.339.532/0001-09"
}

​ cnpj can be optional

{
  "name": "Pedro Musk",
  "email": "[email protected]",
}

Developer

POST Login (Developer and Contractor)

freeladev.com/api/login

Request

{
  "email": "[email protected]",
  "password": "freela123"
}

Response

{
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTYzNDc3NzQ2OSwianRpIjoiN2ZmY2YwMmMtNmY5Zi00ZDdjLTgzNWMtNWRkMmNmMjQxODFhIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6eyJuYW1lIjoiYmlsbGllIiwiZW1haWwiOiJiaWxsaWVAZ21haWwuY29tIiwiYmlydGhkYXRlIjoiVGh1LCAxMiBEZWMgMjAwMiAwMzowMDowMCBHTVQifSwibmJmIjoxNjM0Nzc3NDY5LCJleHAiOjE2MzQ3NzgzNjl9.GuL7ZL3zwKDndeMDUGXYbInyJ1egt-dngY80TIIiQHo"
}

POST Developer's signup

freeladev.com/api/developers/signup

Request

{
"name": "Kiko Solimões",
"email": "[email protected]",
"password": "Nino2016*#",
"birthdate": "01/01/2012",
"technologies": [{"name": "python"},
 {"name": "react"}]
}

Response

{
  "name": "Thiago Camargo",
  "email": "[email protected]",
  "birthdate": "07/07/1998",
  "technologies": [{"name": "python"},
  {"name": "react"}]
}

GET Developer's information

freeladev.com/api/developers/profile

Response

{
  "name": "Thiago Camargo",
  "email": "[email protected]",
  "birthdate": "07/07/1998",
  "technologies": [{"name": "python"},
 {"name": "react"}]
}

PATCH Update developer information

freeladev.com/api/developers/update

​ Can contain: "name", "email" and/or "birthdate" and/or "technologies" " Request "

{
  "technologies": [{"name": "python"}, {"name": "react"}]
}

Response

{
  "name": "Thiago Camargo",
  "email": "[email protected]",
  "birthdate": "07/07/1998",
  "technologies": [{"name": "python"},
   {"name": "react"}]
}

if you want to patch the technologies list you need to request all the previous technologies along with the new one or any modification

DELETE Delete Developer

freeladev.com/api/developers/delete

Response

NO CONTENT, 204

Contractor routes

POST Contractor's signup

freeladev.com/api/contractors/signup

​ Request ​

{
  "name": "Pedro Musk",
  "email": "[email protected]",
  "cnpj": "13.339.532/0001-09",
  "password": "Bertyt2017*#"
}

Response

{
  "name": "Pedro Musk",
  "email": "[email protected]",
  "cnpj": "13.339.532/0001-09"
}

GET Contractor's information

freeladev.com/api/contractor/profile

Response

{
  "name": "Pedro Musk",
  "email": "[email protected]",
  "cnpj": "13.339.532/0001-09"
}

PATCH Update contractor's information

freeladev.com/api/contractor/update

​ Body json can contain: "name", "email" "cnpj" " Request " ​

{
  "email": "[email protected]"
}

Response

{
  "name": "Pedro Musk",
  "email": "[email protected]",
  "cnpj": "13.339.532/0001-09"
}

DELETE Delete Contractor

freeladev.com/api/contractor/delete

Response

NO CONTENT, 204

Jobs

POST Create a job

freeladev.com/api/jobs/create

Request

{
  "name": "SpaceBlog",
  "description": "a website about astronomy",
  "price": 3000,
  "difficulty_level": "beginner",
  "expiration_date": "12/12/2021 23:59"
}

Response

{
    "name": "SpaceBlog",
    "description": "a website about astronomy",
    "price": 3000,
    "difficulty_level": "beginner",
    "expiration_date": "12/12/2021 23:59",
    "progress": null

}

GET Get job by price and difficulty

freeladev.com/api/jobs/info?price=3000&difficulty=beginner

Response ​ If it's a developer using the route it'll also return:

    {
      "id": 1,
      "name": "SpaceBlog",
      "description": "a website about astronomy",
      "price": 3000.0,
      "difficulty_level": "beginner",
      "expiration_date": "07/07/2022",
      "progress": null,
      "developer": null,
      "contractor": {
        "name": "Kika06",
        "email": "[email protected]",
        "cnpj": "16.466.789/0000-00"
      }
    }

GET Information about a specific job

freeladev.com/api/job/info/<job_id>

Response

{
  "id": 63,
  "name": "Project with python",
  "description": "a website about astronomy, using python, react, java, flask, springboot",
  "price": 3000.0,
  "difficulty_level": "beginner",
  "expiration_date": "Sun, 12 Dec 2021 23:59:00 GMT",
  "progress": null,
  "developer": null,
  "contractor": {
    "name": "Rubens",
    "email": "[email protected]",
    "cnpj": "97.789.087/1245-09"
  }
}

GET Get job by Tech *****

freeladev.com/api/job

Response

{
  "name": "SpaceBlog",
  "description": "a website about astronomy",
  "price": 3000,
  "difficulty_level": "beginner",
  "expiration_date": "12/12/2021 23:59",
  "progress": "ongoing"
}

GET Get job by id authenticated *****

freeladev.com/api/job/info/<job_id>

Response

{
  "name": "SpaceBlog",
  "description": "a website about astronomy",
  "price": 3000,
  "difficulty_level": "beginner",
  "expiration_date": "12/12/2021 23:59",
  "progress": "ongoing"
}

If it's a developer using the route it'll also return: ​

{
  "contractor": {
    "name": "Rubens",
    "email": "[email protected]",
    "cnpj": "97.789.087/1245-09"
  }
}

​ If it's a contractor using the route it'll also return if there's already a developer assigned to the job: ​

{
  "developer": "Thiago Camargo",
  "developer_email": "[email protected]",
  "developer_birthday": "01/01/1998"
}

PATCH Update a job

freeladev.com/api/job/update/<job_id>

Body json can contain: "name", "description", "price", "difficulty_level", "expiration_date" e "developer: email"


Request

{
  "developer": "[email protected]"
}

​ _Response_ ​

{
    "name": "SpaceBlog",
    "description": "a website about astronomy",
    "price": 3000,
    "difficulty_level": "beginner",
    "expiration_date": "12/12/2021 23:59",
    "progress": "ongoing",
    "developer": {"name": "Filipe Ramos",
    "email": "[email protected]",
    "birthdate": "01/01/1998"}

}

​ ​

DELETE Delete a job you must owner of the job to delete it

freeladev.com/api/job/delete/<job_id>


Response

NO CONTENT, 204

GET Developer jobs

freeladev.com/api/developers/jobs

Response

[
  {
    "name": "FishWorld",
    "description": "a website about fishing",
    "price": 4000,
    "difficulty_level": "begginer",
    "expiration_date": "06/06/2021 23:59",
    "progress": "completed",
    "contractor": {"name": "Thiago Almeida" "email": "[email protected]",
    "cnpj": "10.332.532/0002-09"}
  },
  {
    "name": "SpaceBlog",
    "description": "a website about astronomy",
    "price": 3000,
    "difficulty_level": "beginner",
    "expiration_date": "12/12/2021 23:59",
    "progress": "ongoing",
    "contractor": {"name": "Thiago Almeida" "email": "[email protected]",
    "cnpj": "13.339.532/0001-09"}
  }
]

GET Contractor jobs

freeladev.com/api/contractor/jobs

Response

[
  {
    "name": "Developers hub",
    "description": "a website about programming",
    "price": 15000,
    "difficulty_level": "advanced",
    "expiration_date": "08/08/2021 23:59",
    "progress": "completed",
    "developer": {
      "name": "Filipe Ramos",
      "email": "[email protected]",
      "birthdate": "01/01/1998"
    }
  }
]

GET Contractor jobs

freeladev.com/api/contractors/jobs?progress=None&page=1&per_page=2

Response

[
  { 
    "id": 1,
    "name": "SpaceBlog",
    "description": "a website about astronomy",
    "price": 3000.0,
    "difficulty_level": "beginner",
    "expiration_date": "07/07/2023",
    "progress": null,
    "developer": null
  }
]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages