osteele / banyan Goto Github PK
View Code? Open in Web Editor NEWVisualize Dropbox file and folder sizes
Home Page: https://banyan.osteele.com
License: MIT License
Visualize Dropbox file and folder sizes
Home Page: https://banyan.osteele.com
License: MIT License
Once the user has signed out:
The first is a security issue.
A sunburst diagram would be more appropriate than a treemap.
Here's some nice ones in D3:
Related to #2.
The app currently stores the access token in localStorage
, so the user is still signed in the next time they visit the page, until they explicitly sign out. Make this an option.
The progress bar currently displays r/(r+1), once r responses have been received. This is at least monotonically increasing.
Ideally, it would display r/n, where n is the total number of responses. But we can't know n in advance.
Alternatively, d/(currentTime-firstRequestTime) could be a better estimate, where d = maxTime(currentRequest), firstRequestTime = maxTime(firstRequest), and maxTime(request) = max(data.clientModified, data.serverModified for data in currentRequest.items).
Invoke the Dropbox listFolder
API with include_deleted: true
. Use listFolder/continue
with a cursor in order to update the model: when the user pushes a “sync” button; when the page is reloaded; and/or, by polling.
The listFolder
API is much slower when include_deleted: true
is specified. (It requires a much larger number of requests, that seem to be throttled.) If we do this, we probably want to initiate both a recursive and a non-recursive sequence of listFolder
requests, so that we can show the full results from the include_deleted: false
sequence early, and switch to the include_deleted: true
results once they're complete.
Oliver has no graphic design skillz. The UI reflects this.
Some ideas:
The file tree shows up to three levels, but the treemap is pinned to one. This is because add a second level sometimes causes the treemap to crash. Fixing this may depend on #2.
Cache the Dropbox file entries so that re-visiting the page is fast.
index.js
contains code for this, that used to work and has been disabled pending investigation of #2 as a possibly better solution.
The app currently uses Highcharts. Find or create an Elm implementation.
Related to #15.
The Dropbox application page is configured with an image, that's displayed during OAuth. Add that to the app's navigation menu, and as a favicon.
Or at least maintain the cache, so switching isn't so slow — but the only secure way I can think of to maintain the cache is to allow the user to by signed into both accounts at once.
Use “Sign in” to sign into Dropbox. SSO redirects back to the app. For a moment, the initial instructions are shown, before the view notices that you'v signed in. Stop that.
listFolder
is implemented in JavaScript and invoked via an Elm port. Port this to JavaScript, or adopt avh4/elm-dropbox#2.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.