Skip to content

Anton-Augustsson/customer-portal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Customer portal

An example application of a scalable customer portal developed in Golang using gin for the backend and Angular for the frontend.

Quick start

Requirements

  • Docker
  • Protobuf and gRPC
  • Kind
  • Kubectl
  • Helm

Generate Client and server stub

cd backend
./update-grpc.sh

Build images

All microservices needs currently needs to be build manually. An example is shown how it works for subscription-service.

cd backend/subscription-service
docker build . --tag subscription-service
kind load docker-image subscription-service:latest

Deploy

helm install customer-portal-test customer-portal

Currently, when deploying with kind the port is not exposed to the host, so you need to run an exposure command manually. You need to first find the name of the pod you want to expose.

kubectl get pods

Then you can use the pod to expose the port.

kubectl port-forward robot-remote-controller-deployment-7b775fd47c-n9x59 8182:50051

Note: exchange robot-remote-controller-deployment-7b775fd47c-n9x59 with your pod.

The example

The functionality that the system provides is viewing a camera on a remote device, e.g. a raspberry pi. Each customer has a subscriber account and they have a subscription to each of the cameras they want to view, i.e. one subscription for one camera. Both using the remote camera viewer and managing subscriptions is accessible through the customer portal.

Domain concepts (resources)

  • Subscriber
  • Subscription
  • Camera

Resources

gRPC

API design

GO

NGINX

Angular

Live streaming service

Further reading

OpenAPI

Spring boot

An alternative to Golang for microservices is JAVA using the spring boot framework. However, it is slower and have become unessesaraly more complex over the year, and arguably Golang is more suited for microservices.

About

An example application of a scalable customer portal developed in Golang using gin for the backend and Angular for the frontend.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published