Demo project for Webshippy.
- Install docker (https://www.docker.com/get-started)
docker-compose up
docker exec -it [container id or name] install --prefer-dist
- e.g:
docker exec -it webshippy_php_1 composer update --prefer-dist
- e.g:
docker exec -it [container id or name] php index.php '[json]'
- e.g:
docker exec -it webshippy_php_1 php index.php '{"1":8,"2":4,"3":5}'
- e.g:
script | description |
---|---|
composer phpcs | Run code sniffer analyzer |
composer phpunit | Run unit tests and code coverage badge generator |
composer phpunit-ci | Run unit tests |
composer psalm | Code static analyzer tool |
Please refactor the included service.
- Create a public GitHub repository for the solution
- Use OOP vs sequential programming
- Follow clean code principles
- Commit after each step
- Write unit tests
- Reach maximum possible code coverage
- The behavior of the service can not be changed
Send us the url of the GitHub repository.
"Get fulfillable orders" service returns the fulfillable orders by the input stock
parameter sorted by priority and created date. An order is fulfillable if product
stock is greater than or equal to ordered quantity. Orders are stored in csv,
attached in order.csv
php get_fulfillable_orders.php '{"1":8,"2":4,"3":5}'
product_id quantity priority created_at
================================================================================
3 5 high 2021-03-23 05:01:29
1 2 high 2021-03-25 14:51:47
2 1 medium 2021-03-21 14:00:26
1 8 medium 2021-03-22 09:58:09
3 1 medium 2021-03-22 12:31:54
1 6 low 2021-03-21 06:17:20
2 4 low 2021-03-22 17:41:32
2 2 low 2021-03-24 11:02:06
3 2 low 2021-03-24 12:39:58
1 1 low 2021-03-25 19:08:22
php get_fulfillable_orders.php '{"1":2,"2":3,"3":1}'
product_id quantity priority created_at
================================================================================
1 2 high 2021-03-25 14:51:47
2 1 medium 2021-03-21 14:00:26
3 1 medium 2021-03-22 12:31:54
2 2 low 2021-03-24 11:02:06
1 1 low 2021-03-25 19:08:22