planet-express

module
v0.0.0-...-193501d Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2020 License: MIT

README

Planet Express

A fully functional end-to-end app with everything except a DB. To see it in action, run make and then the following three commands, each in a separate terminal and all from the root directory

./ship/ship
./headquarters/headquarters
yarn --cwd ./dashboard install
yarn --cwd ./dashboard start

Aside from the tasks accomplished below, I also:

  • Refactored the headquarters/main.go files into a few different files depending on responsibilities
  • Implemented the GetShip GetCrew, GetDelivery and ListDeliveries methods all in GraphQL, with GetDelivery searching based on UUID (only GetShip is shown in the React UI)
  • Added a CrewMember resource to specify the members of the Crew
Tasks Completed
Phase 1

Note: Some of this functionality I removed when I started building Phases 2 & 3 (like writing to the JSON file). All of this phase's functionality can be found in the assignment1 branch

✅ Implement crew.proto and delivery.proto and the functions listed in planet_express_service.proto

✅ Refactor ship.proto to use the crew and delivery resources.

✅ Implement the rpc functions (defined in planet_express_service.proto) in both the client (./headquarters) and server (./ship), following the GetShip example. You do not need to add a database. Experiment with using data contained in the gRPC request.

✅ Output data about the planet express ship, deliveries, and crew members to a json file called planet_express.json. Feel free to get creative with your data and protobuf resources.

✅ Add a dockerfile to ./ship so that we can run the server with docker.

Phase 2

❌ Provide a basic helm template for the ./ship server. This should contain a kubernetes deployment and service. We should be able to port-forward your service to call the ./ship rpc functions.

✅ Add additional protobuf resources like ShipEngine. You can get creative with this. - Added CrewMember to the Crew resource

✅ Add GraphQL support to the gateway (headquarters client). A good library for this is https://github.com/graph-gophers/graphql-go

✅ Map a graphql resource and endpoint to a gRPC call such that you can use a GraphQL client to get data from the ship backend.

Phase 3

✅ Add a simple React SPA that displays data about the ship using GraphQL to communicate with the gateway (headquarters service). You can put this in the ./dashboard directory.

❌ Add some go unit tests to the ship server.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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