Giter VIP home page Giter VIP logo

waitinator's Introduction

Build Status

Try it here: https://walles.github.io/waitinator/

Icon source in the icon directory. If you want to change the icon then first edit the source there, then render it and update all the icon files.


Are we there yet?

Use case:

  • You are standing in line
  • It takes forever
  • You add some observations in this app
  • The app tells you when you're likely to be served

Ref: https://docs.flutter.dev/

Color Theme

The color theme of the app has to be set in a number of different places:

TODO

  • Replace the ETA algorithm. We should use the least-squares method to get a line through all points, then pick the ETA span so that 90% or more of all observations end up between the lines. Each observation should count as two points, one at the actual number and one at the next number.
  • Make a macOS app
  • Reloading the app when it was on the Graph tab should keep it on the Graph tab
  • Add a version / build number on the info screen, verify on both web and Android
  • Hint user to provide more observations if the two ETAs are "too far" apart
  • Bold the lower bound time left number
  • Enable removing / correcting observations
  • Use some kind of variable for the flutter-version in our CI GitHub action

Done

  • Finish initial screen
  • Add a button for getting to the ETA screen once the initial screen has been properly filled in by the user
  • Enable adding queue position observations on the ETA screen
  • Run all tests in CI
  • Estimate time to arrival
  • Publish to Github pages
  • Set up CI that publishes to Github pages
  • Add source code link somewhere in the UI
  • Test on a very low display (think phone web browser in landscape mode)
  • Make an icon
  • Enable entering multiple identical observations. I wanted to do that when I was on the phone and got to hear "your place is number 19" over and over.
  • Render to an Android app
  • Make a compliant Android icon
  • Make the icon's "i" match the theme blue color, and the various icon backgrounds on web and Android white
  • Add dark mode support, tested on web and Android
  • Make the ETA screen input box not look like crap in Firefox on Android. Can be reproduced using Chrome on a computer with mobile emulation mode and a narrow enough screen.
  • Preserve state even on page reloads
  • Test graph with both ETAs being close
  • Test graph with start time and initial ETA being close
  • Test graph both while counting up and counting down
  • Test graph with both light and dark theme
  • Don't crash when going to the second screen and then back to the first screen again. On web, we used to crash on the periodic 0.5s timer.

waitinator's People

Contributors

walles avatar

Watchers

 avatar James Cloos avatar  avatar

waitinator's Issues

Bad forecasts

Looking at this pic it's pretty obvious to me that when each number takes / can take a long time, that increases the uncertainty of the forecast, but we don't take that into account.

I think:

  • the projection should have two parallel lines
  • the X distance between the lines should be related how long any single number is expected to take
  • the slant of the two lines should maybe be calculated using least-squares?
  • When we have multiple observations for the same number, maybe keep the first and the last of those and ditch the middle ones so we don't bias ourselves to when lots of observations were added?

projection

observations

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.