Coder Social home page Coder Social logo

erikhuizinga / ranstax Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 2.0 2.4 MB

Random item picker from named stacks of known size

Home Page: https://erikhuizinga.github.io/ranstax/

License: GNU General Public License v3.0

Kotlin 97.74% HTML 1.22% JavaScript 1.04%
board-game board-games boardgame boardgames carcassonne card-game cards deck deckofcards decks dice dice-roller everdell gaming-software random randomization randomizer stack stacks wingspan

ranstax's Introduction

Hi there! πŸ‘‹

My name is Erik

  • πŸ€– I'm an Android developer and data analyst at Nedap Healthcare.
  • πŸ”­ I try to create useful, free and open source software.
  • 🌱 I’m currently learning:
    • JetBrains Compose
    • Vim
    • πŸ— Software design and architecture are one of my interests.
    • πŸ‘Ύ I'm also eager to start learning creating pixel art.
  • πŸ’¬ Ask me about Kotlin, Java and Android.
  • πŸ“« How to reach me: in://erikhuizinga
  • πŸ›  I mainly work with:
  • πŸ’‘ I also have experience with Python and MATLAB. I used MATLAB a lot in the data analyses that led to this scientific research article.
  • πŸ˜„ Pronouns: he, him, his.
  • πŸŽ“ I studied Technical Medicine and became a software engineer through Nedap University. I gave an interview about this.
  • πŸͺ… Fun fact: I live with 10 others: my significant other πŸ‘±πŸ»β€β™€οΈ plus πŸ‘§πŸΌ and πŸ‘ΆπŸ», our dog πŸ• (Buzz Lightyear 🌠), two cats (Woody 🀠 and Bimba πŸŽ€), two horses 🐴🐴 (Bo and Josje) and two chickens πŸ“πŸ“!
Various icons in this file have been modified from Simple Icons by a script in the repo.

ranstax's People

Contributors

erikhuizinga avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

beth tmpillbox

ranstax's Issues

Debounce drawing

Debounce drawing, so that accidental double clicks/taps are filtered.

A debounce of 200 milliseconds should do the trick. The UI shouldn't reflect the 'disabled' state, because it's would lead to excessive 'flashing' or animations. Maybe the history items appearing can be animated with the same debounce time? This would also help with visibility of history items appearing (#4).

Add reset button

Besides the clear button, there could be a reset button.
Clearing resets the app to an empty state.
Resetting should reset to the initial state.

To users it should be clear what these buttons do, and what their difference is.

Use URL-encoded storage

Currently the browser's local storage is used as storage. This is not portable and not flexible. Investigate and implement using the URL as a data source, instead, or additionally.

  • I don't want to implement storage on some server, so I want to keep it on the client side.
  • As a user I expect Ranstax to be in the state that I left when I open Ranstax again, so that I can continue where I left off.
    • This implies that the user navigating to the root app URL without any URL-encoded data should lead the app to loading the expected state from somewhere. E.g. local storage could be used for that.
    • Loading this local state updates the URL-encoded state.
  • Since URLs can be used outside of Ranstax (e.g. as bookmarks, or be shared online (they should be)), they should be versioned and Ranstax should be able to migrate them forward.
    • Note that the URL encoding model / version is separate from the data that it encodes, as that might be versioned too.

This should also play nice with the browser's history: https://developer.mozilla.org/en-US/docs/Web/API/History_API. The expected and intended behaviour when the user navigates back/forward should be clear and accessible.

Some thoughts, not the definitive proposal, and not sure if possible with the history API:

  • When the user interacts with Ranstax in a way that mutates the URL-encoded state, the URL is updated, but the browser history is not.
  • When a user navigates back, they go back to the previous page before loading Ranstax. They don't load the previous Ranstax state.
  • Forward: they go to the latest state in Ranstax, either loaded from the URL or from local storage.

Make Ranstax available offline

Making it 'installable' (PWA) could prevent unnecessary app loading, and increase its accessibility/visibility as a side effect.

Increase visibility of the latest history entry

The latest history entry blends in with the rest of the UI. It could stand our a bit more:

  • when drawn
  • at all times

When drawn, a smooth scroll and/or an animated background colour could draw more attention to the new history entry.

The latest entry could at all times have a different style (e.g. font and background colour), so that it stands out from the rest of the history.

See also: https://boardgamegeek.com/thread/2973974/article/41904537#41904537

Improve history visibility

Some possible improvements

  • Font size could be larger by default, and even larger on smaller viewports.
  • On draw, entries could appear slowly (e.g. 200 ms), or be scrolled to slowly, so that the user's eye has time to detect the appearing history entry/entries. This would also help with #3.
  • Every other history entry could get a slightly darker background colour.

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.