- Overview
- Features
- Installation
- Usage
- API Documentation
- Web Interface
- Data Models
- Development
- Contributing
- License
Advanced Data Generator is a powerful, production-ready tool for generating realistic test data. It's designed to help developers, testers, and data scientists create high-quality synthetic data for various applications.
- π― Generate realistic, consistent test data
- π Support for multiple languages and locales
- π Rich data visualization capabilities
- π Multiple export formats
- π High performance and scalability
- π Data validation and integrity checks
-
Multi-Model Data Generation
- User profiles with realistic attributes
- Product catalogs with detailed information
- Order management with relationships
- Custom data generation rules
-
Internationalization
- English (en_US) support
- Persian (fa_IR) support
- Extensible locale system
-
Data Export
- JSON format
- CSV format
- YAML format
- Custom export configurations
-
Data Validation
- Email format validation
- Phone number validation
- Age verification
- Data integrity checks
-
REST API
- Swagger documentation
- Rate limiting
- Authentication support
- Error handling
-
Web Interface
- Interactive dashboard
- Real-time data visualization
- Data filtering and sorting
- Export management
-
Containerization
- Docker support
- Docker Compose orchestration
- Environment isolation
- Easy deployment
- Python 3.9 or higher
- pip (Python package manager)
- Git
# Clone the repository
git clone https://github.com/yourusername/data-generator.git
cd data-generator
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt# Build and run with Docker Compose
docker-compose up --build# Generate data with default settings
python main.py
# Generate specific number of records
python main.py --users 100 --products 50 --orders 200
# Generate data with Persian locale
python main.py --locale fa_IR
# Export data to different formats
python main.py --export json# Start the API server
uvicorn api:app --reload
# Access the API documentation
# Open http://localhost:8000/docs in your browser# Start the web interface
streamlit run web_interface.py
# Access the web interface
# Open http://localhost:8501 in your browserThe API documentation is available at http://localhost:8000/docs when the server is running.
POST /generate- Generate new dataPOST /export- Export dataGET /users- Retrieve usersGET /products- Retrieve productsGET /orders- Retrieve orders
The web interface provides:
- Interactive data generation
- Real-time data visualization
- Data filtering and sorting
- Export management
- Statistical analysis
class User:
id: int
name: str
email: str
address: str
phone: str
birth_date: datetime
is_active: bool
created_at: datetimeclass Product:
id: int
name: str
description: str
price: float
category: str
stock_quantity: int
created_at: datetimeclass Order:
id: int
user_id: int
product_id: int
quantity: int
total_price: float
status: str
created_at: datetime# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest
# Format code
black .
# Lint code
flake8# Run all tests
pytest
# Run specific test file
pytest tests/test_data_generator.py
# Run with coverage
pytest --cov=.We welcome contributions! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow PEP 8 guidelines
- Use type hints
- Write docstrings
- Add tests for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Faker for realistic data generation
- SQLAlchemy for database operations
- FastAPI for the REST API
- Streamlit for the web interface
For support, please:
- Check the documentation
- Open an issue
- Contact the maintainers
Made with β€οΈ by ilya nozary
Β© 2024 Advanced Data Generator