Skip to content

Commercial big-data analysis system based on WIFI probe

License

Notifications You must be signed in to change notification settings

cuiods/WIFIProbe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WIFIProbe

查看演示文档
项目文档位于./doc文件夹下,项目展示参考4.Get Started

1. Introduction

探针的原理是利用智能设备商WIFI模块所发出的无线广播信号进行设备的感知,就像是网站上的Cookie,他会记录你的访问行为和轨迹。不同的是,通过手机MAC地址所采集的是你的线下行为轨迹,比如喜欢逛什么地方,一周逛几次。相同的是,他都无法直接记录你的个人信息,例如你是谁,手机号多少,这都无法直接获得。
通过对采集MAC地址数据的分析与统计,可以把握门店的客流情况,精准监控客流质量,实时展示客流转化情况,从而帮助检测营销效果,发现潜在机会和改进措施,为便捷、高效精细化运营提供全方位数据参考。
我们使用WIFI探针设备,自主收集数据并分析了商业环境中门店的门前人流量、进店客流量、进入跳出量、新老顾客数量及新增量、在店平均时长,客流情况等内容。

2. Architecture

framework2

2.1 Abstract View

framework

  • Receiver: 探针将数据发给负载均衡器的虚拟IP,负载均衡器将请求转发给接收服务器,接收服务器发起新线程将数据加入同步缓存,每隔20分钟清空缓存,将合并的大文件传输给HDFS文件系统接口
  • HDFS & Hadoop计算集群:Hadoop计算集群从HDFS文件系统读取数据,循环进行MapReduce操作,将所有的统计结果还保存到文件系统
  • Web:Web服务器定时从HDFS文件系统读取统计结果,将统计结果分类保存到MySQL数据库,提供Restful接口响应HTTP请求,返回要求查看的统计结果以及预测数据
  • MySQL:数据库保存整点信息

3. Features

3.1 Frameworks

  • SpringBoot1.5.2.RELEASE:简化新Spring应用的初始搭建以及开发过程。
  • Swagger2.0:前后端分离契约
  • Hadoop2.7.1: 充分利用集群的威力进行高速运算和存储
  • Dva: React + Redux 最佳实践
  • Spring1.5.2.RELEASE: Spring Security 权限控制 + Spring Data JPA持久层框架
  • JavaFX: Java客户端探针管理工具

3.2 Algorithm

3.2.1 Hadoop MapReduce过程说明

algorithm pic

  • 第一次 map-reduce
    所有探针数据按照用户MAC地址分类,并按照时间排序,存入HDFS临时文件夹中。
  • 第二次 map-reduce
    我们会对每个用户(mac地址)已排序好的探针数据,统计探针数据在时间轴上的出现密度,由此得出用用户在店内的时间段,继而得出根据单个用户数据统计出来的客户流量,新老客户,回访周期,入店时长这几个统计数据。

3.2.2 预测算法:指数平滑法

algorithm pic

3.3 Test

  • Junit 单元测试套件
  • Selenium web功能自动化测试
  • Jmeter 性能测试(1000并发测试)

selenium Jmeter

  • 测试环境搭建: test env

4. Get Started

4.1 Steps

  1. (Optional)将WIFI探针的上传路径指向:http://118.89.208.120/api/v1/receive
  2. 访问http://106.15.91.25:8989/#/ 查看数据分析结果
  3. 输入用户名;manager 输入密码:manager

4.2 Develop Requirements

  • Java 1.8+
  • Maven 3.3.3+
  • JavaScript Language Version: React JSX
  • MySQL 5.6+

5. Screenshots

require_u1 require_u2 require_u3 require_u4