Challenge Overview
Project Description:
The goal of this project is to build a responsive, HTML5-based Location Based Analytics application. This app will parse through data from several inputs (wifi, social media, mobile, etc.) and integrate it with transactional information to generate analytics on customer traffic and movement throughout a retail location. With this data the user can optimize customer interactions and operations, and can unlock the following:
- Onsite Insights: A better understanding of customer profile and his/her behavior within a retail location
- Dynamic Targeting: Market specific products based on the profile of the customer and his/her behavior patterns
Essentially, a user (store manager, marketing professional, etc.) will be able to use this app to monitor visitors/customers within a retail location. They can see where users are within that location as well as view their transaction data (what they are buying, how much, etc.). This in turn gives the user great insights into their customers and allows them to directly target specific customers or groups of customers with specific advertisements and promotions directly related and of interest to them. The Location Based Analytics app is the dashboard and tool to monitor that data and initiate those advertisements.
Competition Task Overview:
For this challenge, you are expected to break down the requirements, define the detailed architecture for the whole system, by clearly answering the following questions (but not limiting to them)
-
What technologies will be used for the LBA application? In general, it is targeted to be created as a responsive, HTML5 web application. The backend should be platforma independent (for example: Java / Spring MVC is fine, but C# is not). We also need the solution to be able to connect to different databases, like Cloudera, Oracle, HP Vertica, etc...
-
How will the data be accessed from the existing backend?
Using the provided documentation, competitors will complete the architecture deliverables (https://apps.topcoder.com/wiki/display/tc/Module+Architecture+Tutorial+-+Deliverables).
NOTE: some screens are still missing from the storyboard (example: Preferences, Profile, Settings, Alerts, etc....) and and these screens are in scope as well. If we can't provide them during the submission phase then the winner will need to update the architecture to cover these screens as well.
Application Requirements:
The screen designs of the app have been provided as the input to the challenge. The key requirements the app should meet include:
-
Build a web-based dashboard that will give our users the following analytics information and insights:
-
Insight into customer traffic and movement across different/specific sections of a retail location in real-time
-
Visually see high concentrations of people in an area which can then be used for ad placements and staff planning
-
The ability to initiate advertisements / offers to displays within that area and/or to individual customers: the store owner will click on the campaign picture that gets displayed - (For example on 24-LBA-Map-Billboard-Detail.jpg). This should trigger an input into a table in the data store. At the client, we can add an event that reads any changes in the event catch-all table and performs actions (either to the billboard or sending texts to the customer) based on that. So we would input a message such as: ACTION: DISPLAY Campaign X on billboard OR ACTION: Send campaign X to this customer into the table - based on the interaction the store manager has with the dashboard. If the Store Manager has clicked on a billboard and changes the campaign - then the Action would be to change the campaign (If on a customer, then send the message to customer). We need to design this table that stores such input, and client has an external app that will read from this table and perform the specified operation. All that needs to be done from this app is to insert the records into the table.
-
-
Help the user understand movement/flow of traffic within the store
-
Consolidated sales information for a specific day. Ability to dive deeper and view data on specific times within that day. Compare data from multiple days / weeks to gain deeper insights
-
Showcase the results of campaign or offer. How many customers where engaged, made a purchase, etc.
-
-
Enable the use of targeted advertising:
-
The user should be able to send specific advertising campaigns and/or assets based on the visualizations and data that they are seeing in the dashboard
-
The user should also have the ability to send offers to a customer(s) based on their transaction data and/or location in a retail location
-
Initiate and/or tweak campaigns to provide content anywhere, anytime and on any device
-
-
Combine the customer's transactional and interaction data to improve store operations (onsite insights) and conversion ratios (dynamic targeting)
-
Accessible insight & analytics: Every interaction connected to an event, offer, subscription or download provides additional data that allows for quick marketing segmentation and a holistic view of customer behavior
-
Navigate between screens and interact with the data and visualizations.
Note: Additional requirements are included in the attached requirement document.
Data Sets:
The client has some existing data sets available that will be used by the LBA app:
- 01 PRODUCT_SET.xlsx: Product Set: corresponds to the products listed at the top of this screen:
- 02 SALES_SET.xlsx: Transactional Data Set (Showing $ sales per day). The sales set corresponds to the pop-up graph on 26-LBA-Map-Sales-Detail.jpg. We don’t have data for the Store Manager, store open time, etc., since those were introduced during the design challenge. You can either create sample data for that, or provide us the missing data elements and we can mock it up. Note that our current dataset only corresponds to one store, so you’ll have to duplicate that to show data from multiple stores.
- 03 CUST_DISTRIBUT_SET.xlsx: Customer Distribution (Showing volume flows from one section to another) - This data indicates how customers flow from one section of the store to another section. This corresponds to the design showing arrows from one section to another.
- 04 COORDINATE_SET.xlsx: Sectional logic (to show how x and Y co-ordinates are split into sections for the floor map). If you filter by Description, you will see four (x,y) coordinates that make up a rectangle
- 05 USER_PROFILE_SET.xlsx - the customer profile dataset (includes customer demographics data with age, gender, etc). The User ID in the first column corresponds to the uid in the 02 SALES_SET file.
- 06 USER_TRAFFIC_SET.xlsx - the user traffic dataset contains location data of users (from the user profile set) as they move about in the store.
NOTE: Sample data from these data sets are available in the attached zip file ‘LBA data sets.zip’.
Technology Overview:
The Location Based Analytics application will be a responsive, HTML5-based web app. The main devices to target are iPad and Desktop, but it will also need to work on various devices / screen sizes.
Technology Requirements:
-
Current database type: .
-
HP Vertica regular SQL store
-
Vertica version —v7.0.0-1:
-
-
Database schema:
-
Will have a structure similar to the sample extracts provided which were table dumps
-
Additional scheme design should be designed as part of the challenge
-
-
READ vs WRITE: Most of the database tables will simply be READ from. However, we might need some WRITE actions to records changes to campaigns made by store manager or offers sent out.
-
Backend technology:
-
No specific requirements on technology stack for the backend.
-
Open for the architects to recommend the best choice.
-
-
Frontend technology:
-
The front end needs to support the design from the first challenge – that is the main requirement
-
HTML5 + Angular.js are okay to use, D3.js is okay to use as well (open to other solutions if you have a better recommendation).
-
-
Open source solutions can be used as long as they follow one of the approved licenses below:
-
Apache License 1.1, 2.0
-
BSD 2-Clause “Simplified” License
-
BSD 3-clause "New" or "Revised" License
-
BSD 4-clause "Original" or "Old" License
-
MIT License
-
Python License 2.0
-
Final Submission Guidelines
Submission Deliverables
-
Application Design Specification
-
Entity Relationship Diagram(s)
-
Sequence Diagrams
-
Interface Diagrams
-
Assembly Specifications
- NOTE: A game plan for the challenges you specify is also required.
Submission Guidelines
For each member, the final submission should be uploaded via the challenge detail page on topcoder.com.