Skip to content

Modular Java application to generate synthetic user, device, and event data for data engineering pipelines and software testing.

Notifications You must be signed in to change notification settings

Goodbyefrog/Event-ping-data-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎯 Event Data Generator v1.5

A modular Java-based event simulator that generates realistic user, device, and event data across neighborhoods in Atlanta. Built with extensibility in mind, this tool is ideal for data engineering pipelines, analytics simulations, and cloud ingestion testing.


📌 Purpose

Generate schema-consistent synthetic data for:

✅ Stream processing (Kafka, Kinesis)
✅ Batch ETL workflows
✅ Data warehouse testing (BigQuery, Snowflake, Redshift)
✅ Business dashboards (Looker, Tableau)


🏗️ Key Features

🧑‍🤝‍🧑 Consistent User Generation

  • Unique, reusable userId per user
  • Randomized names, age, gender, language, email
  • Registration date support

💻 Device Simulation

  • 1-to-1 relationship between user and device
  • Randomized device attributes (type, model, OS, manufacturer)
  • Consistent deviceId per user

📍 Location + Event Metadata

  • Includes Atlanta areas like Grant Park, Summerhill, etc.
  • Event types: nightlife, tech panels, pop-ups, networking
  • Timestamps reflect recent activity

💰 Profit Simulation

  • New PingEvent_Profit field per event
  • Value range: $20.00 – $150.00
  • Captures estimated revenue per event

🧾 Export System (CLI-Driven)

  • Export to .json or .csv
  • Intuitive terminal menu
  • Strategy Pattern for file handling
  • Custom Gson adapters for date/time serialization

💻 Tech Stack

Component Stack
Language Java 17
Design Interface-driven, OOP
CLI Scanner-based user interaction
Serialization Gson w/ custom adapters
Cloud Integration AWS S3 support (in progress)

🧱 Data Model Overview

Each record is a PingEvent object:

{
  "user": {
    "userId": "56e557d6-...",
    "username": "LexNova",
    "email": "lexnova890@example.com"
  },
  "device": {
    "deviceId": "Device-abc123",
    "deviceType": "MOBILE",
    "model": "iPhone 14"
  },
  "location": "GRANT_PARK",
  "eventType": "TECH_PANEL",
  "timestamp": "2025-06-25T10:40:16",
  "PingEvent_Profit": 110.78
}

🚀 How to Run
Clone the repository----
git clone https://github.com/Goodbyefrog/event-data-generator.git
cd event-data-generator


Compile the project-----
javac -d out src/org/Data_Generator/**/*.java

Run the CLI-------
java -cp out org.Data_Generator.App



Interactive CLI Options

[1] Generate Ping Events  
[2] View Generated Events  
[3] Export Events to Local File  
[4] Upload Events to S3 (coming soon)  
[5] Exit


🧭 Coming Soon
☁️ AWS S3 Upload Support

🌀 Kafka Stream Integration

🗂️ Auto-insertion into MySQL / BigQuery

📊 Dashboard-ready output templates

🤝 Contributing
Pull requests welcome! Fork, improve, or suggest features via GitHub Issues.

👤 Author
Tristan R.
Open-source learner | Studdnt |Aspiring data engineer



About

Modular Java application to generate synthetic user, device, and event data for data engineering pipelines and software testing.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages