GithubHelp home page GithubHelp logo

marvin-wtt / buzzmaster Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 4.13 MB

A buzzer application for quiz shows with buzzer devices

License: MIT License

JavaScript 1.80% HTML 0.51% Vue 43.77% TypeScript 53.58% SCSS 0.34%
buzz-controller buzz-ps2 buzzer playstation quiz-app quiz-game buzz-ps3

buzzmaster's Introduction

BuzzMaster

BuzzMaster is a user-friendly application for hosting quiz shows with physical input devices, such as PlayStation buzzers.

Key Features

Buzzer Questions

Participants compete to be the first to press the red buzzer and answer the question.

Quiz Questions

Participants select one of four options within a given time frame.

Stopwatch Mode

Tracks the time taken for each participant to press the red button.

Scoreboard

Keeps track of points gained or lost throughout the quiz show. Points can be updated either directly after a question / game or manually in the scoreboard. When choosing to update the points manually, either new points can be set or the current points can be updated using simple algebra.

Energy Saving Notification

Shows a notification when a controller is about to go into energy saving mode. The feature is available for a controller after the first button press.

Installation

Note

Please note that there might be a security warning when downloading and executing the installer due to the lack of code signing. This is because obtaining a certificate for code signing is prohibitively expensive.

Download the installer from the latest release and follow the installation steps.

Once the application is started, it will check for new versions. Once a new version is available, it will be installed on the next launch automatically.

Troubleshooting

Playstation 2 Buzz devices are recognised as a malfunctioning USB-hub instead of a HID-Device on windows. Follow these steps to update the driver manually:

  1. Open the device-manager
  2. Right-click the USB-Hub and select update-driver
  3. Select Search for driver software on the computer
  4. Select Select from a list of device drivers on the computer 5.From the list, select the entry USB Input Device or USB HID Device

Development

git clode https://github.com/marvin-wtt/BuzzMaster
cd buzzmaster
npm install

Run in development mode:

npm run dev

Build executable for production:

npm run build

Contributing

Contributions are welcome! Feel free to submit pull requests with new features, bug fixes, or improvements.

License

Please refer to the LICENCE file for licensing information.

Credits

Icons designed by drawingfreddie

buzzmaster's People

Contributors

dependabot[bot] avatar marvin-wtt avatar mcmoerlin avatar

Stargazers

 avatar  avatar

Watchers

 avatar

buzzmaster's Issues

Add sections for scoreboard

Additionally to the game scoreboard, add another scoreboard that keeps track of the score for a section of the game.
The game scoreboard skill keeps track of the total points. Once a new section is created, all points for the new section are zero.

Maybe additionally keep track of the section history for representation.

Buzzern Namen zuweisen

Sehr geehrter Herr BuzzMeister,
bitte ermöglichen Sie uns, dass wir entweder Controllern zugewiesene Namen persistieren können oder dass einfach Eine Liste aus NamenStrings eingelesen werden kann, die dann automatisch Controllern zugeordnet werden.

Titel: Implementierung einer Client-Server Architektur für verbesserte Systemfunktionalität


Beschreibung:

In Anbetracht unserer stetig wachsenden Anforderungen und dem Bedürfnis nach einer effizienten Datenverarbeitung und -verteilung innerhalb unserer Plattform, möchten wir höflich die Implementierung einer Client-Server Architektur vorschlagen. Diese Architektur wird dazu beitragen, die Performance, Skalierbarkeit und Sicherheit unseres Systems zu verbessern, indem sie eine klare Trennung von Client- und Serververantwortlichkeiten ermöglicht.

Problembeschreibung:

Momentan stoßen wir auf Herausforderungen bei der Bewältigung des steigenden Datenverkehrs und der zunehmenden Anzahl von Nutzern, was zu Engpässen und einer eingeschränkten Reaktionsfähigkeit führt. Unser derzeitiges System, das auf einer monolithischen Architektur basiert, zeigt Schwierigkeiten bei der Skalierung und der effizienten Ressourcennutzung. Dies führt zu längeren Ladezeiten, intermittierenden Ausfällen und einer insgesamt suboptimalen Benutzererfahrung.

