Code Monkey home page Code Monkey logo

share's People

Contributors

aozien avatar clecherbauer avatar ibrahim5aad avatar markussteinbrecher avatar mkeshavarzi avatar nickcastel50 avatar olegmoshkovich avatar oo-bldrs avatar oogali avatar pablo-mayrgundter avatar shafy 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  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  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  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

share's Issues

UI: QR Codes for link sharing

The link sharing component should include an optional QR code

  1. The QR code should embed the current URL, so that a user who scans the code will be brought back to where it was generated.
  2. The QR can be opened separately and printed to PDF.
  3. The QR code can be embedded in a given PDF, e.g. a 2D cross section plan in a PDF in the same repository. This would enable a CI/CD workflow to publish plans to construction site production and bring the user there back to check if the on-site plans are the correct version for production.

Possible libs:

https://www.nayuki.io/page/qr-code-generator-library

System: Refactor asserts into test and assert, or import framework

This is a tracking bug for TODOs.

src/utils/asserts.js should import tests for each function that test the relevant conditions, then just add throw Error if test is false. This is to help with cases where the caller might want to log (as warn or error) instead of fail.

Add git action for lint

We currently run yarn lint locally with a pre-commit script. This should be run on git checks to get that green PR button love.

Open file should present help dialog

Open file currently opens a system dialog, but should tell the user the upload is temporary and alternatively point them to a guide on the Wiki showing how to host IFCs on GitHub, G Drive & Dropbox and then use them in Bldrs.

Version Control (GitHub)πŸ₯‰

We chopped up the original requirements doc to start moving things here, but also didn't have a lot for Versioning requirements. That wasn't just being lazy ;) Our idea for versioning is to pass through GitHub functionality to the app. We don't expect everything to be useful as git is overly complicated, but some subset of versioning functionality.

  1. So for instance here's a file you can view in Bldrs by pasting it into the search bar:

https://github.com/Swiss-Property-AG/Portfolio/blob/main/KNIK.ifc

the "main" path segment is the branch the file is in, and without any further information, this means the HEAD version of the main branch. That currently works.

  1. GitHub also provides hashed and tagged versions, which we should support soon.

Supporting these means both in the URL (see also https://github.com/bldrs-ai/Share/wiki/URL-Structure) and also in the UI, by having some component to help explore previous versions and branches.

EDIT(Aug 18): The Share URL structure actually already supports versioning! So changing this issue to track development of the UI control. Example of versioned file:

https://bldrs.ai/share/v/gh/Swiss-Property-AG/Portfolio/770153b703d7aa59f7be0cb87930f29f162f666f/KNIK.ifc

Stretch: Lastly, we'd like to support checking in changes and resolving diffs. This is where things get complicated, so we'll need to revisit this more later.

Bug: Camera still missing a param for reproducible scenes

Current cam positions are working repeatably when both position and target location are included in the url:

.../share/v/p/index.ifc#c:-15.18,9.32,52.05,14.69,8.96,11.19

But toggling the flag viewer.IFC.loadIfcUrl(..., fitToFrame=true|false, ...) yields slightly different results (below). We're good with the default of fitToFrame=false, but that means no autofit for uploaded models. I have a workaround for now which is to enable this flag after the first load. Pretty lame

but this means there's yet another camera parameter needed to specify camera after a frame refit, which may happen after a double-click centering. I haven't seen this yet, but probably an issue

Code walk starts in IFCjs:
https://github.com/IFCjs/web-ifc-viewer/blob/92ca8c8117e942fc7e452859bd999ee2f8eebc79/viewer/src/ifc-viewer-api.ts#L139
https://github.com/IFCjs/web-ifc-viewer/blob/92ca8c8117e942fc7e452859bd999ee2f8eebc79/viewer/src/components/context/camera/controls/orbit-control.ts#L37

Then over to the camera-controls library:
https://github.com/yomotsu/camera-controls/blob/07fc3c2c8ebae2816a56a80e1cbc2f6892d20a58/dist/camera-controls.module.js#L913

with loadIfcUrl(fitToFrame=false), we get the right position, but needs the temporary workaround so that later models get autofit:
image

I want to use loadIfcUrl(fitToFrame=true) all the time, but the recorded position (from above) gets jogged over:
image

Analytics: Get page performance metrics into analytics

The selection of an IFC element causes latency in the application for the models larger than 20MB.
Enable monitoring of separate portions of the app to diagnose the problem areas that require performance optimization.

Clean up Properties UI

Cleanup names and values for property set.

We already have some properties handled well, but need to handle more cases.

IFC: Support extended characters in label text

e.g. in a sample IFC:

#49124= IFCMATERIALCONSTITUENT('Component 1 in St\X2\00FC\X0\tzensegment 1',$,#10932,$,$);

These look like extended characters that need to be decoded.. currently we're just passing through the backslash.

Product: Portfolio for SP

We need to have a Image button preview of a screenshot of Tinyhouse, which when you click takes you to the GitHub path to the Momentum tinyhouse project.

This will also require some comments setup on their repo to work well.

But really for now we just need the button somewhere.

Maybe we tuck settings into an expando or accordion or move it back out into a separate ControlButton

favicon & useful titles

How about using the "b" from our logo as our favicon?

Also, reminder for myself to add a useful title sub-path, e.g.:

"BLDRS: tinyhouse/.../window" something?

Viewer: UX: Extract building element information from IFC

To enable information management for building elements we need to be able to extract the data from an ifc in a structured way. Depending on the source of the ifc, each element (e.g. walls, slabs, windows) contains a set of ifc property sets and attributes.

As a BIM coordinator I want to be able to use this information across various workflows and across various tools.

In a first step the information could be extracted by the user providing information on what elements and what property sets/attributes are needed. Ideally the tool would show an overview of the elements and property sets/attributes and the user could select the data for the extract. Additionally, this could also be part of an API for buildrs.

Track open IFC in Analytics

We should include an tracking event to count how often users are opening IFCs. This will also may help distinguish crawler traffic from real use.

mobile tweaks

iOS & Android

  • AboutDialog alignment issues, the bullet list and also the cookies slider pops out
  • NavTree has a horizontal slider showing

Open/save GitHub

  • Open existing files in the repo, i.e. from a dialog that shows what IFC files are present in a subdir.
  • Open a URL pasted in by the user.
  • Stretch: open files in the organization.
  • Super stretch: open files from GitHub, e.g. using a search index.

Include cookie toggle in about and settings

We're including gtags in our pages, but should have a cookie toggle for this. I'm thinking a bar:

Cookies: [F----N----T]

With a slider from F<->T

F: functional: e.g. theme, list of recent URLs
N: navigational: things which change URL
T: telemetry: fine-grained

I think a trim version of this could be included in the About panel and suffice for our gdpr notice.

Kill toolbar

'nuff said.

But actually, this should go along with Bldrs logo as the index.ifc, and a tooltip prompt for the open dialog to make sure users know what to do. Probably depends on #114 being live.

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.