Giter VIP home page Giter VIP logo

goobox-community-gui's People

Contributors

jkawamoto avatar kaloyan-raev avatar meijesibbel avatar mtlynch 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

goobox-community-gui's Issues

Tray icon reflects sync state

This is easier to implement than a tray icon with a overlay and much better visible. Dropbox does this now too. We still have to think of the color code we should use. I think dropbox uses blue for synchronizing and white for done synchronizing. We could implement a similar strategy. @Eliomendes , could you provide us with a blue tray icon, thanks.

JRE install fails

Some strange errors also happen:

[13160:1228/161852.855:ERROR:gles2_cmd_decoder.cc(17403)] [.DisplayCompositor-0000000005CC4910]GL ERROR :GL_INVALID_OPERATION : glCreateAndConsumeTextureCHROMIUM: invalid mailbox name
[13160:1228/161852.856:ERROR:gles2_cmd_decoder.cc(9636)] [.DisplayCompositor-0000000005CC4910]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.

Implement tray-icon pop-up menu

When a user clicks on the tray icon once a window should appear as demonstrated below that shows a summary of the user's account/activity.

layout

Set the default tray icon size to 3x (96x96) on windows 10.

The icons look much crisper if they have a higher resolution. The standard tray icon doesn't look crisp on a 1080p display on windows and completely awful on a 4k display. Other option would be to set the 3x only for machines with a 4k display.

Consider creating a smaller executable for download

Since we are running up on close to 100MB worth of data for the app, we should consider allowing the user to download say a 2-10 MB executable and then the app downloads the rest of the data necessary for the app at start. Something like google chrome does:

image

Though this is not vital right now, it does increase user experience as most users don't like downloading large executables.

Slight UI text issue

image

When i go to register an account and enter a email address that is already registered or invalid, then click back and next again, it takes me to the login screen but still shows me the text from the registration screen with the error. The app should update the text to the default text of the screen in that case (reset it).

Show path of sync folder after it has been selected.

Right now it doesn't show the user which path is selected which will cause questions like "mnn did i selected the path or not?".

Solution: Add the path selected as text centered below the "browse..." box. Text-> white, same size as "Don't have an account?" in the Storj screen.

Spacing can be the same as the one here:

image

ERROR: The process "5316" not found.

When right clicking on the tray icon -> exit nothing happens and i get the following terminal output:

[13:26:50.425] [debug] ΓÇöΓÇö log end ΓÇöΓÇö
[13:27:02.210] [info] closing the sync-sia app
ERROR: The process "5316" not found.
(node:17388) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 9): Error: Command failed: taskkill /pid 5316 /T /F
ERROR: The process "5316" not found.

[13:27:20.544] [debug] Sending @IPC/CalculateUsedVolume request
[13:27:20.547] [debug] Received a @IPC/CalculateUsedVolume request: null
[13:27:20.569] [info] Calculating volume size of C:\Users\meije\Goobox: 0GB
[13:27:20.570] [debug] Sending a successful response for @IPC/CalculateUsedVolume request: null
[13:27:20.602] [debug] Received an successful response for the @IPC/CalculateUsedVolume request: 0
[13:27:20.608] [debug] action %cSetVolumeSize %c@ 13:27:20.599
[13:27:20.629] [debug] %c prev state color: #9E9E9E; font-weight: bold { disabled: false,
  state: 'synchronizing',
  totalVolume: 50,
  usedVolume: 0 }
[13:27:20.639] [debug] %c action     color: #03A9F4; font-weight: bold { payload: 0, type: 'SetVolumeSize' }
[13:27:20.656] [debug] %c next state color: #4CAF50; font-weight: bold { disabled: false,
  state: 'synchronizing',
  totalVolume: 50,
  usedVolume: 0 }
[13:27:20.683] [debug] ΓÇöΓÇö log end ΓÇöΓÇö

Check seed compatibility with sync-storj

