Skip to content

meads58/proximibee_Admin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

<img src=“https://codeclimate.com/github/meads58/proximibee_Admin/badges/gpa.svg” />

Our final team project at Makers Academy was to create a Beacon network for personalised shopping. This is the repo for the Proximibee Admin system.

What problem was being solved?

Online shopping is great but you can’t touch or try on the product and filtering your online search is a pain. Alternatively shopping in-store allows you to sample the product but you don’t know if you are getting the best deal and you have to queue to pay.

What if you could enter a store for a personalised shopping experience, receive discounts, view additional product information and then pay all from your phone?

What is Proximibee?

Our answer is the Proximibee phone app. A phone app that can dynamically change the product list when you move around the store.

Using iBeacon technology to set up an indoor location network the Proximibee app can pick up your position to a few inches without the need of GPS.

How does it work?

Place iBeacon devices next to your product range in the store. Then assign the products and prices to each individual iBeacon through the Admin system.

A json API is then sent from the Admin system to the phone app with all the updated details. When a customer is in range of a Beacon their Proximibee phone app knows what products to display and will change the view to display this product range.

For example say you need some sunglasses, walk over to the sunglasses range and the Proximibee app will pick up your location and display the sunglasses in your app. Simply choose the pair you want then select and pay for them in the Proximibee app.

Want some additional product information? No problem, using the augmented reality feature you can scan in a product to get additional information like a product demo or see additional colours.

Discounts can be applied real-time as shoppers are moving around the store to encourage purchases

What we actually achieved

We successfully created a working phone app using phone-gap and Admin system with the following features:

*Admin system to manage the adding and updating of product names, price and images.
*The assignment of Beacons to a product range.
*Sending a json API from the Admin system to the phone app with the Beacon settings and products.
*Change a product list in the phone app when in range of a Beacon.
*Allow you to select and add to a shopping basket within the phone app.
*View an augmented reality demo of the product from the phone app.
*View your orders.
*Make a payment.
*Send the iBeacon name and timestamps of when you were in range of each iBeacon back to the Admin database.

To manage the beacons and products I was part of the sub-team to create this gitHub repo which is the Admin system. Written in Ruby On Rails with a PSQL database it would send an api of product details to the phone app.

Next stage

If we had more time to continue on the next stage would be to implement the following

*Customer sign-up and log-on functionality so we can build a user database for promotions and discount rewards tailored to each user.
*Login functionality to the Admin system
*Data capture and reporting of shopper trends and location.

Technology used:

*Estomote iBeacons
*Phone-gap
*javascript (phone app)
*evothings workbench
*Ruby on Rails (Admin system)
*Postgresql
*rSpec/Capybara
*paperclip (image upload)
*Heroku
*AWS s3 (image storage)
*wikitude (augmented reality)

Problems and Solutions

- None of use knew anything about beacons before this project: Our first step was to work out how to receive a signal from a beacon and we found a codova plugin through the evothings workbench. Playing around with this code we discovered how to program our Beacons to create our first MVP which showed a different colour on the screen when in range a Beacon. From colours we could more to text and finally images with product details.
- Managing the Beacons and product lists: We wanted a node.js back end with a mongoDB for its speed/performance to capture the Beacon location real time from each customer's phone. After trial of node.js/express.js we didn't have a suitable solution and it was decided to use Ruby On Rails so we could move forward. Collectively we had good knowledge of Rails amongst the team and it worked out very well as a prototype to prove what we can do with the Beacon network.
- Constructing the json API in the right format was tricky. We Found a solution using the as_json method in rails and overriding it to include a list of models to construct the api with. The controller then used a respond_to method to pass the api back to the phone app.
- Storing images on heroku required a AWS account set up but there was a lot of issues with the version of the 'aws-sdk' gem and rails 4.2.1. Along with setting up the correct access rights on AWS this proved a tough task but it all worked out in the end.

The Proximibee team:

Meads, Louise, Phil, Loris and Sebastian