Skip to content

realwitt/fakermaker

Repository files navigation

FakerMaker 🚀

License: MIT Kotlin Spring Boot Build Status GitHub release PRs Welcome

A blazingly fast fake data generator inspired by Java Faker, but supercharged with multi-threading to handle generating 1,000,000+ rows of realistic fake data in seconds.

Generate data using characters and locations from your favorite universes - including Pokemon trainers, Breaking Bad characters, Lord of the Rings locations, or Game of Thrones houses. Mix and match data from dozens of popular TV shows, movies, books, and video games to create the perfect test dataset.


🌟 Web Interface

Visit fakermaker.fm to interact with a web client that uses this server, or clone the frontend repo and run it locally


⚡️ Setup TL;DR

# One command to rule them all
curl -s "https://get.sdkman.io" | bash && source "$HOME/.sdkman/bin/sdkman-init.sh" && \
sdk install java 21-graal && sdk use java 21-graal && \
sdk install kotlin 2.0.20 && sdk use kotlin 2.0.20 && \
git clone https://github.com/yourusername/faker-maker.git && cd faker-maker && \
./gradlew build && ./gradlew bootRun

Generate a million rows of fake data (will generate ~80mb file):

curl -X POST "http://localhost:8181/api/fakermaker/download/1000000" -o massive_fake_dataset.csv
📋 Step-by-Step Setup Instructions

Prerequisites

  • Java 21
  • Kotlin 2.0.20
  • Gradle

Detailed Installation

Using SDKMAN! (Recommended)

# Install SDKMAN!
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

# Install Java
sdk install java 21-graal
sdk use java 21-graal

# Install Kotlin
sdk install kotlin 2.0.20
sdk use kotlin 2.0.20

Project Setup

  1. Clone and enter the repository:
git clone https://github.com/yourusername/faker-maker.git
cd faker-maker
  1. Build and run:
./gradlew build
./gradlew bootRun

🚀 Features

  • Blazing Fast: Generate millions of rows in seconds using Kotlin coroutines
  • Media-Rich Data: Characters and locations from popular franchises like Harry Potter, Breaking Bad, Pokemon, and more

🎮 Usage

Generate CSV Data

# 1000 records
curl -X POST "http://localhost:8181/api/fakermaker/download/1000" -o fake_data.csv

# A million records
curl -X POST "http://localhost:8181/api/fakermaker/download/1000000" -o massive_dataset.csv

Generate Table Data

curl -X POST "http://localhost:8181/api/fakermaker/dataTable/100"

🔧 Configuration

Edit src/main/resources/application.properties:

server.port=8181
spring.application.name=fakerMaker
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres

🧪 Development

Testing in IntelliJ IDEA

Use the included .idea/httpRequests/faker-maker.http file for easy API testing.

🤝 Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.


Made with Kotlin

About

Kotlin server that generates fake data

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages