Skip to content

KludgePub/GrpcWorkshop

 
 

Repository files navigation

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.3%
  • Dockerfile 0.7%