Git Product home page Git Product logo

grizzlytime's People

Contributors

codacy-badger avatar daltz333 avatar hdsbbrooks avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

grizzlytime's Issues

Codacity Badge Broken

The codacity badge in the readme is broken (directs you to an error page when you click on it). It probably broke when the repository was moved to the YCSR github org.

"Confirm" button for google sheets code always greyed out.

Describe the bug
"Confirm" button always greyed out when trying to enter google sheet code.

To Reproduce
On, Windows 10, MacOS 10.15.7, Raspberry Pi Rasbian (full version). First time running the app the pop-up appears where I can enter the code but the "Confirm" button is always greyed out on all OSes. Fortunately the config.json file is created so I can enter the code there.

Expected behavior
Button should become available to press.

Log File
No file

Desktop (please complete the following information):

  • Version 2.3.0

Configuration.json missing

Describe the bug
Log and configuration files are not generated on linux. Settings seem to persist between application restarts.

Expected behavior
I expect a configuration.json file to appear in the directory that I launched grizzly time from.

Log File
N/A

Desktop (please complete the following information):

  • Version 2.3.0 (From releases tab)
  • Java 11
  • Ubuntu 21.10

Low Priority - Issue creating accounts simultaneously on different devices

Low Priority - Issue creating accounts simultaneously on different devices
This year we started using multiple computers in different rooms to speed up the login process. We ran into an issue during the account creations process wherein new accounts over-write each other.

I meant to get around to writing, testing and contributing a fix to this before build season but I didn't manage to get around to it. I'm posting this here just in case anyone else plans to run multiple kiosks. I plan to add some validation to fix this issue, but won't be able to write and contribute it back until after the 2022 build season.

To Reproduce
Steps to reproduce the behavior:

  1. Have grizzly time running on two separate machines.
  2. Create two accounts at the same time on each machine.
  3. If you watch the spreadsheet during this processing you can see one account being overwritten by the other on the main profile page.

Workaround
Only allow students to create accounts on a single machine. Once accounts are created having students log-in across different machines works fine.

Cause
I suspect the issue is a race condition caused by grizzly time grabbing a duplicate "blank" row number in the createNewUser method before a previous write has finished. I have not tested this supposition.

Date checking is incorrect

The program currently seems to check for the error in hours, minutes, and seconds. This causes a login at 20:56:57 and a logout at 20:57:11 to be invalid because the difference in seconds is negative.

Reduce the scope of google drive access

Could you reduce the scope of grizzlytime's google drive access to just the grizzlytime spreadsheet? I'm not incredibly excited to leave access to my entire google drive on a pi's sd card. It probably won't be a problem but I've gotta be a little security conscious. It seems like the oauth scope https://www.googleapis.com/auth/drive.file from https://developers.google.com/identity/protocols/oauth2/scopes#sheets would do the trick. I'm not sure if additional work would be needed to tag a file as created or opened with this app, it seems that it "shouldn't be ridiculously difficult" - famous last words

Is A Move To Databases Rather Than Google Sheets Forthcoming?

I like this project but, I was wondering if you were looking into supporting a database backend rather than Google Sheets. I'm just somewhat worried about the robustness of the Google Sheets solution in the long run.

I do understand that this would be quite an undertaking though, I skimmed your code while considering attempting a fork and I don't think that I could do it in a reasonable amount of time since I'm not skilled at database programming myself.

Serial Barcode Reader Support

Serial barcode scanner support would allow teams to worry a little less about the input textbox losing focus. Additionally, if you add the ability to send a custom serial command on data received (when the loading symbol shows up) and successful check-in/out, those of us with barcode scanner obsessions can tell our barcode scanners to enable/disable and make fancy beeps.

Spreadsheet ID Form Confirm Button Grayed Out

Describe the bug
On first launch, grizzly time refuses to accept a spreadsheet ID. Additionally, no log or configuration files are generated. I tried my own spreadsheet ID and then copied the one used in the wiki to see if it was a format issue. The ID used was 1D7aEi_M_yW5XXOYiDqvRMGM5Oe_tJwv8U9IbNskk7i4
image

Expected behavior
Confirm button should be enabled and log and configuration files should be generated

Log File
N/A

Desktop (please complete the following information):

  • Version 2.3.0 (From releases tab)
  • Java 11
  • Ubuntu 21.10

Connection timed out crash

Is it an authentication problem, or internet problem? Probably would be best to just have a minor message pop up suggesting to retry.

external stylesheet not working

Within the same directory as the GrizzlyTime app I've created a folder "stylesheets" and inside that, I've created a file "style.css". I've copied and pasted the root.css contents into the style.css file, adjusted a few things and saved it. Then reloaded GrizzlyTime and nothing has changed.

Raspberry Pi Installation

Describe the bug
Can't get GrizzlyTime-2.3.0 to run on Raspberry Pi

To Reproduce
Steps to reproduce the behavior:
A fresh Rasbian installation on a RPi 4.
Installed Java with "sudo apt install default-jdk"
Run "java -jar GrizzlyTime-2.3.0-Java11.jar"
See log below.

Expected behavior
GrizzlyTime-2.3.0 to run

Log File
OpenJDK Server VM warning: You have loaded library /home/pi/.openjfx/cache/11.0.2/libprism_es2.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c ', or link it with '-z noexecstack'.
Loading library prism_es2 from resource failed: java.lang.UnsatisfiedLinkError: /home/pi/.openjfx/cache/11.0.2/libprism_es2.so: /home/pi/.openjfx/cache/11.0.2/libprism_es2.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
java.lang.UnsatisfiedLinkError: /home/pi/.openjfx/cache/11.0.2/libprism_es2.so: /home/pi/.openjfx/cache/11.0.2/libprism_es2.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
at java.base/java.lang.Runtime.load0(Runtime.java:768)
at java.base/java.lang.System.load(System.java:1837)
at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:205)
at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:185)
at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:157)
at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:52)
at com.sun.prism.es2.ES2Pipeline.lambda$static$0(ES2Pipeline.java:68)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at com.sun.prism.es2.ES2Pipeline.(ES2Pipeline.java:50)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:187)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
at java.base/java.lang.Thread.run(Thread.java:834)
Loading library prism_sw from resource failed: java.lang.UnsatisfiedLinkError: /home/pi/.openjfx/cache/11.0.2/libprism_sw.so: /home/pi/.openjfx/cache/11.0.2/libprism_sw.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
java.lang.UnsatisfiedLinkError: /home/pi/.openjfx/cache/11.0.2/libprism_sw.so: /home/pi/.openjfx/cache/11.0.2/libprism_sw.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
at java.base/java.lang.Runtime.load0(Runtime.java:768)
at java.base/java.lang.System.load(System.java:1837)
at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:205)
at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:185)
at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:157)
at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:52)
at com.sun.prism.sw.SWPipeline.lambda$static$0(SWPipeline.java:42)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at com.sun.prism.sw.SWPipeline.(SWPipeline.java:41)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:187)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
at java.base/java.lang.Thread.run(Thread.java:834)
Graphics Device initialization failed for : es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:222)
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:260)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
... 1 more
Exception in thread "main" java.lang.RuntimeException: No toolkit found
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:272)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:834)

Desktop (please complete the following information):
Raspbian GNU/Linux 10

Force log everyone out

This is more of a feature request, but I think it would be really helpful if we would be able to force log everyone out of the application.

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.