Giter Site home page Giter Site logo

modelr-app's Introduction

modelr_app

Modelr front end

modelr-app's People

Contributors

ben-bougher avatar evanbianco avatar justinkheisler avatar kwinkunks avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

tersapp

modelr-app's Issues

Set colormap limits symmetic about zero

The colorbar scale stretches to the max/min range of the values in the plot. Need to set colorbar limits to [-max , max] by default. Future versions can expose setting the colormap limits.

CSS minification

When the dust settles a bit, we should look at streamlining the CSS and JS and maybe even the HTML with minification. Also: LESS in Bootstrap. I don't know anything about any of it, but people seem to think it's important.

Data take-away

People need a way to export their data for backup or if they close their accounts. Should probably include their input data and the models, or links to them.

I guess that means an import option would be nice too...

Return rock properties

could either build charts on the backend, or come back as JSON (moduli, tuning, thickess, etc)

Need a workable Scenario source

Do whatever it takes to get this out of the app

    # Get Evan's default scenarios (user id from modelr database)
    evan = User.all().ancestor(ModelrRoot).filter("user_id =", 29)
    evan = evan.fetch(1)[0]
    ev_scen = Scenario.all().ancestor(evan).fetch(100)
    scenarios += ev_scen

This is obviously a major problem. Apart form anything else, it makes it impossible to use the app on localhost.

Need more parameters in scripts

We need the wavelet parameters added back to the simple scripts. This 'exploration' functionality is part of the point of Modelr.

Save scenario after log out using back button

The scenario won't save on the server, as it does a user verification first. The scenario does get added to html list, but will disappear when the page is reloaded properly.

The scenario list should always be populated from the server, and just refreshed after saved, or the append function should be put into the success function call on the post call.

Live Chat

Online users can chat and share scenarios with each other.

Upload model images

User's should be able to upload any image to forward model. In my sandbox, modelr can upload images, determine the colours in the image, then let the user map the colours to rocks.

Need to serve the image and colour to rock mapping to the plot server, but shouldn't be too much more effort.

Pretty up rock and scenario forms

These forms don't mix with the rest of the modelr theme. The rock entry form should be basic to fix, but the scenario form is built generically in the display_form function in modelr.js and would need some significant re-working.

Site notice

It's frustrating and obscure when modelr-server is down, because the rest of the site seems OK.

We need a way to splash an alert like "We're experiencing problems" any time the server is down. This should appear on the Scenario page at least, and perhaps elsewhere too.

Perhaps we can rely on Uptime Robot for the server status; I increased the check frequency to every 5 minutes. Maybe we should have a way to trigger the alert on our Admin dashboard too.

RGB blended multi-attribute displays

User can create an RGB image using 3 arrays as inputs. Already built in util.py, but no parser args accessing it. Normalization, and bulk shifting of arrays needs testing, and or optimization

Seperate Modelr into tools

Modelr is 3 tools, which can be independent from each other.

Model Builder - Build a wedge/channel earth model to slice.
Forward Model - The convolution forward model.
AVO Response - Stochasic AVO calculation of an interface of two rocks.

All the parameters are crammed into one interface, which is confusing for a first time user. If we separate the tools, let them save models independent from scenarios, it should make for a better user experience.

Major error handling

There are a few major exceptions that we need to handle in a special way. Issues like billing failed, or stripe billed a user ID that doesn't exist in our account, we charged a user but failed to initialize them in our user base, etc... Things that will need immediate manual attention from us.

Trigger the app to send us an email for these exceptions?

Plot headings and axis

Plot headings and axis text, eg frequency, Hz, and sentence case everywhere.
Likely will need to happen in the backend server.

Default trace locations

