Giter Site home page Giter Site logo

jaedukseo / finhack_nov_2016 Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 50.92 MB

Django Backend for FINHack Nov 2016

Shell 0.02% Python 85.62% CSS 1.00% JavaScript 1.67% HTML 0.65% C 0.97% C++ 9.78% Objective-C 0.01% Fortran 0.03% Makefile 0.22% MATLAB 0.01% PHP 0.01%

finhack_nov_2016's Introduction

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.













finhack_nov_2016's People

Contributors

jaedukseo avatar

Watchers

James Cloos avatar satchel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.