Giter VIP home page Giter VIP logo

ecorpus's People

Contributors

csparker247 avatar framefactory avatar fuzheado avatar ghalusa avatar gjcope avatar kgschoueri avatar pakrettt avatar sdumetz avatar

Stargazers

 avatar  avatar

Forkers

sdegrande

ecorpus's Issues

allow login on 404 page

if an unauthenticated user hits a private page it will get a 404 (as it should : otherwise it would be a privacy breach).

However it should be possible to login from this page to get its actual content if allowed.

properly preserve language

currently, the ?lang=XX queryString is generally ignored in favor of setups[0].language

However it's not clear for users how this property is changed.

Furthermore, it should probably be set to the user's language on creation to prevent defaults being filled-in from some default value later-on.

TODO:

  • identify where exactly setups[0].language is set
  • find a better way to set it right
  • Verify reproductibility

check if document is modified when saving

currently we systematically ask for a confirmation in onbeforeunload

It would be a better behaviour to check for changes. Additionally it would prevent filling the history with copies of the same document

UI : Scene names

Scene list should include "Title" in the relevant language when available and not only the scene ID.

ecorpus_list

(Suggestion de Mathieu Beaud)

Scene edition Collaboration

Allowing collaboration on a scene would require some new features.

In short the process would be :

  1. Compare the PUT request with the document it was referenced against to compute a list of changes
  2. Apply this list of changes onto the document's latest revision if possible
  3. fine-tune 2. conflicts resolution using field testing

The main building block missing here is the ability to compare a change against its reference. It could be done client-side by saving the Etag header to send it back as If-Match on save. It's a slightly unorthodox use of the If-Match header.

Another option is to send a Set-Cookie header on GET that references the current version, then get the cookie's value on PUT. That's slightly invasive, in particular if we do it on every scene requests. It might be acceptable because it's session cookies so it at least won't cause too much privacy concerns.

A third option would be to embed a unique ID into the document. It would be sent as-is to the client and then be parsed back on PUT, hinting at the reference's version. There would be practically no additional overhead because we have to parse the document on save anyways if we want to compute a diff so it's no big deal inserting a nonce into it before serialization.

the second and third options would require little to no client code change.

Blender Export issues

Some export from blender have corrupted texture on import.
This is compared to import to https://threejs.org/editor/

  • Specular
    Only value of 0.5 is tolerated.
    Spec map as input is not tolerated.
    (No issue on the ThreeJS viewer)
    spec_bug.zip

  • Specular Tint
    Specular Tint map is not supported
    (No issue on the ThreeJS viewer)
    SpecTint.zip

  • Vertex Paint
    Some models exported by scanners have their texture twice : as a material and as a vertex paint
    (This issue also exist on the ThreeJS viewer)
    VertexPaint.zip

  • Value on metalness
    Export from Blender. Issue when PBR shader only have a value for metalness instead of a map
    (No issue on the ThreeJS viewer)
    metal.zip

provide a dropdown "save and capture"

The multiplication of save buttons is a problem. It would ease things to have a save-and-capture button right in the task bar instead of hidden in the "capture" tab

Also, #23

Optimize scenes saves

  • Detect when no change happen and do not save a revision
  • Don't transmit camera position change (ignored on load in favor of document.setup[0].navigation.orbit
  • Compress scenes changes by storing diffs where they are smaller

Use OAuth2 authorization

Bearer tokens would allow more flexibility, permitting the generation of direct-connect links.

It would be possible to only implement jwt to provide this functionality.

race condition in test: GET /scenes/:scene/:filename(.*)

Log:

 1) GET /scenes/:scene/:filename(.*)
       can abort responses:
     AssertionError: expected promise to be rejected with an error matching /socket hang up/ but it was fulfilled with { Object (_events, _eventsCount, ...) }
  

  2) GET /scenes/:scene/:filename(.*)
       "after each" hook for "can abort responses":
     Uncaught Error: aborted
      at connResetException (node:internal/errors:720:14)
      at Socket.socketCloseListener (node:_http_client:455:19)
      at Socket.emit (node:events:526:35)
      at TCP.<anonymous> (node:net:337:12)

  3) GET /scenes/:scene/:filename(.*)
       "after each" hook for "can abort responses":
     Error: done() called multiple times in hook <GET /scenes/:scene/:filename(.*) "after each" hook for "can abort responses"> of file /Users/sebastien/repositories/eCorpus/source/server/routes/scenes/get/file.test.ts

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.