GithubHelp home page GithubHelp logo

okfn / opendataeditor Goto Github PK

View Code? Open in Web Editor NEW
153.0 153.0 18.0 36.38 MB

The Open Data Editor (ODE) is a no-code application to explore, validate and publish data in a simple way. Forever free and open source project powered by the Frictionless Framework.

Home Page: http://opendataeditor.okfn.org

License: MIT License

HTML 0.44% JavaScript 0.30% TypeScript 78.94% CSS 2.17% Makefile 0.37% Python 17.45% Astro 0.11% MDX 0.21% Shell 0.01%

opendataeditor's People

Contributors

aivuk avatar amercader avatar guergana avatar loleg avatar lucpretti avatar pdelboca avatar poliganina avatar roll avatar romicolman avatar shashigharti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opendataeditor's Issues

Mature the codebase from prototype to MVP

Overview

Currently (by Nov 21), we have the app implemented as a prototype; for the v1 release, we need to improve the codebase internally, add help messages, warn of some missing functionality etc. So we need to make the app look finished within the current scope.

Rebase isUpdated on equality check?

Overview

Currently, all the metadata editors relies on an additional isUpdated flag also it might be replaced by shallow descriptions comparison (?)

Improve Package controller

Overview

Source code of component: src/components/Views/Package

Current State

package

Desired State

  • name field
  • title field
  • description field for the long test (open modal / enlarge on clicking)
  • homepage field
  • image field (url)
  • version field
  • created field (date)
  • resources editor (will be polished by @roll)
  • keywords editor
  • contributors editor
  • sources editor
  • licenses editor
  • profiles editor (will be done by @roll)
  • when we have focus on a filed a help text should be shown in the right panel (for example, when "description" is selected the help should be Package ("description" instead of "overview") with the help text from the standard
  • the component accepts a height prop that allows moving buttons to the window bottom (when the component is used within the Application)
  • the component is covered by basic unit tests in Jest
  • rebased UI on vertical tabs

Implementation

This component is just a visual representation of the Data Package Standard - https://specs.frictionlessdata.io/data-package/. Please read this to understand better what we're trying to achieve.

Please start by implementing the simplest fields like image/version/etc

Currently, we have implemented the resources editor but we also want to have keywords/contributors/etc -- ping @roll to bootstrap these editors.

Implement Config controller

Overivew

  • use a "Gear" icon at the top right corner
  • on a click open a model with Config Editor (the same design as metadata editors)

Exact configurations and server implementation is TBD

Add minimal tests for BETA

Overview

As the last step before v1 release, we need to set up a simple documentation unit, connect the app with the fd.io site, add tests and create issues as a future development plan.

PS.
Also, we need to decide the way we will be publishing the components library.

Listen files changes on server (`project/sync`)?

Overview

Currently, if a file changed outside of Open Data Editor it will bring the application into the inconsistent state. There should be a polling call to the server to listen for changes and update the state accordingly

Testing and creating issues for MVP

Overview

We need to play with the app trying opening different files and doing different actions (changing schema/pipeline/etc; reloading the file; clicking buttons). For every problem or group of problems, we need to create an issue which I'll triage for us to work on. We need to add a quick steps to reproduce and share server error messages if any.

Implement Move button in the Files editor

Overview

Source code of the component: src/components/Editors/Files

Current State

Clicking on "Move" doesn't do anything

move

Desired State

  • Client
    • when we click on Move a dialog window opens
    • the dialog window shows available directories to move file in
    • the dialog window provides a button to create a new dir
    • the dialog window has two buttons - move/cancel
    • move button is only available when a destination is chosen
    • after clicking on the move button in the dialog, the dialog is closed and the file is moved to a new directory
  • Server
    • new endpoint project/move-file
    • new endpoint project/create-directory

Implementation

Note, that after adding new endpoints to the server you need to wrap them in the application/src/client.ts

Consider high-level DataUploader component?

Overview

It's quite a common Frictionless integration when Frictionless is inserted into a resource upload flow as in OpenSpending, Dryad, or ckanext-validation. We need to investigate if we can provide a really high-level component for it including an upload button, report renderer, and a metadata editor.

Improve Table controller

Overview

  • support all possible data types from Table Schema
  • support inline editing (with corresponding widget e.g. dates)
  • TBD

Implement "New" button dropdown for Files editor

Overview

For Files editor we need 3 buttons on the actions panel:

  • "+ New" (dropdown)
    • File Upload
    • Data Package
    • Folder (move here from the "Move" button logic)
  • Move (already implemented)
  • Delete (already Implemented)

files

Deploy and publish BETA

Overview

We need:

  • app.frictionlessdata.io (Google Cloud / Docker)
  • ui.frictionlessdata.io (instead of components?)
  • metadata.frictionlessdata.io (instead of create.frictionlessdata.io)?

Also, we need to publish on NPM

Desktop app (electron integration)

Overview

Initially, we implemented the app as an in-browser application but we also need to ship it as a standalone app using Electron as a wrapper.

After the integration, let's move frictionless.server to this codebase as it's highly coupled with the application

Improve Report panel

Overview

It's hard to consume when there are many files and errors. Also, we need to get a read of some not-needed styling like zigzag picture usage etc. Also, it will be good to migrate it to MUI

Support "Copy" in file manager

Overview

Currently, we can "Move" but no copy

PS.
Also, we need to ensure that move/copy works for both files and folders.

Implement "Publish" button for data packages

Overview

On a click it should to open a model window with 3 vertical tabs: CKAN, Zenodo, Github at the left and publishing settings (Control) at the right. The modal has to have 2 buttons: Cancel and Publish. When we click on Publish it should show an URL of a published dataset.


The button should be textual with a proper icon at the right top corner the same as for tables:
publish

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.