IMPORTANT These project is evolving from learning about Dash to building an application using Dash for the UI component. The original project can be found in this branch
Enable your customers and partners to upload CSV/XLS files and transform them to match your internal data schemas. The platform provides the infrastructure and components to generate data transformers and unique URLs for users to upload their data.
Questions: Ask Here
Live Demo: Here
- Upload CSV/XLS file: Users can easily upload their desired CSV/XLS file through the user interface.
- Column transformers: The project allows users to create transformers for each column using the ACE code editor.
- Restricted Python: The data transformer utilizes restricted Python to ensure secure and controlled data manipulation.
- Share a unique URL to upload/download files
- Trigger Webhook when a file is processed
To get started with Xformer Builder, follow these steps:
- Clone the repository:
git clone https://github.com/marcelonyc/xformer-builder
- Run setup.sh
- Requires Python > 3.10
- In one terminal run:
start-dev-dataplane.sh
- In another terminal run:
start-dev-controlplane.sh
- Access the application through your web browser at
http://localhost:8050
Try it in the demo environment: Demo
- Upload CSV/XLS file: Click on "Upload Sample CSV/XLS file" and select the desired CSV/XLS file from your local machine.
- Create transformers: Use the ACE code editor to create transformers for each column. Ensure that the code adheres to the restricted Python guidelines.
- Use
data
as the variable containing the source data. - Use the dictionary
columns[]
to get values from other columns - Examples:
data / 1000
data.split("-")
data * columns['other_data']
- Use
- Test transformations: Once the transformers are created, click on the "Test" button to execute the transformations.
- The result displays on the column's row. You need to expand it.
- Any errors will display in the column's row
- When you are finished, Name the transformer
- Test all the transformers from the navigation bar
- Save transformers
- The output goes to the console
The transformer is saved into multiple lists. Right now is just a print to the console. The actual code is base64 encoded.
To customize the application configuration, review the CONFIG.INI document
Contributions are welcome! If you would like to contribute to Xformer Builder, please follow these guidelines:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with descriptive messages.
- Push your changes to your forked repository.
- Submit a pull request to the main repository.
Here are some screenshots of the Xformer Builder application:
Build a data transformer using restricted Python with a Web UI using Dash. The transformer is designed to manipulate data in columns from a CSV/XLS file. The project provides a user interface (UI) that allows users to upload the CSV/XLS file and create transformers for each column using the ACE code editor.
This project is licensed under the MIT License. See the LICENSE file for more information.