Date Created: 2009-05-21 13:13:35 -0500 (Thu, 21 May 2009) Date Created: 2012-01-20 06:59:38 -0600 (Fri, 20 Jan 2012)
Date Created: 2010-06-20 14:05:39 -0500 (Sun, 20 Jun 2010)

Indoor/Outdoor Sports Scoreboard - Overview

  As a basketball player, I want an outdoor scoreboard, so that we can keep track of games.

This scoreboard implementation has the following features:

  • Web user interface for controls
  • Screen buffer display
  • Web API

Application Demonstration

Here is a video demonstration of the application. The demo starts about 19 minutes 55 seconds into the video.


This project uses the following hardware:

  • Raspberry Pi B (or better)

Software Prerequisites

Java 8 (or better) JRE

Use the latest version of the Raspbian operating system. It has the latest version of Java.

GlassFish Server

This project requires a JEE application server, one option is GlassFish.

Follow these instructions on setting up the GlassFish server and come back once the server is up and running on the Raspberry Pi.

Payara Application Container

This project requires a JEE application server, another option is Payara.

Follow these instructions and come back once you are comfortable using the Payara server from the command line.


The application is deployed as a JEE WAR. It is available on the project's build server.

Running the Application

Web Container

Use the administration console, as described in 'GlassFish Server' section linked above, to upload and deploy the Scoreboard Web app.

Command Line

The scoreboard Web application is also started from the command line. Use the Payara executable JAR, mentioned above, to start the application with this command:

java -jar /opt/payara/payara-micro-prerelease-2016-11-24.jar --deploy /opt/onebeartoe/onebeartoe-sports-scoreboard-webapp-0.0.1-SNAPSHOT.war


To start a new game, visit this URL:


To start the screen buffer application, visit this URL:


Here is a screen capture of the Web controls:

The plus and minus buttons increment/decrement the scores. The Start and Stop buttons control the clock.

Scoreboard Web API

URL Listing

URI servlet purpose
/game/current CurrentGameServlet Initializes the scoreboard and game objects and sets them as attributes of the servlet context. It redirects to the current game JSP.
/game/new NewGameServlet If a HTTP GET is used, then the servlet displays the new game form. If an HTTP POST is used, then the servlet initializes a new game based on the form data.
/game/[home|away]/[increment|decrement] GameScoreServlet Based on the URL path, this servlet increments/decremetns the score by one point for the home/away team.
game/time/[start|stop] GameTimeServlet This servlet starts and stops the clock for the current game period.

Known Issues

  • To shutdown the application, a full reboot of the Raspberry is required.

Going Further

  • Update the code to play a buzzer sound at the end of a period.
  • Provide a button on the Web user interface to start the frame buffer application.


Source Code

The source code for this project is available here:

Date Created: 2016-07-30 08:53:55 -0500 (Sat, 30 Jul 2016)

© 2004