Giter Site home page Giter Site logo

apbs-web's People

Contributors

dependabot[bot] avatar eo300 avatar

Watchers

 avatar  avatar

apbs-web's Issues

Display past jobs within submenu utilizing webstorage

Since there's no account system at the moment, it'd be useful to display the associated job IDs for jobs launched from a user's browser in case they...

  1. Didn't record the job ID
  2. Would like to easily navigate without copy/pasting the respective job status URL

Remake Job Status page to indicate and treat each APBS/PDB2PQR task as individual jobs

Previously (as with the old website), an APBS task spawned from the results of the PDB2PQR task are kept within the same job ID. Since we are now allowing APBS to be launched without a previous PDB2PQR job, it would be useful to treat both as individuals, even if the user is using the PQR file from another PDB2PQR task.

As such, the Job Status page should reflect this. Namely:

  • Don't display both PDB2PQR and APBS columns. Show only the one related to the job requested
  • Restyle the page to show the progress of the job.
    • For now this includes the states "RUNNING", "COMPLETE", and "ERROR"
    • Later states should include
      • "QUEUE" - for tasks in TESK but not running
      • "DOWNLOADING" - when tasks are downloading input files into respective volume in cluster
      • "UPLOADING" - when uploading respective output files to storage service

Duplicating page does not trigger fetch for new job ID

On Chrome, duplicating a tab while on the configuration page does not trigger another job ID to be fetched from the server.

This carries the dangerous effect of potentially conflicting with/overwriting the results of an existing job, with the backend's current implementation.

Implement long-polling when checking for job status from server

Current method to check job status client side is a naive implementation of a fetch request. Obviously this can pose an issue with scale.

(will need corresponding issue in backend to support this)

Possible approach from off the dome

  • client: sends status request
  • server: if job running, send a "running" response
  • client: updates timer displays to reflect elapsed time and that job is running
  • client: sends a long-poll request
  • server: waits on to respond until job is in a finished state. Then send response

Disable "Submit" button until validation checks pass

Add a state flag to disable the submit button until all validation checks are passed. At the very least, this would serve as a first gate to preventing user from submitting an invalid form. Of course, validate in the backend as well (will create related issue)

A search field to navigate to an existing job would be nice in case user doesn't have the link on hand

If a user navigates away from the job status page mid-job without saving the URL, there isn't a way to navigate to a running/completed job. Having a search field on the homepage or navigation bar, like a USPS/Fedex tracking number, would help in requiring the user to only have to save an ID number rather than an entire URL.

This should be in addition to the option to supplying an email address for notification as described in #5

Send APBS form data as JSON

After a user hits submits a job, the form values should be sent to the server as JSON data rather than the default HTML form

APBS job autofill warns user of field overwriting only if they previously used the auto-fill

If the user starts manually filling in the fields for an APBS job configuration but then decides to auto-fill them through a PQR upload, they are not warned that uploading will potentially overwrite all the fields.

This is unlike the current case where a warning is emitted only if an auto-fill was already used

Proposed solution

  • raise a flag upon change to any form item. Ensure warning mechanism acknowledges it

Allow user to to choose the input file type on the interface

At the moment, the core APBS software supports various input file types within its READ section including keywords "mol", "charge", "diel". Because we are porting this from the old interface which supported only the "mol" keyword with *.pqr files, this is all that is supported for now.

Expanding this would be a nice feature to add in the future. Will require adjustments to backend (will create related issue for that)

Send PDB2PQR form data as JSON

Currently the APBS job config form consolidates form data and sends as a JSON request. This ought to be the case for PDB2PQR.

Noteworthy Obstacles

  • Handling uploads for PDB, User forcefield/names, and Ligand MOL2 files

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.