If a user logs in from another machine with a password and email address but uses a wrong seed, the app won't be able to decrypt the bucket or decrypt the files, which will result in errors. The app should check if it can decrypt the bucket or not, if it can't, it should prompt the user that he or she entered a wrong seed and should try entering the correct seed,

Chrome Dev Console is visible by default

Today I launched the GUI for first time ever and I got dialogs appear with the Chrome Dev Console on by default. This is valid for both the Installer and the Tray Popup. See the attached screenshots.

I could easily close the dev console by clicking on the X button, but it's quite confusing to have it.

goobox-installer-dev-console

goobox-tray-popup-dev-console

Mouse cursor is confusing

I have two UX issues with the mouse cursor in the GUI:

  1. It does not change to a finger cursor on the widgets I can click on. It just stays with the default cursor and I am not sure if that image or arrow is a button or not.
  2. It changes to editing cursor on text labels although I can neither select or edit them.

Implement desktop and tray icon(s)

This includes the tray icon with appropriate status overlays and the desktop icon(s). We will have to check with icon fits best for each OS and which one is the nicest in general.

Issues with v0.0.2

windows 10 home, x64

  1. Double clicking on goobox.exe does nothing (it does open a task manager process though).
  2. executing goobox.exe installer opens a white screen, see screenshot below, including 3x task manager processes.

image

Return error when registering Storj account with invalid email or password.

2018-01-17 11:13:13 [main] DEBUG net.harawata.appdirs.AppDirsFactory - os.name windows 10 is resolved to Windows
2018-01-17 11:13:13 [main] INFO  io.goobox.sync.storj.db.DB - Resetting sync DB
2018-01-17 11:13:13 [main] DEBUG net.harawata.appdirs.AppDirsFactory - os.name windows 10 is resolved to Windows
2018-01-17 11:13:13 [main] DEBUG net.harawata.appdirs.AppDirsFactory - os.name windows 10 is resolved to Windows
2018-01-17 11:13:13 [main] INFO  io.goobox.sync.storj.App - Checking if local Goobox sync folder exists
2018-01-17 11:13:13 [main] INFO  io.goobox.sync.storj.App - Folder exists
2018-01-17 11:13:13 [main] INFO  io.goobox.sync.storj.App - Checking if Goobox data folder exists
2018-01-17 11:13:13 [main] DEBUG net.harawata.appdirs.AppDirsFactory - os.name windows 10 is resolved to Windows
2018-01-17 11:13:13 [main] INFO  io.goobox.sync.storj.App - Folder exists
2018-01-17 11:13:13 [main] INFO  io.goobox.sync.storj.App - Checking if cloud Goobox bucket exists
2018-01-17 11:13:13 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.
2018-01-17 11:13:13 [Thread-0] DEBUG io.goobox.sync.storj.ipc.IpcExecutor - Command input received: {"method":"createAccount","args":{"email":"mesdfsd.sdfsd","password":"dasdas"}}
2018-01-17 11:13:13 [Thread-0] DEBUG io.goobox.sync.storj.ipc.IpcExecutor - Command result sent: {"status":"error","message":"Invalid email"}
2018-01-17 11:13:16 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.
2018-01-17 11:13:19 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.
2018-01-17 11:13:22 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.
2018-01-17 11:13:25 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.
2018-01-17 11:13:28 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.
2018-01-17 11:13:31 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.
2018-01-17 11:13:34 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.
2018-01-17 11:13:37 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.
2018-01-17 11:13:40 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.
2018-01-17 11:13:43 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.
2018-01-17 11:13:46 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.
2018-01-17 11:13:49 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.
2018-01-17 11:13:52 [main] ERROR io.goobox.sync.storj.App - No keys found. Waiting for keys to be imported.

Design and implement the settings menu for the app

Initially we can include some of the same (and basic) options other apps like Dropbox offer, which includes

  • General
  • Account
  • Folders and Drives
  • Sync folder
  • Bandwidth
  • Notifications

After the basic implementation we should aim at for example display the SIA, Storj or SIA + Storj account details in Account, this includes wallet address, amount of funds on the address, spending info, seed, passwords...

Integrate SIA and Storj back ends

