Position: PHP Developer
Company: DevShore
Experience required: 5y
Category: PHP
English level: upper
Published: 2022-08-01T00:00:00+03:00

**Project specifications**

A user should be stored in the user table. Each user has its own customer numbers and / or API-keys to each shipper company. The Shipper Service currently supports the following shipper companies:

PostNord
A user needs 2 customer numbers from PostNord to book a freight (different ones depending on what type of freight: letter or parcel).
DHL Freight:
A user needs 1 customer number from DHL to book a freight.
DHL Express:
Awaiting response from DHL Express
Budbee:
A user needs their own unique API-keys to book a freight.

A user table for storing user and user data, and separate tables for each shipper company for storing the users shipper credentials.

To do this we need to create a database for user management. A user account needs to be created for each company that wants to book a freight using the Shipper Service.

To create a user using the API an Admin-token will be required. These should be created manually and set in the config files.

When the Shipper Service makes the request to a shipper company on behalf of the customer, the correct credentials should be retrieved from the database and used in the request.

User credentials database - Doctrine ORM, MySql

**User table**
One table for each shippers credentials
API endpoint to create user (using Admin token)
API endpoint to request a token for a user (using Admin token)
API endpoint to store shipper credentials

**Tech Stack**
PHP 8.1
Mezzio PHP framework
Doctrine ORM
Docker
MySQL

It's a freelance project with hourly rate