interview-backend

module
v0.0.0-...-8b0bb58 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2024 License: MIT

README

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

project_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      |
-----------------------------------------

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL