home-recipes

module
v0.0.0-...-29136bc Latest Latest
Warning

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

Go to latest
Published: Jun 25, 2020 License: MIT

README

Home Recipes

A simple app that helps to share, learn, innovative with recipes at home!

Demo

Here is a GIF of how the app looks like:

home-recipes.gif

Tech stack

One of the key motivations to build this app was to experiment with different technologies. The technologies used to build this app are explained in the following sections:

Service definitions
  • Written using protobuf (proto3 syntax)
  • Exposes the following types of gRPC endpoints:
    • unary messages
    • server-streaming messages
    • client-streaming messages
    • bidirectional streaming messages
Application Server
  • Written in Golang (v.1.14)
  • Implements GRPC server
Client
  • Written in Dart (v2.7.2)
  • Using the Flutter framework
  • Compiled for multiple platforms
Platform support
  • Android
  • iOS
  • Web-app (partial support)
  • MacOS (partial support)
Middleware
  • HTTP-GRPC proxy implemented using gRPC-Gateway
  • Published Swagger UI on top of HTTP-GRPC proxy
Telemetry
Server deployment
  • Created as a docker image
  • Tagged docker image hosted on dockerhub
  • Running in an elastic Kubernetes cluster
  • Hosted on Azure Kubernetes Service
Test clients
  • gRPC client written in Node.js
  • gRPC client written in Golang
Client deployment

Architecture

The final architecture of the designed system is as seen here:

architecture-diagram.png

Digital whiteboarding

  • As part of the implementation stage, Miro was used as the digital whiteboard of choice
  • The miro board associated with home-recipes can be found here: https://miro.com/app/board/o9J_ktw-EKc=/
  • You will find details of multiple things including architecture design, the API definitions and UI mocks details

Developer info

Directories

Path Synopsis
client
recipes/generated
Package generated is a reverse proxy.
Package generated is a reverse proxy.
server

Jump to

Keyboard shortcuts

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