Recommend this page to a friend! |
Download .zip |
Info | Documentation | View files (28) | Download .zip | Reputation | Support forum | Blog (1) | Links |
Ratings | Unique User Downloads | Download Rankings | ||||
Not yet rated by the users | Total: 87 This week: 1 | All time: 9,971 This week: 560 |
Version | License | PHP version | Categories | |||
job-portal 1.0 | The PHP License | 5 | PHP 5, Content management, Web services |
Description | Author | |||||||||||||||||||||||
This package provides an API to post working jobs and let freelancers apply. Innovation Award |
|
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
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 |
Version Control | Unique User Downloads | Download Rankings | |||||||||||||||
100% |
|
|
Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.