Giter Club home page Giter Club logo

xformer-builder's Introduction

Data Onboarding - transformer builder

Sample, transform, map and simplify you data exchanges

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

Features

  • 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

Application Flow

Getting Started

To get started with Xformer Builder, follow these steps:

  1. Clone the repository: git clone https://github.com/marcelonyc/xformer-builder
  2. Run setup.sh
    • Requires Python > 3.10
  3. In one terminal run: start-dev-dataplane.sh
  4. In another terminal run: start-dev-controlplane.sh
  5. Access the application through your web browser at http://localhost:8050
Register for an Account. You will get a token to login. Don't lose it!
Create a transformer with a sample of the CSV/XLS file you want to transform.You can later associate one or more file uploads with this transformer.
Edit and existing transformer.
Associate a transformer with a file upload. This steps generastes a unique URL for the file upload
Share the unique URL with the user who will upload the file
When a user uploads a file, a unique URL will be generated for the file download. As an administrator you can also list the files available for download

Try it in the demo environment: Demo

Create a transformer

  1. Upload CSV/XLS file: Click on "Upload Sample CSV/XLS file" and select the desired CSV/XLS file from your local machine.
  2. 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']
  3. 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
  4. When you are finished, Name the transformer
  5. Test all the transformers from the navigation bar
  6. 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.

Application Configuration

To customize the application configuration, review the CONFIG.INI document

Contributing

Contributions are welcome! If you would like to contribute to Xformer Builder, please follow these guidelines:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them with descriptive messages.
  4. Push your changes to your forked repository.
  5. Submit a pull request to the main repository.

Screenshots

Here are some screenshots of the Xformer Builder application:

Screenshot 1

Screenshot 1

Expand row to see transformation resutls

Screenshot 1

Technologies and tools in this project

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.

License

This project is licensed under the MIT License. See the LICENSE file for more information.

xformer-builder's People

Contributors

marcelonyc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.