Our main idea was simple: we want to show that it's possible to separate domain model from implementation and maintain this model as the first-class project. We created 3 repos connected:
- Domain model (Protobuf 3 + Rake task to build Ruby gem and Js/Ts package): 0x000000/team7-domain
- Front-end (Vue-cli + typescript): Kaciaryna/team7-frontend
- Back-end (Ruby + grpc): 0x000000/team7-backend
This is an easy domain model built on top of the protobuf 3,
descriptions include four models (User
, Loan
, Address
, and WebClient
) and one definition for the grpc server (LoanService
).
definitions/*
— the main folder for the proto models..definitions/api/*
— descriptions for thegrpc
server interface.templates
— folder for simple lib stubs:templates/ruby
includes simple scaffold for the Ruby gem andtemplates/typescript
contains the stub for js package with ts bindings.build/*
— autogenerated folder for final libs. Do not edit.Rakefile
— the main script which creates libs based ontemplates
and compiles proto files to create functional libs for target languages into thebuild
folder.
$ brew install protobuf
$ brew install protoc-gen-grpc-web --ignore-dependencies
$ bundle && yarn
$ rake build:all
— to rebuild libs