Interview Assignment - Coop Logistics API
This repository hosts the source code for a client designed to generate a
specified number of requests (N).
As part of the assignment, the candidate is
required to develop an API server capable of handling these requests.
The server can be implemented using either gRPC or HTTP protocols.
The primary objective of this test is to assess the candidate's ability to
create a robust API server that efficiently processes incoming requests as
specified by the client's operations
Before jump in some usefully links:
The test assignment instructions for a Software Engineer
-> instructions.
Overview

Repository Overview
Folders
.
├── api // API definition with gRPC proto-files
│ └── v1
├── cmd // Main function with entry point
│ └── logistics
├── devtools // Docker related files
├── docs // Instructions
│ └── assets
└── internal // Source code related to test assignment
├── generated // Autogenerated code for gRPC and HTTP Client
└── logistics // Source code of client that will send requests to required API Server
Files
├── api
│ └── v1
│ ├── logistics.swagger.json // API Swagger version used for HTTP requests
│ └── logistics.proto // API protobuf version used for gRPC requests
├── buf.*.yaml // Files that used by "Buf" to managed generated code from Protobuf
├── catalog-info.yaml // Internal Coop configuration of project, you can ignore it
└── docker-compose.yaml // template to run containers
Example of client program output:
2023/06/02 10:10:55 CargoUnit: Ferrari - 650ci Convertible moving to - Latitude:113, Longitude:31
2023/06/02 10:10:55 CargoUnit: Ligier - Milan moving to - Latitude:113, Longitude:30
2023/06/02 10:10:55 CargoUnit: Koenigsegg - New Beetle Convertible moving to - Latitude:113, Longitude:30 - Reached Objective.
2023/06/02 10:10:55 CargoUnit: Ferrari - 650ci Convertible moving to - Latitude:113, Longitude:30
2023/06/02 10:10:55 CargoUnit: Ligier - Milan moving to - Latitude:113, Longitude:30
2023/06/02 10:10:55 CargoUnit: Ligier - Milan moving to - Latitude:113, Longitude:30 - Reached Objective.
2023/06/02 10:10:55 CargoUnit: Ferrari - 650ci Convertible moving to - Latitude:113, Longitude:30
2023/06/02 10:10:56 CargoUnit: Ferrari - 650ci Convertible moving to - Latitude:113, Longitude:30 - Reached Objective.
2023/06/02 10:10:56 All delivery units reached warehouse...
Execution time: 1.202202348s
| Operation | Count | Errors |
-----------------------------------------
| MoveUnit | 13324 | 0 |
| UnitReachedWarehouse | 108 | 0 |
-----------------------------------------