Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/timwis/dataface

Build and manage data with a spreadsheet-like interface
https://github.com/timwis/dataface

koa2 postgresql spreadsheet vue

Last synced: 11 days ago
JSON representation

Build and manage data with a spreadsheet-like interface

Awesome Lists containing this project

README

        

# Dataface
Build and manage data in a Postgres database with a spreadsheet-like interface.
[Demo](https://dataface-demo.herokuapp.com).

![screencast of a user editing a spreadsheet-like interface](https://i.imgur.com/qoB2Tji.png)

[![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)

## Motivation
Ideally all data would be managed in a purpose-built application backed by a database, designed by a database expert, but IT departments have to prioritize what applications they build or buy. As a result, a lot of data ends up being managed in a spreadsheet or a Microsoft Access database. These tools are flexible and easy for non-IT staff to build, but IT departments often see them as sources of technical debt: they only support one user at a time, they’re single points of failure since they’re usually not backed up, and they’re difficult to integrate into other systems.

Dataface aims to be an alternative tool that IT departments can offer non-IT staff to empower them to easily manage their data in a system the IT department would support. For the non-IT staff, dataface is a spreadsheet-like interface for data that lets you create columns and rows, even linking columns between sheets. For the IT department, dataface is a vanilla PostgreSQL database with a REST API and web app on top. This way, the non-IT staff can get started building a database on their own while keeping it standard and portable under the hood, for when the time comes for it to graduate to a full-fledged application.

## Roadmap
See the [milestones](https://github.com/timwis/dataface/milestones?direction=asc&sort=due_date) for the major features roadmap.

## Development
The `docker-compose.yml` file provides a postgres container, and an
application container. To spin them up, [install docker](https://www.docker.com/community-edition)
and run:

```bash
docker-compose up
```
Then navigate to `localhost:9966` in the browser.

## Testing
To test the client, run:

```bash
yarn test:client
```

To test the server, you'll need a throwaway postgres database running
(the tests will wipe it clean afterwards). To run one using docker, use:

```bash
docker run -p 5434:5432 postgres
```

Once a postgres database is available, run the server tests while
passing the `DB_URL` environment variable:

```bash
DB_URL="postgres://postgres:pwd@localhost:5434/postgres" yarn test:server
```

You can run both the client and server tests together with `yarn test`;
just don't forget the `DB_URL` environment variable:

```bash
DB_URL="postgres://postgres:pwd@localhost:5434/postgres" yarn test
```