Lösungsvorschlag:

Die Einführung einer Client-Server Architektur bietet eine elegante Lösung für unsere aktuellen Probleme. Durch die klare Trennung von Client- und Serverkomponenten können wir die Datenverarbeitung und -verteilung optimieren. Indem wir spezialisierte Servereinheiten einführen, können wir die Last gleichmäßiger verteilen und Engpässe reduzieren. Gleichzeitig ermöglicht die Client-Server Architektur eine verbesserte Skalierbarkeit, da wir einzelne Serverressourcen bedarfsgerecht anpassen können, um mit dem wachsenden Datenverkehr umzugehen.

Vorteile der vorgeschlagenen Architektur:

  1. Verbesserte Performance: Durch die Entlastung der Clientanwendungen von komplexen Verarbeitungsaufgaben können wir eine schnellere Reaktionszeit und eine verbesserte Benutzererfahrung bieten.

  2. Erhöhte Skalierbarkeit: Die Möglichkeit, Serverressourcen dynamisch anzupassen, ermöglicht es uns, mit wachsenden Anforderungen Schritt zu halten und eine kontinuierliche Verfügbarkeit sicherzustellen.

  3. Bessere Sicherheit: Die klare Trennung von Client- und Serverkomponenten erleichtert die Implementierung von Sicherheitsmaßnahmen wie Zugriffskontrollen und Verschlüsselungstechniken, um die Integrität und Vertraulichkeit unserer Daten zu gewährleisten.

  4. Einfachere Wartung und Skalierung: Durch die Modularisierung unserer Architektur können wir einzelne Komponenten unabhängig voneinander aktualisieren und skalieren, was die Wartung und Weiterentwicklung unseres Systems vereinfacht.

Umsetzungsplan:

  1. Anforderungsanalyse: Eine detaillierte Analyse der Systemanforderungen, um die optimale Aufteilung von Client- und Serverkomponenten zu bestimmen.

  2. Design und Architektur: Entwicklung eines klaren Designs für die Client-Server Architektur, einschließlich der Definition von Schnittstellen und Kommunikationsprotokollen.

  3. Implementierung: Schrittweise Implementierung der Client- und Serverkomponenten gemäß dem festgelegten Design und unter Berücksichtigung der Anforderungen an Skalierbarkeit, Leistung und Sicherheit.

  4. Test und Validierung: Umfassende Tests, um die Funktionalität, Performance und Sicherheit der neuen Architektur zu validieren, einschließlich Lasttests und Sicherheitsüberprüfungen.

  5. Deployment: Schrittweise Bereitstellung der neuen Architektur in einer kontrollierten Umgebung, gefolgt von einer umfassenden Überwachung und Fehlerbehebung während des Rollouts.

Zusammenfassung:

Die Einführung einer Client-Server Architektur bietet eine vielversprechende Lösung für unsere aktuellen Herausforderungen im Zusammenhang mit der Datenverarbeitung und -verteilung. Durch die klare Trennung von Client- und Serverkomponenten können wir die Leistung, Skalierbarkeit und Sicherheit unseres Systems verbessern, was letztendlich zu einer optimierten Benutzererfahrung führt. Wir bitten daher um Unterstützung bei der Umsetzung dieses wichtigen Projekts, um die Zukunftsfähigkeit unserer Plattform sicherzustellen.


Hinweis: Bitte zögern Sie nicht, bei Fragen oder Anregungen Kontakt aufzunehmen. Wir schätzen Ihr Feedback und Ihre Mitarbeit.

add a stop run button to stopwatch

add a stop run button to stopwatch, that stops the timer and locks the current order of controllers. all controllers that were not finished/pressed to that point, get set to infinity.

Hinzufügen eines neuen Fensters zur Anzeige des Scoreboards oder Spielmodus in BuzzMaster


Beschreibung:

