Code Monkey home page Code Monkey logo

racergo's Introduction

Build StatusCoverage racergo

An application to help the timing of long distance races including registration and displaying results and prizes. Features include:

  • Calculate Prizes (e.g. Overall Male, Female Under 15, etc)
  • Web interface for entering and displaying results to racers/spectators (http://raceresults/admin & http://raceresults/ respectively)
  • Meant to be used with a wireless/wifi hotspot configuration as all requests get directed to hostname raceresults
  • Download race results in a combined CSV (Entries (names, tshirt size, etc) & Results (time, overall place))
  • Entering Bib # information for each racer as they cross the line

RacerWii helps track racers on long distance races like a 5k. It's meant to be a high-tech low cost way of creating and displaying race results. It's primary use case is for fund raiser type races where buying RFID chips for each runner is over the top and too costly.

racergo's People

Contributors

mzimmerman avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

racergo's Issues

Day-of signup

Importing CSV files is great, but there's still a lot of walk-up racers. Fat fingering the input can ruin your race results. E.g., a female getting 2nd place in the 30 year old man bracket! (Not that this actually happened.)

Making this for walk-up racers puts the onus on the registrant to input the correct data.

Create the audit log report and present manual fix options

Moving to racergo an audit log was created which tracks all linkBib actions so that if/when things go wrong with data entry, you can track down where/how and fix the results.

We need to add an interface to see the audit log and modify results manually.

Better support fat fingers

When entering bib results, require confirmation as a second entry.

Could make a Confirmed bool in the Result/Entry struct that is set when confirmed by a second data input of the same bib # in linkBib. If an Entry/Result isn't confirmed, display it as bright red in the user interface and allow for manual action to fix the issue.

Better support to combat "bandits"

Bandits are those individuals that run across the line (and we record a time for them) except they don't actually have a bib or are part of the race

SEGSEGV if wiimote doesn't connect in it's first attempt - "signal arrived during cgo execution"

SIGSEGV: segmentation violation
PC=0x7f715ecd5224
signal arrived during cgo execution

main._C2func_cwiid_command(0x0, 0x200000003, 0x0, 0x0, 0x0, ...)
github.com/mzimmerman/racerwiigo/_obj/_cgo_defun.c:45 +0x2f
main.raceFunc()
github.com/mzimmerman/racerwiigo/_obj/_cgo_gotypes.go:243 +0x470
created by main.main
github.com/mzimmerman/racerwiigo/_obj/_cgo_gotypes.go:186 +0x159

goroutine 1 [IO wait]:
net.runtime_pollWait(0x7f715f2dff00, 0x72, 0x0)
/usr/lib/go/src/pkg/runtime/znetpoll_linux_amd64.c:118 +0x82
net.(_pollDesc).WaitRead(0xc200131110, 0xb, 0xc200123150)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:75 +0x31
net.(_netFD).accept(0xc200131090, 0x7109a0, 0x0, 0xc200123150, 0xb, ...)
/usr/lib/go/src/pkg/net/fd_unix.go:385 +0x2c1
net.(_TCPListener).AcceptTCP(0xc200000368, 0x18, 0xc2000ca010, 0x4660b7)
/usr/lib/go/src/pkg/net/tcpsock_posix.go:229 +0x45
net.(_TCPListener).Accept(0xc200000368, 0x0, 0x0, 0x0, 0xc2001230f0, ...)
/usr/lib/go/src/pkg/net/tcpsock_posix.go:239 +0x25
net/http.(_Server).Serve(0xc200103140, 0xc2000fd8c0, 0xc200000368, 0x0, 0x0, ...)
/usr/lib/go/src/pkg/net/http/server.go:1542 +0x85
net/http.(_Server).ListenAndServe(0xc200103140, 0xc200103140, 0x0)
/usr/lib/go/src/pkg/net/http/server.go:1532 +0x9e
net/http.ListenAndServe(0x6927c0, 0x5, 0x0, 0x0, 0x1, ...)
/usr/lib/go/src/pkg/net/http/server.go:1597 +0x65
main.main()
github.com/mzimmerman/racerwiigo/_obj/_cgo_gotypes.go:191 +0x287

goroutine 2 [syscall]:

Show all unconfirmed racers at the top.

When racers were unconfirmed and many other racers come in before the non-confirmation is addressed, the interface cuts off the view to only but the last 10, so there's no way to still know which bibs are unconfirmed.

Show unconfirmed racers at the top.

Add confirm user interface

Set up this interface to be a authoritative of when the racer finishes. this would be someone who would be scanning bibs or entering the numbers based off of a slower process and is not necessarily entering the bib number at the time of the crossing of the finish line

Near Realtime interface

Add a near real-time interface so that clients don't have to refresh to get new data; it gets pushed to them.

This is primarily to be able to announce runners as they come across the line.

Hardware failure

During a race, hardware failure could cause a loss of all race results. Implement some "mirroring" with another local laptop/server. This could include an active-active partnership or active-passive, but it should support rolling over fairly automagically.

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.