Recommend this page to a friend! |
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.
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
Base URL ? localhost:8080 ApiKey is in the .env file
/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.
/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.
/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.
/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.
/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.
/api/jobs/published
Method ? GET
Token must be passed to the header (with token
as the key) and content-type is json.
/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.
/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.
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
Classes of uche | > | PHP Job Portal Project API | > | Download .zip .tar.gz | > | Support forum | > | Blog (1) | > | Latest changes |
|
Groups | Applications | Files |
Groups |
PHP 5 | Classes using PHP 5 specific features | View top rated classes |
Content management | Components and tools to manage content | View top rated classes |
Web services | Web data clipping, SOAP or XML-RPC clients and servers | View top rated classes |
Innovation Award |
March 2022 Nominee Vote |
Many professionals work as freelancers to other companies to do the work they need. Usually, freelancers don't know what jobs exist, nor do companies know how to find professionals that match their job requirements. This package provides an API that implements a system to connect companies with jobs with professionals looking for work. Since it is a generic job system API, you can adapt it to any activity area. Manuel Lemos |
Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.
Files |
File | Role | Description | ||
---|---|---|---|---|
.idea (4 files) | ||||
logs (1 file) | ||||
public (2 files) | ||||
src (5 files, 2 directories) | ||||
templates (1 file) | ||||
tests (1 directory) | ||||
.env | Data | Auxiliary data | ||
composer.json | Data | Auxiliary data | ||
composer.lock | Data | Auxiliary data | ||
CONTRIBUTING.md | Data | Auxiliary data | ||
docker-compose.yml | Data | Auxiliary data | ||
job_posting_schema.sql | Data | Auxiliary data | ||
phpunit.xml | Data | Auxiliary data | ||
README.md | Doc. | Documentation |
Files | / | .idea |
File | Role | Description |
---|---|---|
job_portal_api.iml | Data | Auxiliary data |
modules.xml | Data | Auxiliary data |
vcs.xml | Data | Auxiliary data |
workspace.xml | Data | Auxiliary data |
Files | / | src |
File | Role | Description | ||
---|---|---|---|---|
db (2 files) | ||||
services (3 files) | ||||
dependencies.php | Example | Example script | ||
middleware.php | Example | Example script | ||
routes.php | Aux. | Auxiliary script | ||
settings.php | Aux. | Auxiliary script | ||
Utilities.php | Class | Class source |
Files | / | src | / | db |
File | Role | Description |
---|---|---|
connect.php | Class | Class source |
methods.php | Class | Class source |
Files | / | src | / | services |
File | Role | Description |
---|---|---|
Employer.php | Example | Example script |
Freelancer.php | Example | Example script |
Jobs.php | Example | Example script |
Files | / | tests | / | Functional |
File | Role | Description |
---|---|---|
BaseTestCase.php | Class | Class source |
HomepageTest.php | Class | Class source |
Download all files: job-portal.tar.gz job-portal.zip NOTICE: if you are using a download manager program like 'GetRight', please Login before trying to download this archive.
|