This is where the Storj and SIA back-ends should be integrated to ensure that each individual repo can function in the app in harmony together with the other repo. This is especially important to get right for users that use Storj + Sia to avoid conflict.

Monitor if sync apps are still running/handle sync apps crashing

If for some reason sync-Storj or Sync-SIA crashes, it should try to restart it after a few seconds or so and output the restart even (with reason for restart) to the logs which will allow us to troubleshoot. This to ensure that when users run the GUI and sync-storj or sync-SIA crashes, that they don't keep running a app that won't sync.

Later down the line adding something like a notification of failure to start would be a good one.

Only notify the user with `Your sia account is ready` after exiting the installer

Right now if i stay on the wallet screen for too long without pressing next (even though i can), i get the message that the account is setup correctly, then when i get to the last screen it says that the app is getting sia ready, though i already got the notification. This might confuse people as they might think they are supposed to get a notification after they close the installer, not realizing the message they received was already the "your account is ready" message.

[error] Error: This socket has been ended by the other party

[02:59:48.906] [verbose] Java HotSpot(TM) 64-Bit Server VM warning: Option CreateMinidumpOnCrash was deprecated in version 9.0 and will likely be removed in a future release. Use option CreateCoredumpOnCrash instead.
[02:59:49.302] [verbose] SLF4J: A number (1) of logging calls during the initialization phase have been intercepted and are
[02:59:49.302] [verbose] SLF4J: now being replayed. These are subject to the filtering rules of the underlying logging system.
[02:59:49.306] [verbose] SLF4J: See also http://www.slf4j.org/codes.html#replay
[02:59:49.506] [verbose] WARNING: An illegal reflective access operation has occurred
[02:59:49.506] [verbose] WARNING: Illegal reflective access by dorkbox.systemTray.util.SystemTrayFixes (file:/C:/Users/meije/Downloads/goobox-win32-x64%20(1)/goobox-win32-x64/resources/app/goobox-sync-storj/goobox-sync-storj-0.0.13.jar) to method java.lang.ClassLoader.findLoadedClass(java.lang.String)
[02:59:49.511] [verbose] WARNING: Please consider reporting this to the maintainers of dorkbox.systemTray.util.SystemTrayFixes
[02:59:49.530] [verbose] WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
[02:59:49.536] [verbose] WARNING: All illegal access operations will be denied in a future release
[03:00:10.638] [error] Cannot parse #: SyntaxError: Unexpected token # in JSON at position 0
[03:00:25.354] [error] Cannot parse #: SyntaxError: Unexpected token # in JSON at position 0
[03:00:28.460] [info] logging in to Storj: [email protected]
[03:00:28.460] [debug] sending a request to sync storj: {"method":"login","args":{"email":"[email protected]","password":"","encryptionKey":""}}

[03:00:28.463] [error] Error: This socket has been ended by the other party
    at Socket.writeAfterFIN [as write] (net.js:305:12)
    at Promise.race.resolve (C:\Users\meije\Downloads\goobox-win32-x64 (1)\goobox-win32-x64\resources\app\lib\main-process\startup.js:21099:18)
    at Promise (<anonymous>)
    at Storj.login (C:\Users\meije\Downloads\goobox-win32-x64 (1)\goobox-win32-x64\resources\app\lib\main-process\startup.js:21086:26)
    at EventEmitter._electron.ipcMain.on (C:\Users\meije\Downloads\goobox-win32-x64 (1)\goobox-win32-x64\resources\app\lib\main-process\startup.js:20575:26)
    at emitTwo (events.js:106:13)
    at EventEmitter.emit (events.js:194:7)
    at WebContents.<anonymous> (C:\Users\meije\Downloads\goobox-win32-x64 (1)\goobox-win32-x64\resources\electron.asar\browser\api\web-contents.js:247:13)
    at emitTwo (events.js:106:13)
    at WebContents.emit (events.js:194:7)

[03:00:29.680] [error] { code: 'EPIPE' }

How to reproduce: click on finish while the app is thinking.

image

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.