Git Product home page Git Product logo

webinterface's People

Contributors

aaronvasquez avatar alisamix avatar automyr avatar ckh4 avatar edmundmai avatar funkydrummer avatar jfarago avatar johannlilly avatar kelonye avatar nullpilot avatar nymd avatar pandora23 avatar rfornea avatar tenisakb avatar whalunen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webinterface's Issues

File Upload confusion - polling?

If I get the handle and leave the upload before it completes and start a new upload, it gets confused and thinks I'm on the first upload.

I made a 3rd upload and it's jumping progress bar back and forth as if polling both uploads

State Handling Sign-Up

I had a concern after some testing last week in the state handling of the sign up flow. It's impossible to leave the state at each step. So, for example, if I click next from step 1, I can't go back to look at the recovery words. If next from step 2, I can't go back from 3 to get my account handle. If I'm at payment step 3, I can't cancel and start over. After I've confirmed payment and login to account, I can't go back to sign up a new account again since it sends me to confirmation page. Some of this flow may be intended, but overall, it's too linear and inflexible. We need to revisit the UX a bit. (edited)

Illustrations while waiting for uploads

Iโ€™d also like to add some rotating text/illustration during file upload to keep people busy, like an in game loading screen transition. Hints/tips, interesting facts, idk, something...

Upload error

Uncaught SyntaxError: Unexpected end of JSON input
at JSON.parse ()
at Module.decrypt (metadata.ts:10)
at MergeMapSubscriber.project (upload-epic.ts:105)
at MergeMapSubscriber../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber._tryNext (mergeMap.js:61)
at MergeMapSubscriber../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber._next (mergeMap.js:51)
at MergeMapSubscriber../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:53)
at FilterSubscriber../node_modules/rxjs/_esm5/internal/operators/filter.js.FilterSubscriber._next (filter.js:38)
at FilterSubscriber../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:53)
at Notification../node_modules/rxjs/_esm5/internal/Notification.js.Notification.observe (Notification.js:21)
at QueueAction../node_modules/rxjs/_esm5/internal/operators/observeOn.js.ObserveOnSubscriber.dispatch (observeOn.js:40)
at QueueAction../node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js.AsyncAction._execute (AsyncAction.js:64)
at QueueAction../node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js.QueueAction.execute (QueueAction.js:27)
at QueueScheduler../node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js.AsyncScheduler.flush (AsyncScheduler.js:43)
at QueueAction../node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js.QueueAction.schedule (QueueAction.js:21)
at QueueScheduler../node_modules/rxjs/_esm5/internal/Scheduler.js.Scheduler.schedule (Scheduler.js:13)
at QueueScheduler../node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js.AsyncScheduler.schedule (AsyncScheduler.js:31)
at ObserveOnSubscriber../node_modules/rxjs/_esm5/internal/operators/observeOn.js.ObserveOnSubscriber.scheduleMessage (observeOn.js:45)
at ObserveOnSubscriber../node_modules/rxjs/_esm5/internal/operators/observeOn.js.ObserveOnSubscriber._next (observeOn.js:48)
at ObserveOnSubscriber../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:53)
at MergeMapSubscriber../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber.notifyNext (mergeMap.js:84)
at InnerSubscriber../node_modules/rxjs/_esm5/internal/InnerSubscriber.js.InnerSubscriber._next (InnerSubscriber.js:15)
at InnerSubscriber../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:53)
at MergeMapSubscriber../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber.notifyNext (mergeMap.js:84)
at InnerSubscriber../node_modules/rxjs/_esm5/internal/InnerSubscriber.js.InnerSubscriber._next (InnerSubscriber.js:15)
at InnerSubscriber../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:53)
at MergeMapSubscriber../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber.notifyNext (mergeMap.js:84)
at InnerSubscriber../node_modules/rxjs/_esm5/internal/InnerSubscriber.js.InnerSubscriber._next (InnerSubscriber.js:15)
at InnerSubscriber../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:53)
at Upload. (upload-epic.ts:70)
at Upload.emit (events.js:146)
at index.js:963
at Generator.next ()
at asyncGeneratorStep (index.js:11)
at _next (index.js:33)
at index.js:40
at new Promise ()
at index.js:29
at Upload.finishUpload (index.js:968)
at UploadStream.emit (events.js:151)
at finishMaybe (_stream_writable.js:620)
at UploadStream.finalCallback (_stream_writable.js:595)
at UploadStream._afterUpload (index.js:815)
at index.js:796

[Webinterface] Prevent the user from accidentally leaving the page during their upload by making them click a popup

If a user leaves the page while their file is still uploading to the brokers and tangle attachment has not yet begun, their upload will not succeed and they will not get their money back.

Make it difficult for them to leave the page accidentally during the upload process by having some kind of "Are you sure?" popup. If they want to abandon their upload and lose their money, they must consciously click "yes" or "ok".

[Webinterface] Add terms and conditions and/or Privacy Policy to storage interface

Make people check a box that says something like "I have read the terms and conditions and/or privacy policy" (with a link to those conditions that the user can read) before they can upload. Disable upload button if they haven't checked the box.

For this issue we will have to do a little bit of research to figure out what all should be in the terms and conditions and/or privacy policy. One of the terms (the first one) should be something like "By using this website I agree to all the terms and conditions" and another should be "I will not upload anything illegal or copyrighted".

Go back to invoice screen if user tries to do an upload but they have not paid

If the user has created an account but has not yet paid and subsequently tries to do an upload, the backend will send back a response that is exactly the same as the create account response. It'll look like this:

{
    "expirationDate": "2020-03-20T19:50:10.109358022Z",
    "invoice": {
        "cost": 1.56,
        "ethAddress": "someEthAddress"
    }
}

If we get a response like this while trying to do an upload, just redirect them back to the invoice screen.

We may wish to show some kind of error as well, but it would be nice for them to still be shown the ethAddress and cost, in case they created an account earlier but forgot to pay or something, or they closed their browser, or their power went out, etc.

Outdated/deprecated/missing/incorrect/extra dependencies

Vulnerabilities:

  • handlebars (dependency of jest)
  • ... 28 others

Deprecated/outdated:

  • redux@^3.7.2 must be 4
  • react-redux@^5.1.1 must be 6
  • react-router-redux

Missing:

Incorrect:

  • babel-jest (set as both dev and regular dependency)

Extra:

  • preact
  • lodash (?)
  • postcss (?)
  • react-showdown
  • ... review others in case there are more

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.