PHP Classes

File: README.md

Recommend this page to a friend!
  Classes of uche   PHP Job Portal Project API   README.md   Download  
File: README.md
Role: Documentation
Content type: text/markdown
Description: Documentation
Class: PHP Job Portal Project API
API to post working jobs and let freelancers apply
Author: By
Last change:
Date: 2 years ago
Size: 3,567 bytes
 

Contents

Class file image Download

Introduction

aDa is a job portal which connect company and expert freelancer/part-timer. It always keep track of freelancer performance, the more job freelancer completed the more benefit they gained. There are 2 ranks for freelancer with 2 different proposal space as monthly limit for submitting proposal. The ranks are: rank B with 20 pts and rank A with 40 pts.

Objective

This API was developed to: + Enable company to create and post job as well as view proposal for their job postings + Enable freelance to view jobs and submit proposal to it + Employer can create job post, then they can either save it as draft or publish it + Freelancer can view list of published jobs + Freelancer can only submit one proposal to any published job + Each application submitted by freelancer will reduce the proposal space by 2pts, so the rank B freelancer can only submit 10times max and rank A can submit 20times max + Employer can view proposal from freelancer for their job post

Documentation

Base URL ? localhost:8080 ApiKey is in the .env file

Create employer

/api/employer/register
Method ? POST
Body Parameters ? company_name, email, password

ApiKey must be passed to the header (with apiKey as the key) and content-type is json.

Login for employer

/api/employer/login Method ? POST Body Parameters ? email, password

ApiKey must be passed to the header (with apiKey as the key) and content-type is json.

Create freelancer

/api/freelancer/register
Method ? POST
Body Parameters ? name, email, password, rank_id
NB: rank_id can either be 1 or 2. 

ApiKey must be passed to the header (with apiKey as the key) and content-type is json.

Login for freelancer

/api/freelancer/login
Method ? POST
Body Parameters ? email, password

ApiKey must be passed to the header (with apiKey as the key) and content-type is json.

Add a job posting

/api/jobs/create
Method ? POST
Body parameters ? title, description, status_id, created_by

NB: status_id can either be 1 or 2, that is, published or draft respectively. created_by is the id of the employer

Token must be passed to the header (with token as the key) and content-type is json.

View all published jobs

/api/jobs/published
Method ? GET

Token must be passed to the header (with token as the key) and content-type is json.

Create a job proposal (for freelancer)

/api/jobs/proposal/create
Method ? POST
Body parameters ? proposal, job_id, freelancer_id

This endpoint ensures a freelancer does not exceed his monthly job proposals allocations.

Token must be passed to the header (with token as the key) and content-type is json.

Fetch all submitted proposals for a job

/proposals/{job_id}
Method ? GET

NB: job_id is the id of the job posted.

Token must be passed to the header (with token as the key) and content-type is json.

Other notes:

This API was written using the Slim framework. API endpoints are grouped into services ? Employer, Freelancer and Job, located in the src/services folder.

The .env file contains the API key and database configurations. The database schema can be found in the project root folder ? job_posting_schema.sql

To get started with testing this API, + clone or download source code (unzip) + Run composer install + cd to project folder + Run this command php -S localhost:8080 -t public public/index.php to start the server.

See https://www.slimframework.com/

Contact Me: radioactive.uche11@gmail.com