Coder Social home page Coder Social logo

openlap's People

Contributors

nicoviking avatar tkem 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openlap's Issues

Several Backend issues with v0.8.0

  • Apparently, the Bluetooth dialog sometimes "hides" the USB dialog when a USB device is connected and Bluetooth is not enabled. Thus, and as a general usability improvement, it may be preferable to not ask the user to enabled Bluetooth (which is only supported on Android, anyway). The Bluetooth status can be polled on a regular basis, or the new BLE state callbacks can be used when they become available in ionic-native.
  • Backends (and plugins in general) should be more platform-aware, e.g. BLE should only be used when running on a device, and corovarduino only when running on Android. This should avoid spurious error messages when running in the browser, and maybe improve future iOS and/or Ionic View compatibility.
  • The Demo backend may be disabled when running on a device in production mode. Thus, if Bluetooth is not enabled and no USB device connected, the backend list will be empty. In this case, a helpful message ("enable Bluetooth or connect USB device") can be shown...
  • "USB Serial" should be renamed "Serial USB OTG" for clarity.

Use native Toast

Fall back on ionic Toast for development only.
Need to handle clicks (hide) and replace, though.

Use custom storage provider

After reviewing the different alternatives, the preferred way would be to

  • simply use LocalStorage for testing in the browser, since items can be easily changed
  • use NativeStorage in an app, since this seems to be the most "lightweight" alternative for persisting on app updates

For use with LocalStorage, an optional prefix should be supported for testing multiple apps on localhost.

Internationalization

Open Lap should support i18n. For starters, German translations should be added (target market and available resources).
TBD:

  • Use Angular i18n or ng2-translate
  • Localized TTS messages
  • Translate leaderboard?

Display event messages on screen

For improved accessibility, race events should not only be announced using TTS, but also displayed on screen (marquee?). Can/should reuse user settings.

Add car no. (ID) to leaderboard

At least in landscape mode - wouldn't take too much space and may improve usability regarding driver/colors/etc, settings.

Android 4.4 issues

At least when running in the emulator, there are several issues with Android 4.4:

  • Showing the chequered flags distorts header title.
  • Significant black border between content and footer.
  • Stripes aren't slanted.
  • Scrollbar to the right of content.

History and statistics

Collect and display more data during a race, for example

  • individual lap times
  • changes in position
  • time/lap of pit stops
  • etc.
    Data should be displayed as graphs (using HTML canvas) or in table form, and maybe exported as CSV.

Require Android >= 4.4

It is quite unlikely that this will work with Android <4.4:

<preference name="android-minSdkVersion" value="19"/>

Refactor leaderboard

  • Move to separate module
  • Evaluate stripe as SVG
  • Check row margins/padding issues
  • Re-check 4, 5, 7, and 10 inch displays (and larger ones, e.g. TV, too)

Improve device orientation handling

The leaderboard shows different information based on device orientation. Currently this only changes when the board gets updated. Orientation events should be used instead.

Add position "up" and "down" arrows

Leaderboard should display green "up" or red "down" arrow if position has changed since last lap (unless pit or finished icons are displayed).
Details TBD.

Manual reconnect not working as expected?

Test case: CU goes to sleep and is reset. Even though automatic reconnect won't work, pressing "Reconnect" in connection menu should perform a clean disconnect/connect.

Distinguish enter/leave pit lane

F1 TV broadcasts seem to use red "PIT" for cars entering pit lane and white "PIT" for cars during pit stops and leaving pit lane. Distinction could be made by first fuel increment, but yellow background should go, anyway.

Fuel not reset when CU is paused

Apparently, the CU ignores the reset command when "paused", i.e. when start lights are on.
Therefore, if a race is started with start lights active, fuel will not be reset to maximum level.
This seems also to be the case with other apps, but possible workarounds should still be investigated.

Filter Bluetooth devices

Filtering by UUID doesn't seem to work well on Android, so all scanned BLE devices are currently displayed, including tooth brushes, etc.
Manually filtering by name/regex might be an option, but should be made configurable for easier debugging.

Use "fuel != 0" to detect vehicle presence

Currently, vehicles/drivers are only displayed in the leaderboard after crossing the finish line at least once.
Showing all vehicles with a non-zero fuel value may improve usability.

Prepare for v1.0.0

[x] Review settings (especially section titles).
[x] Review messages.
[x] Review licenses.
[x] Review default colors.

Count laps starting with "1"

First car crossing start/finish line should set total laps to "1", as "lap 0" is rarely used in professional motor sport.

TBD: Leaderboard "laps" counter.

Add options to restart and stop a race

There should be an option to restart or prematurely stop ("red flag") a race or qualifying session without going through the side menu. Restart may also apply to practice mode.
This should probably be implemented using a popover/menu on the leaderboard page. If the race hasn't finished, restart should use a confirm dialog.

Port to Ionic 2 RC

  • refactor into proper Angular2 modules
  • evaluate @ionic/storage (sqlite?)
  • use new build environment
  • add resources to git (simplifies build)
  • check dev vs. prod wrt demo backends
  • check .gitkeep in www wrt cordova
  • remove .editorconfig
  • re-check rxjs imports (tree-shaking)

Add Ionic ErrorHandler

Integrate with current ErrorHandler; also evaluate popups for severe errors ("this shouldn't have happened")

Fix behavior of "new" cars after race is finished

If a car crosses the finish line for the first time after a race is stopped, it will have to finish one lap until the car is flagged as "finished". This should happen immediately, or new cars should be ignored after race is finished (e.g. by setting mask to active entries).

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.