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.
Generate schema-consistent synthetic data for:
✅ Stream processing (Kafka, Kinesis)
✅ Batch ETL workflows
✅ Data warehouse testing (BigQuery, Snowflake, Redshift)
✅ Business dashboards (Looker, Tableau)
- Unique, reusable
userIdper user - Randomized names, age, gender, language, email
- Registration date support
- 1-to-1 relationship between user and device
- Randomized device attributes (type, model, OS, manufacturer)
- Consistent
deviceIdper user
- Includes Atlanta areas like Grant Park, Summerhill, etc.
- Event types: nightlife, tech panels, pop-ups, networking
- Timestamps reflect recent activity
- New
PingEvent_Profitfield per event - Value range: $20.00 – $150.00
- Captures estimated revenue per event
- Export to
.jsonor.csv - Intuitive terminal menu
- Strategy Pattern for file handling
- Custom
Gsonadapters for date/time serialization
| 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) |
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