Um die Benutzererfahrung in BuzzMaster weiter zu verbessern und den Spielern eine zusätzliche Informationsquelle zur Verfügung zu stellen, schlagen wir vor, ein neues Fenster hinzuzufügen, das ausschließlich zur Anzeige des Scoreboards oder des aktuellen Spielmodus dient. Dieses Fenster soll keine Benutzeroberfläche (UI) enthalten, sondern nur die relevanten Informationen in einem übersichtlichen Format anzeigen.

Funktionalität des neuen Fensters:

Das neue Fenster soll folgende Funktionen unterstützen:

  1. Anzeige des Scoreboards: Das Fenster soll in Echtzeit das aktuelle Scoreboard anzeigen, einschließlich der Punktzahlen der einzelnen Spieler und Teams.

  2. Anzeige des Spielmodus: Falls gewünscht, kann das Fenster auch den aktuellen Spielmodus anzeigen, um den Spielern eine klare Übersicht über die Spielregeln und Ziele zu bieten.

Implementierungsdetails:

Das neue Fenster soll ohne Benutzeroberfläche auskommen und stattdessen die Scoreboard- oder Spielmodusinformationen direkt anzeigen. Dies kann beispielsweise durch die Verwendung von Textausgaben oder einfachen Grafiken erfolgen, um eine klare und leicht verständliche Darstellung zu gewährleisten.

Vorteile des neuen Fensters:

  • Verbesserte Übersichtlichkeit: Spieler können jederzeit auf die relevanten Spielinformationen zugreifen, ohne die Hauptbenutzeroberfläche zu verlassen.
  • Effiziente Nutzung des Bildschirmplatzes: Durch die Integration eines dedizierten Fensters für das Scoreboard oder den Spielmodus kann der verfügbare Bildschirmplatz optimal genutzt werden.
  • Flexibilität und Erweiterbarkeit: Die Implementierung eines separaten Fensters ermöglicht es uns, zukünftige Erweiterungen und Verbesserungen leichter zu integrieren.

Umsetzungsplan:

  1. Anforderungsanalyse: Bestimmung der genauen Anforderungen an das neue Fenster sowie Festlegung der gewünschten Funktionalitäten.

  2. Implementierung: Entwicklung des neuen Fensters gemäß den definierten Anforderungen, unter Berücksichtigung der bestehenden Architektur und Codebasis von BuzzMaster.

  3. Test und Validierung: Umfassende Tests, um die korrekte Funktionalität und Zuverlässigkeit des neuen Fensters sicherzustellen, einschließlich Integrationstests mit anderen Komponenten von BuzzMaster.

  4. Deployment: Bereitstellung des neuen Fensters in einer kontrollierten Umgebung, gefolgt von einer Überwachung und Fehlerbehebung während des Rollouts.

Zusammenfassung:

Die Implementierung eines neuen Fensters zur Anzeige des Scoreboards oder Spielmodus wird die Benutzererfahrung in BuzzMaster verbessern und den Spielern eine zusätzliche Informationsquelle bieten. Wir bitten daher um Unterstützung bei der Umsetzung dieses Features, um die Attraktivität und Funktionalität unserer Plattform weiter zu steigern.


Hinweis: Bei Fragen oder Anregungen stehe ich gerne zur Verfügung. Vielen Dank für Ihre Mitarbeit!

SuddenDeath

Die Möglichkeit zwei Fragen hintereinander zu stellen. Möglichkeit, dass nur "Gewinner" der erste Frage auf die zweite Antworten können.

lock controller on start of question

when a question is started (Buzzer, Quiz, Stopwatch) lock the current number of dongels/controller, so that new connected dongles cant play in a currently running question. Reset the list for the next Question.

Can new Buzzers play a Re-Open in Buzzer question?
How should disconnected dongles be treated?

add notification for update

add a notification when a update is available - perhaps with the option to restart the program immediately

Feat: Secondary window

To communicate with a second window, the communication must happen via the main process. Because the main process is stateless, it needs to forward the main window state to the cast window.

Events

  • Locale change
  • Scoreboard
  • Quiz
    • Countdown
    • Correct answer + score
  • Buzzer
    • Ready to press buzzer
    • On buzzer: Countdown + buzzer name
    • Correct answer + score
  • Stopwatch
    • Pressed controllers + time
    • Scores

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.