Open Data Editor uses a client/server architecture wrapped into a desktop application. As a server, we use a Python codebase that uses frictionless-py for data and metadata processing. As a client, we use this codebase written in TypeScript that uses React for components and Zustand for state management. As a desktop wrapper, we use Electron for NodeJS.
To start working on the project:
- Python 3.10+
- Node 18+
NPM is included into the Node distribution so we just need to install
pip3 install hatch
Before starting with the project we recommend configuring
hatch. The following line will ensure that all the virtual environments will be stored in the
.python directory in project root:
hatch config set 'dirs.env.virtual' '.python' hatch shell # Enter the venv
Now you can setup you IDE to use a proper Python path:
To start working on the project install the dependencies:
We highly recommend enabling TypeScript checks for your IDE.
To work on the whole application:
Note that there are few CSV files in the
data folder to test the app. You can find more in the internet (it’s good to test it using different files).
Running the server in isolation:
make server # default folder # OR hatch run start <data-folder> # optionally provide a data folder path
Running the client in isolation:
make client # OR npm run start
Previewing descript application:
make preview # OR npm run preview
Documentation is written with Starlight (in the
portal directory). The source articles are in the
portal/content/docs directory. To start a live-reload server and work on the docs:
It will be automatically published on CloudFlare when merged to the
main branch with previews available for pull requests.