explaingit

happynewyear1995/uba-x

47JavaAudience · developerComplexity · 4/5LicenseSetup · hard

TLDR

UBA-X is a self-hosted enterprise user behavior analytics platform that collects events from websites and apps, processes them in real time with Apache Flink, and displays results in a multi-tenant dashboard.

Mindmap

mindmap
  root((UBA-X))
    Data collection
      Web tracking
      Mobile app
      Mini-programs
      Probe agents
    Processing
      Apache Flink
      Real-time streaming
      Redis cache
    Analytics
      Page visits
      Event tracking
      User profiles
    Architecture
      Multi-tenant
      Spring Boot backend
      Vue 3 dashboard
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Track page visits and custom events across web, mobile, and mini-program clients without sending data to a third-party analytics service.

USE CASE 2

Build user profiles and behavior reports for multiple tenants from a single self-hosted installation.

USE CASE 3

Replace a SaaS analytics tool with a self-managed platform that keeps all event data inside your own infrastructure.

Tech stack

JavaSpring BootVue 3Apache FlinkRedisMyBatis Plus

Getting it running

Difficulty · hard Time to first run · 1day+

Requires Java 17, Redis, a compatible database, and optionally Apache Flink for real-time processing.

Apache 2.0: use freely in personal or commercial projects, including modifications, with attribution.

In plain English

UBA-X is an enterprise-grade user behavior analytics platform written in Java and Vue. The name stands for User Behavior Analytics, and the project covers the full data lifecycle: collecting events from websites, mobile apps, and mini-programs, then streaming those events through a processing engine, and presenting the results in a visual dashboard. On the data collection side, the system supports web, H5, mobile app, and WeChat mini-program sources. Raw events flow into a real-time processing pipeline built on Apache Flink, which computes metrics as data arrives rather than waiting for batch jobs to complete. Processed results land in storage layers that can be configured to match the scale of the deployment. The analytics capabilities include page-visit tracking, custom event tracing, and user-profile building across multiple dimensions. The platform supports multiple tenants on a single installation, with permission controls that isolate each tenant's data and administration. A distributed probe system called ubax-pilot lets operators remotely manage and configure data collection agents running across different services. The backend uses Java 17 with Spring Boot as the core framework, MyBatis Plus for database access, Redis for caching, and Liquibase for managing database schema changes. The frontend is a Vue 3 application using Element Plus for UI components, Pinia for state management, and Vite as the build tool. The project is licensed under Apache 2.0. Getting the full stack running requires setting up Java, a compatible database, Redis, and optionally Flink for real-time mode. It is a multi-component system suited to teams that want a self-hosted analytics platform without sending data to a third-party service.

Copy-paste prompts

Prompt 1
Help me configure the UBA-X ubax-pilot probe to collect custom click events from a Vue 3 web app.
Prompt 2
How do I add a new tenant in UBA-X and restrict its admin users to only their own data?
Prompt 3
Write a Flink job configuration for UBA-X that aggregates page-view events by hour into a summary table.
Prompt 4
What Docker Compose setup do I need to run UBA-X locally with Java 17, Redis, and PostgreSQL?
Open on GitHub → Explain another repo

← happynewyear1995 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.