For a detailed dive into the high level design and implementation, please see the report.
The required dependencies will be installed simply by running:
go mod tidy
To set up protobuf for golang, install go plugins for the protocol compiler as in the docs.
We also need to build from the protobuf
files, and create the certificates required for authentication. For this, simply run:
bash setup.sh
To launch a server:
cd server
go run *.go
To launch a client:
cd client
go run *.go -load_balancer <load balancing policy>
- The
wait time
before a ride request offerred to a client (driver) is reassigned, and thenumber of reassignemnts
before a ride request is cancelled outright, can be changed in the config. - The
load balancing
policy is a hyper-parameter to the client program.
- consider implementing the enhancements mentioned in the report