Coder Social home page Coder Social logo

bulgur's People

Contributors

robindemourat avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

bulgur's Issues

Rationalize and update visual identity

Mockups : https://marvelapp.com/16ja5ag/screen/17484098

New font sets : Source Sans and Source Code (full fonts sets)

  • validate mockups

  • rationalize classes of visual objects and invariant parameters

  • implement

In addition to the current mockups, to reduce and normalize the number of font sizes and gutter sizes, and to think through responsive rules for medium and small screens.

Persistent state

Reimplement couchdb (currently commented) to avoid loosing one's work when refreshing page accidentally.

setup new data model : reducers/actions / selectors

New active / active presentation

const presentationModel = {
metadata: {},
datasets: { // datasets as a dict of data sources
  datauuid: {
    metadata: {},
    data: [] // the data itself, as provided by user (json or raw string if xml-like or other)
  }
},
views: {
[uuid]: {
  metadata: {},
  dataset: [uuid],
  viewParameters: [], // view parameters - will be used as a basis that can be overriden
  viewDataMap: [] // data-to-vis transformations
}
}
}

New story model is identical to active story as always.

Slide data model

const slideData = {
 views: {
uuid: {
  dataset: [uuid],
  viewParameters: [], // view parameters - will be used as a basis that can be overriden
  viewDataMap: [] // data-to-vis transformations
}
}
}

What if

... a user changes the visualization type (and therefore render slides view params and data mappings irrelevant) of one of the view ?

... a user starts a visualization with two views, then edits the presentation settings and delete one of the two views ?

... a user wants to use the same data mapping / view param settings for several consequent slides ?

View settings pannel

Changes must be directly mirrored in the related vis.

Must not be redundant with components displayed in new presentation/edit presentation modal.

Investigation needed for network mode

Main questions to solve :

  • how to expose data mapping options out of gexf-like data ?

  • how to consistently handle both graphml and gexf data formats ?

Draft: load one instance at once

For now there is one draft instance for each slide in the active presentation.

This is problematic for use cases with a lot of slides.

Uncouple bulgur-reader for use in pages and as dependency code

Bulgur composition app requires far more dependencies than it should when used for readonly. And the player should be usable as a dependency in other apps like fonio. In addition, this is going to be problematic when integrating bulgur documents inside other apps.

Structure of this component :

- Visualization container
-- Visualizations components (one way controlled - can be configured when setting a slide state)
- Navbar
-- Navbar content
-- Navbar toggle (visible when navbar is closed)
- Legend container
-- Previous slide button
-- (user-generated) html contents
-- Next slide button

In all-in-one html, the code could be reduced to that component + a footer.

New story dialog enhancements

  •  add a "parameters" step : colors, label sizes, ...
  •  display edition parameters (e.g. automatic or manual snapshots) in new story dialog ?

Bulgur output : stronger metadata

When exporting to html, in the index.html building module, dynamically build strong metadata in opengraph, twitter and dublincore metadata formats with metadata available about the presentation and the datasets.

Setup new network component

Must be clean in terms of dependencies.

Must be tweakable at least in terms of

  • spatialization settings
  • nodes categorization

Quinoa library upstream needs

  • being able to plug quinoa's reducer inside a wider redux logic

  • being able to have a read-only mode for components

  • being able to customize fields and appareance of slides

Refactor bulgur with a modular set of miniprojects

Dissociate bulgur components that have to be reused in separate mini-project modules.

quinoa-vis

First the quinoa-visualizations module which must provide with visualization components wappers for timeline, graph and map visualizations.

They all must feature the same API and functionnalities :

  • controllable and declarative state representation
  • user-triggered change listeners (pan, zoom, ...)
  • possibility to allow/disallow interactivity

quinoa-player

Then the quinoa-player component which is composed with quinoa-visualizations modules and allows to display a readonly presentation. This component will be used both for preview in bulgur, as a standalone codebase for exports, and as a dependency in fonio.

Parameters :

  • possibility in a specific instance of the player to lock/unlock visualizations navigation
  • mode of interaction (scroll / buttons) and parameters

Actions :

  • next/previous/jump to slide
  • open/close the summary pannel
  • lock/unlock visualization navigation

The (s)css code must be highly customizable.

Structure of this component :

- Visualization container
-- Visualizations components (one way controlled - can be configured when setting a slide state)
- Navbar
-- Navbar content
-- Navbar toggle (visible when navbar is closed)
- Legend container
-- Previous slide button
-- (user-generated) html contents
-- Next slide button

In all-in-one html, the code could be reduced to that component + a footer.

Setup output workflow

Todo :

  • modal mechanism
  • story's json file output (and input as new story)
  • standalone html file output
  • github.io website generation through oAuth (next level)

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.