Skip to content

miro-jelaska/timer-for-competition

Repository files navigation

Competition timer

Timer with multiple states and ability transfer time between them.

Screenshot

Timer has following primary steps:

  1. Idle state (Menu)
  2. Preparation time
  3. Presentation time
  4. Q&A time

Features:

  1. Large counter (format: "mm:ss" and "ss")
  2. Easy to customize
  3. Pause/continue function
  4. Timer durations can be changed in Competition.Timer/app.config
  5. In general, if the state is finished earlier the remaining time is transfered to next state (e.g. someone spends 1 out of 5 min for preparation, remaining 4min are transfered to presentation time)
  6. There are sound notifications when there is 15sec left, and when time's up

Minor "Problems":

  1. Timer doesn't start immediately. It takes <= 1sec to start.
  2. Timer doesn't continue immediately. It takes <= 1sec to start.
  3. No Dependency Injection Container was used

Short implementation notes

States

These are all the states and transitions (commands) in Timer. All states and transition

  • Time can be transfered between states using TimeProvider which is injected in state
  • All transitions are registered in Rules/Transition

Usage

Timer was used on (this list may become outdated):

  • Microsoft ImagineCup final (27.3.2014., FESB)
  • DUMP Young Programmers Association - Internship competition (2015., DUMP)

Contact

Have some questions or want to give a feedback? You can send me a an email ✉️

NOTE: Do you like it? Show it by giving a ⭐️. 🚀

About

Timer with multiple states and ability transfer time between them. Implements deterministic finite automaton.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages