- Overview
- Platform Snapshot
- Visual Architecture
- How It Works
- Features
- Tech Stack
- Quick Start
- API Surface
- Project Layout
- Security
- Contributing
- License
DataSim-Labs is a full-stack platform for defining synthetic dataset schemas, previewing generated records, and exporting datasets in multiple formats.
It is designed for product teams, data teams, and developers who need repeatable synthetic datasets for testing, demos, and analytics workflows.
| Area | What You Get |
|---|---|
| Data Modeling | Typed attributes, constraints, null controls, and configurable distributions |
| Generation | Sync and async workflows with preflight checks for safe execution |
| Outputs | CSV, JSON, JSONL, and Excel exports |
| Quality | Validation summary and guardrails in generation response |
| Security | Cookie-based auth with refresh rotation and structured API errors |
| UX | Guided studio flow, diagnostics, and actionable error feedback |
flowchart LR
U[User] --> FE[Frontend: Next.js]
FE --> API[Backend API: FastAPI]
API --> DB[(MongoDB)]
API --> GEN[Generation Engine]
API --> Q[Queue: Redis/Celery]
Q --> WK[Worker]
WK --> GEN
GEN --> ART[(Artifacts Storage)]
API --> ART
FE --> API
sequenceDiagram
participant UI as Frontend Studio
participant BE as Backend API
participant W as Worker
participant S as Storage
UI->>BE: Create dataset
UI->>BE: Save attributes/version
UI->>BE: Preview (10 rows)
UI->>BE: Preflight generation
alt Sync generation
UI->>BE: Generate dataset
BE->>S: Save files
BE-->>UI: Files + quality summary
else Async generation
UI->>BE: Queue job
BE->>W: Dispatch task
W->>S: Save files
UI->>BE: Poll job status
BE-->>UI: Final result
end
- Schema-driven synthetic generation with per-column constraints
- Dataset versioning with reproducibility via seed
- Preflight safety checks before full generation
- Async generation for larger workloads
- Multi-format artifact export (CSV/JSON/JSONL/XLSX)
- Runtime quality diagnostics and validation summary
- Structured error responses and request correlation IDs
- FastAPI
- Pydantic + pydantic-settings
- Pandas, NumPy, SciPy, Faker
- Celery + Redis
- Next.js (App Router)
- React + TypeScript
- Tailwind CSS
- TanStack Table
- Python 3.11+
- Node.js 20+
- npm 10+
- MongoDB
- Redis (for async job execution)
Copy templates:
backend/.env.example->backend/.envfrontend/.env.example->frontend/.env
Set strong values for sensitive environment variables.
cd backend
venv\Scripts\activate
pip install -r requirements.txt
python run_services.pyrun_services.py starts the API server and, when ASYNC_GENERATION_ENABLED=true, a Celery worker process.
cd frontend
npm install
npm run dev- Frontend: http://localhost:3000
- Backend API docs: http://localhost:8000/docs
POST /api/v1/auth/registerPOST /api/v1/auth/loginPOST /api/v1/auth/refreshPOST /api/v1/auth/logoutGET /api/v1/auth/me
GET /api/v1/dataset/templatesPOST /api/v1/dataset/createPOST /api/v1/dataset/attributesPOST /api/v1/dataset/previewPOST /api/v1/dataset/preflightPOST /api/v1/dataset/generatePOST /api/v1/dataset/generate-asyncGET /api/v1/dataset/jobsGET /api/v1/dataset/jobs/{job_id}POST /api/v1/dataset/jobs/{job_id}/cancelPOST /api/v1/dataset/jobs/{job_id}/retryGET /api/v1/dataset/download/{dataset_id}GET /api/v1/dataset/listGET /api/v1/dataset/{dataset_id}GET /api/v1/dataset/{dataset_id}/versions
GET /api/v1/rules/dataset/{dataset_version_id}POST /api/v1/rules/filterPOST /api/v1/rules/validatePOST /api/v1/rules/apply
GET /health
.
|-- backend/
| |-- app/
| |-- requirements.txt
| `-- run_services.py
|-- frontend/
| `-- src/
|-- docs/
|-- README.md
`-- railway.toml
- Never commit
.envfiles, tokens, or secrets - Use strong and rotated secrets for JWT and API keys
- Keep dependencies updated and monitor advisories
See SECURITY.md for private vulnerability reporting guidance.
Contributions are welcome. Please review CONTRIBUTING.md before opening a pull request.
This project is licensed under the MIT License. See LICENSE for full text.