The default trace locations for wavelet and offset panels need to be revisited. For all channel models, the default location should be trace 150, which is the middle of the channel.
For all wedge models, it should probably also be 150, for consistency, though using 299 makes for a nicer display. (Should be #300, see #26 ). Right now, with trace 0, some selections result in no contrast, so the plot is blank.

Watermarked images for non-subscribers

Demo images, and those made by academic accounts (if and when they exist, and if they are free), could carry a subtle, pale grey modelr logo and modelr.io text in the top left or lower right corner. This might help promote modelr, and encourage people to sign up (we'd have to let them know it can be removed).

Either add the watermark/logo on modelr-server — could do generically with a logo=modelr_logo.png parameter, or just logo=true, or cryptically with wm=1 (or whatever) — or could do on front end with the Images API (not sure this is possible — seems not all of PIL is accessible https://developers.google.com/appengine/docs/python/images/).

Select Script not populating

The select script drop-down sometimes does not populate, so we added refresh button. Keep on eye on this as modelr is deployed. It would be nice if things worked without needing the refresh button.

JS obfuscation

Steve suggested obfuscating our 'special' JS (mostly in modelr.js). While, in principal, 'secret' code should just be on the server, and in principal all public code is public, there's maybe no need to be blatant about it. Obfuscation also minifies, so makes the page a bit faster.

This obfuscator goers a bit too far, with char codes etc. This is the one in prod right now http://javascriptobfuscator.com/ — note, modelr.js should be moved, otherwise a person could easily guess it's there. It is loaded in base_template.

This looks awesome, but is expensive. http://techcrunch.com/2013/04/17/improved-jscramber-3-helps-javascript-and-html5-developers-obfuscate-their-code/

Others, not obfuscating enough: http://javascript-minifier.com/, http://marijnhaverbeke.nl/uglifyjs

This one looks just right, but the output doesn't work: http://www.jsobfuscate.com/

test contact us

The content us feature has been implemented, but needs to be tested

Service level

We should have some commitments around service levels. To back this up, we'd need a failover server (e.g. another Modelr-server instance), and some sort of site notification if the service is down for some reason.

Reformat urls

prettyify the URL - it’s completely encoded but doesn’t need to be
use bit.ly API to shorten the URL we give people at the bottom of the Scenario page?? or use excuse to finally set this up http://yourls.org/#Install

Analytics

We need to be able to 'see' the funnel of site visitors > demo users > sign up > pay up. I think we can do a good deal of this with Google Analytics, but correlating users with events would be useful (e.g. right from MailChimp to paying customer).

I will get a copy of Lean Analytics — this stuff will lead to be able to play more intelligently with button labels, pricing, etc.

Versioning

It would be good to have a release number on the front end app (and probably on the back end too). Ideally these would be automated or at least streamlined somehow.

We could include these in the in user info thing (currently on About), also the date of the release. "The Modelr software was last updated 3 days ago". This is one the of the big plusses of web apps, so let's rub it in!

Seperate parameters in Scenario form

Forms need to have model, seismic, and plotting parameters separated. This is a result of the generic form generator, which uses the same code for every script.

This new form will likely be part of a larger modelr overhaul.

Return interface properties

This issue is about interfaces.

Add a parameter for an instantaneous attribute (or attributes). Could ask what attribute too. Return either a matplotlib chart (always? optionally?) with the chart, or a JSON object with all the data, then we build a JS chart for the front end.

Default: amplitude at time[top of wedge].

Ease of use on localhost

We need a way to bypass the billing stuff on localhost, to create users etc.

Can we do this via the GAE dashboard maybe?

Add noise to models

Generally speaking, there are potentially several ways of incorporating noise into the seismic experiment. Noise at receiver, noise in the earth model, noise as a function of source-receiver offset, etc.

easiest: add (gaussian) random noise level by setting signal : noise parameter for each trace, or for each ensemble of traces

more difficult: add "noise" (heterogeneity) to earth model? This might be a way to vary rock property variations within a single layer. It would make more spikes, and would wreck the economy of sparsity that we are using.

Text description of scenario with mouseover

Since we can't make the scenario names longer without messing up the dashboard layout, can we add a longer text description for mouseover? Might not be good on tablets, and we'd need to add another text field on the scenarios page.

Models served

I would like to add a badge to the site telling 'how many models served'... What's the easiest way to grab a metric like that? Would it require adding a counter, or can we just grab it from the logs? It doesn't have to be 100% accurate, just 90%.

One day we can add 'registered users' too :)

User Account Info

Add account page, or append it to profile, but allow the user to view billing information, change credit card information, change subscription status.

Plot has no trace 300

Traces should be numbered from 1, not 0. A wedge plot with 300 traces, say, has no trace #300.

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.