--- /dev/null
+# Smart Shelf Application
+
+This application is an entry level application to demonstrate Remote Office Branch Office usecase (ROBO) for Retail Enterprise for scenario wherein there is a retail chain comprising of multiple retail stores and a retail headquater.
+The application provides Smart Shelf solution to monitor shelf's for a retail chain.
+
+Why Smart Shelf solution:
+Smart Shelf is a technological breakthrough that enhances the overall shopping experience and improves a store’s operational efficiency in terms of stock misplacement and notify empty shelves.
+
+Smart shelf benefits:
+- Smart Shelves can notify empty shelf for items when needed without requiring humans, making it easier to prevent
+ shortages of popular items at peak times.
+- Smart Shelves allow retailers to make more informed decisions about stocking and inventory, notify the back-end
+ system about the existing quantity of items on the shelves, alert when product levels are running low and when items are misplaced.
+- Provides access to the store or shelf information remotely, enables visibility of stock position, cross and up
+ selling of products.
+- Better customer experience with proper inventory for each shelf.
+
+Available Solutions:
+- Camera based with Video analytics solution
+- weight sensors/optical sensors based solutions
+This application is based on 1st solution
+
+Why Edge:
+This use case demands for low latency, jitter for scenarios like theft detection, stock misplacement.
+Currently available in-retail enterprise solutions, wherein in store deployment of compute/storage resources
+ are done, consumes store spaces and are not cost effective. 5G Telco edge based solution is a need here and this
+ application demonstrates the same.
+
+This application is developed as part of Akraino EALTEdge BP using EdgeGallery as an upstream project. Kindly refer
+ below link to get more insights about this application:
+https://wiki.akraino.org/display/AK/EALT-EDGE+Landing+Application
--- /dev/null
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: robo-deployment
+spec:
+ replicas: 2
+ selector:
+ matchLabels:
+ app: robo
+ template:
+ metadata:
+ labels:
+ app: robo
+ spec:
+ containers:
+ - name: robo
+ image: ealtedge/robo
+ ports:
+ - containerPort: 80
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: robo-service
+spec:
+ type: NodePort
+ selector:
+ app: robo
+ ports:
+ - protocol: "TCP"
+ port: 8000
+ targetPort: 80
+ nodePort: 30001
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: backup-be
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: backup
+ template:
+ metadata:
+ labels:
+ app: backup
+ spec:
+ volumes:
+ - name: task-pv-storage
+ persistentVolumeClaim:
+ claimName: task-pv-claim
+ containers:
+ - name: backup-be
+ image: ealtedge/robo-be
+ env:
+ - name: KUBE_CONFIG
+ value: "/usr/app/.kube/config"
+ - name: HOSTIP
+ value: "159.138.129.53"
+ ports:
+ - containerPort: 8091
+ volumeMounts:
+ - name: task-pv-storage
+ mountPath: "/usr/app/.kube/"
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: backup-be
+spec:
+ selector:
+ app: backup
+ type: NodePort
+ ports:
+ - port: 8091
+ name: service-port
+ nodePort: 30081
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: task-pv-volume
+ labels:
+ type: local
+spec:
+ storageClassName: manual
+ capacity:
+ storage: 1Gi
+ accessModes:
+ - ReadWriteOnce
+ hostPath:
+ path: "/root/.kube/"
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: task-pv-claim
+spec:
+ storageClassName: manual
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 1Gi
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: inventory-be
+ namespace: my-test
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: inventory
+ template:
+ metadata:
+ labels:
+ app: inventory
+ spec:
+ containers:
+ - name: inventory-be
+ image: ealtedge/inventory-be:v1.3
+ env:
+ - name: INFLUXDB_IP
+ value: "159.138.129.53"
+ - name: INFLUXDB_PORT
+ value: "30270"
+ - name: OBJ_DET_SER_IP
+ value: "159.138.129.53"
+ - name: OBJ_DET_SER_PORT
+ value: "30093"
+ ports:
+ - containerPort: 9995
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: inventory-be
+ namespace: my-test
+spec:
+ selector:
+ app: inventory
+ type: NodePort
+ ports:
+ - port: 9995
+ name: service-port
+ nodePort: 30092
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: obj-detection
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: detection
+ template:
+ metadata:
+ labels:
+ app: detection
+ spec:
+ containers:
+ - name: obj-detection
+ image: ealtedge/obj-detection
+ ports:
+ - containerPort: 9999
+ volumeMounts:
+ - name: host-path-storage
+ mountPath: "/usr/app/model/"
+ volumes:
+ - name: host-path-storage
+ persistentVolumeClaim:
+ claimName: host-path-claim
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: host-path-pv
+ labels:
+ type: local
+spec:
+ storageClassName: manual
+ capacity:
+ storage: 2Gi
+ accessModes:
+ - ReadWriteOnce
+ hostPath:
+ path: "/root/model/"
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: host-path-claim
+spec:
+ storageClassName: manual
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 2Gi
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: obj-detection
+spec:
+ selector:
+ app: detection
+ type: NodePort
+ ports:
+ - port: 9999
+ name: service-port
+ nodePort: 30093