Skip to content

JaeDukSeo/FINHack_Nov_2016

Repository files navigation

Botshop: Your personal A.I. assistant for all shopping

Summary

In their effort to help customers with their financial matters, banks shall provide their customers with BotShop. The same way that banks have financial consultants to help their customers with investing their money, BotShop serves as the personalized A.I. assistant for the day-to-day financial practices. Empowered by a powerful A.I. backend, an up-to-date geographical information, as well as the preferences and past practices of the user, BotShop is able to provide the customer with detailed information about nearby promotions, compare it with his needs and provide insights about the true value of these promotions. BotShop is the meeting point of IoT, BigData and smart personal assistants, where the data rich data enabled by IoT is processed to provide the customers with rich and profitable shopping experiences.

Motivating example

Consider our valuable customer John. John is now in Eaton Centre shopping. The Geo-communications Beacon protocol will detect that John is in Eaton center and establishes communication with him. Once communications is started, BotShop will get in, communicating with John' cloud where the A.I. engine is running. The A.I. engine knows that it is November already and winter has started. John's smart closet at home will also notify the A.I. engine that John needs a winter coat. The A.I. engine also knows John's current budget and how much he pays for winter coats o average. The A.I., being aware of john's location and the nearby stores, will communicate with the stores and get what special promotions they have for winter coats. The A.I. engine will then decide which offers are worthy of John's attention, and inform him of the nearby stores, how much is the discount, and how different is the price from John's past purchases. One example of a message that we send is "Winter Coat is under 50.0% discount at Store W&V. This is 34% cheaper that what you normally pay. You are 250 away from your average budget for this category."

Architecture





Beacon Communication and Raspberry Pi

When we originally conceptualized our project, we were under the impression that estimote beacons would be available. Due to complications with importing them, we had to improvise by turning a Raspberry Pi into a minimal functioning beacon.

The beacon works via a low-level instruction set programming for the bluetooth chip within the PI. By utilizing libraries like PyBluez we are able to configure these instructuions. Using Eddystone command setup we were able to write these to the bluetooth.

Ultimately the beacon produces a Physical Web link for nearby devices to pickup at will.

Back-End

The back-end consists of NGINX proxy server. All dynamic requests are processed by Django application. The Django app mainly recieves the user credentials and calls AI Engine. Upon the end of the AI Engine operation, Django app sends response (which is user-related suggestions) to the front-end. Django app stores user related information inside PostgreSQL that is located on the same server with the Django app. The back-end consists of 2 servers: proxy server and computation server. Since computation server is privately owned it cannot be accessed external HTTP/HTTPS requests. The reason for using the computation server is due to its computational power (32 cores, 32 GB MEM) which is required by AI Engine. The proxy server has a private subnet established with the computation server. The proxy server redirects all requests to the computation server. The proxy server also maintains SSL certificates required by HTTPS protocol for the Beacon Device.

A.I. Engine





Operation:

  1. Process the historical transactions data and make prediction about the budget for each category of purchases for next month.
  2. Keep an estimate for the average price spent per category.
  3. Keep an updated estimate of the total expenses for current month.
  4. For each promotion, find whether the price for the promoted category will break the budget.
  5. If not, find how the announced price compares to the average value the user used to spend before.
  6. Finally send the message to the user with the personalized information about how the promotion, the predicted budget and the true savings the user is making based on his past purchases.

The following figures show the performance of our A.I. prediction engine for items of different categories.













About

Django Backend for FINHack Nov 2016

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published