Giter Site home page Giter Site logo

flatsheet-prototype's Introduction

flatsheet-prototype

The first version of flatsheet!

This is a prototype. A disposable prototype. It will be used for the first round of user testing, and likely replaced by a more permanent solution.

What is this?

Have you ever used Google Spreadsheets with something like Tabletop.js to create a sortof ad-hoc mini CMS?

Flatsheet is meant to solve that problem more effectively.

Any time a human needs to edit a dataset regularly and that dataset needs to be exposed as a JSON API, Flatsheet can be your friend. Because a lot of times a full CMS for content like that is overkill, Google Spreadsheets might rate-limit your production app if traffic is big, and the Flatsheet API can be one of the small services in your Service-Oriented Architecture.

Flatsheet is a tool for managing tabular data with a friendly editor and a simple JSON API. The editor allows the creation of rows and columns of data, similar to a spreadsheet. The JSON API exposes that data so it can be easily utilized by websites and applications.

The prototype users Rails, Postgresql, Backbone, and modules from npm.

What happens next?

The current goals are to improve the editor UI to create the simplest possible editing experience, to create integrations with other tools, like syncing with Google Spreadsheets and dat, and to allow group collaboration on a dataset through the UI.

Also:

Conducting user testing with the existing proof of concept version of the project, and iteratively creating new versions of flatsheet based on what's learned from each round of user testing.

Writing documentation, developing API client libraries (the javascript client is in development), creating example projects that show usage of the API, and integrating with related tools.

API

There are currently two API endpoints.

To get a list of sheets: /api/v1/sheets?username=example

To get individual sheets: /api/v1/sheets/:id

###/api/v1/sheets?username=example Response example

[
  {
    id: 1,
    slug: "tcuxl49owsafl-jgp5qrta",
    name: "Pizza",
    description: "A sheet about pizza.",
    url: "http://flatsheet.herokuapp.com/sheets/tcuxl49owsafl-jgp5qrta"
  }
]

###/api/v1/sheets/:id Response example

{
  id: 1,
    slug: "tcuxl49owsafl-jgp5qrta",
    name: "Pizza",
    description: "A sheet about pizza.",
  rows: [
    {
      toppings: "pepperoni, olive, sausage",
      cheese: "cheddar",
      crust: "deep dish"
    },
    {
      toppings: "salmon, artichoke, basil",
      cheese: "mozzarella",
      crust: "thin"
    }
  ],
  created_at: "2014-04-24T03:22:03.255Z",
  updated_at: "2014-04-24T03:25:14.359Z"
}

Contribute

  • Fork the repo
  • Clone your fork
  • Make a branch of your changes
  • Make a pull request through GitHub, and clearly describe your changes

Install

  • Clone your fork of the repository.
  • Run bundle.
  • Setup the postgresql db.
  • Run rake db:migrate
  • Run npm install.
  • Run npm start to start the local server at localhost:3333.

(TODO: comprehensive install instructions)

License

MIT

flatsheet-prototype's People

Contributors

sethvincent avatar

Stargazers

Anne Thorpe avatar Katherine Goforth avatar Aaron Schumacher avatar Ingrid Burrington avatar Ændra Rininsland avatar Andrew Valencik avatar Yaniv Yalda avatar Henry Snopek avatar Sean Lang avatar Fazal avatar  avatar Jørgen Skogmo avatar Jonathan Kovis avatar Didier Lafforgue avatar  avatar Peter Rust avatar displayerror avatar Shawn Mollie Taylor avatar juno suárez avatar M Haidar Hanif avatar Alexander Cohen @capitolmuckrakr avatar Lewis Zimmerman avatar Aaron Williams avatar Mitchell Thorson avatar Olivier Travers avatar Ryan Mark avatar Amanda Hickman avatar Chris Essig avatar Joe Murphy avatar Alec Perkins avatar Coleman McCormick avatar Christopher Groskopf avatar Boris Joffe avatar Phillip Smith avatar Michael Keller avatar  avatar Ismael avatar Dariusz Pawlak avatar Shatrughn Gupta avatar Andrew Sullivan avatar  avatar

Watchers

Didier Lafforgue avatar Peter Rust avatar James Cloos 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.