Git Product home page Git Product logo

tesselle's Introduction

Tesselle

A picture annotation web application

Project from FORCCAST

Usage scenarios

Story telling with big images.

Allow the opening and annotations of big images. Navigate througth annotations to tell a story.

live demo

At some point we will throw a live-demo on github.io

local deployment

Requirements : node >= 8

git clone
npm i
npm start

# To publish updates on gh-pages
npm run publish

http://localhost:3000

How it's been made ?

Stack :

  • Typescript
  • React
  • Redux
  • Leaflet
  • Localforage
  • Iiif

tesselle's People

Contributors

arnaudmolo avatar jwyg avatar paulgirard avatar robindemourat avatar triplingual avatar yomguithereal 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

Watchers

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

tesselle's Issues

When selecting an existing annotation, deselect the previously selected ones

The app theoretically allows multiple selections (for future possible feature of selecting several annotations to delete them).

Right now selecting an annotation should deselect previously selected ones.

An example of UX context explaining this need:

How to reproduce:

  • create several annotations with different comments
  • switch to minified mode
  • select annotation A
  • select annotation B

What is happening : the input still features the text of annotation A

What we want : deselect annotation A and selection annotation B only, so that its text is the one edited in the input.

Import feature

The user should be able to import an archive corresponding to an exported slideshow project and have it loaded into her version of the app.

This should be handled by the drop zone of the home view.

Depends on #27

Dnd annotations bug

How to reproduce :

  1. create 3 annotations
  2. try to dnd annotation 3 at level 2

What happens : the dragged annotation is destroyed, and the content of previous ones too

m5k5cCB52o

Download feature

We want to enable users to download a zip archive containing :

  • a JSON file representing the slideshow data
  • a folder with image tiles for the current project
  • a html page facilitating publication by indicating the URL to browse to access a sharable version of the player (it should dynamically retrieve its own window.location to do so)

Sketchy idea of what the html page content would be :

Your slideshow data is now uploaded at my-dataset.netlify.com.

You can share a viewable version of it at https://medialab.github.io/glisseMontre/viewer?dataURL=my-dataset.netlify.com

This archive will also be used for the import feature.

Design improvements

  • Untitled document → utiliser le nom de l’image
  • Vocabulaire de l’application → “images” au lieu de “documents” ou “slideshows”
  • icône de déplacement d’annotation → pas le bon curseur
  • code couleur de forme sélection et carte sélection à harmoniser et poignées en bleu
  • icône de minification ambigu -> flèche vers le bas + tooltip
  • toutes petites boîtes containers -> mettre sur 2 lignes superposées verticalement (annotations / image) ?
  • Download help → changer le titre → “How to : save and publish”
  • quand clic sur download → affichage d’un tooltip qui indique le bouton (avec “ne plus afficher”)
  • mode sélection : toute la forme comme objet possible de drag d’une forme

Some images loading will make the tiling process crash

Example of this image :

Capture d’écran 2019-07-11 à 09 38 40

When trying to upload it, the progress bar stops halfway, and the stack indicates:

DOMException: "Index or size is negative or greater than the allowed amount" 
The above error occurred in task _callee

Then, when reloading the page, the lower level of zoom displays no image:

Capture d’écran 2019-07-16 à 16 03 06

[finition] clean package.json

  • App name
  • Description
  • Add license (AGPL 3.0 ?)
  • check and remove unnecessary dependencies
  • version (should we start with 1.0.0-alpha ?)

Could not load any image in chrome

To reproduce: try to import any image in chrome browser (v76.0 macos).

I get the following error:

Capture d’écran 2019-08-08 à 09 20 38

The slice function in containers/App/saga.ts seems to raise a DOMException. Not investigated more so far.

Viewer : print version

Questions:

  • zoom back or use current zoom/pan for printing?
  • how to represent annotations and link shapes to text ? (numbers ?)

Free comment

After our case studies meeting, we have decided to add a new feature allowing to provide ways to create annotations non related to target shapes in the editor. Targeted use cases are :

  • provide a general introduction to an image storytelling
  • provide a conclusion to an image storytelling
  • add intermediary comments inbetween annotations when browsing a slideshow in storytelling mode

This means making the following changes :

  • update model to add annotations not related to shapes to a slideshow
  • add a "add free comment" button in the list of the aside column in editor mode
  • in the aside column of the editor mode, differenciate visually form-attached annotations and free annotations
  • in the aside column of the viewer mode, differenciate visually form-attached annotations and free annotations

Viewer feature

The player viewer should have a route allowing to provide a data URL for fetching JSON data and image tiles of a project.

This would be the "publication" route of the app.

Possible URL pattern (to discuss) : root/viewer?dataUrl=dataset_base_url

Which would give in production something like : https://medialab.github.io/glisseMontre/viewer?dataURL=my-dataset.netlify.com

... with a JSON file at my-dataset.netlify.com/slideshow.json and a tiles folder at my-dataset.netlify.com/tiles

Relates to #27

Add error messages

UX : toaster.

Cases :

  • Failed retrieval of images
  • Failed import (bad format)
  • Failed import (too big)
  • (if possible) indexeddb overload
  • when importing, zip has the wrong format
  • failed download

Separate views :

  • in viewer, data is missing (json and/or tiles folder)

Graphic design tasks

Homepage :

  • presentation text
  • Drop a file : cursor pointer
  • cards slideshows --> add a thumbnail ?
  • delete a slideshow -> two-steps with a confirmation modal
  • add a logo/icon
  • add footer with medialab info & co.

Editor :

  • pannel : expanded and minified states
  • design header
  • design name input
  • better design for annotation cards
  • leaflet UI : harmonize with design library style
  • shapes edition : harmonize grips with the global design
  • loading screen (when splashing directly on a slideshow edition view onload)

Viewer :

  • differenciate UI style from editor

Download/publication help

An embedded documentation (probably in the form of a modal next to the download button) should explain how to publish and share a given slideshow.

Issue displaying small images

How to reproduce:

  1. import a small image (e.g. 500px X 500px) to make a new project
  2. reload the editor

The image get cropped (it is not reproducible in player mode, oddly)

Example:

bug-small-images-tesselle

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.