jCAT  1.0.0
Electronic educational testing platform
 All Classes Functions
jCAT Documentation

jCAT (formerly Brodus) is a web application whose purpose is to apply an electronic version of Provinha Brasil, a nation-wide educational evaluation for Brazilian students in the second year of basic school. In its current form, items are created by an specialist and stored in an item bank. This specialist then selects one or more items and creates a test. After that, students can take this test while proctored by a teacher or any other test administrator.

One of the prerequisites of Provinha Brasil is that item text and alternatives must be read to students by the test administrator. In order to do that electronically, jCAT allows an audio file to be uploaded by the item creator and played by the student during the test. Also, just like the original test, in the electronic version items and their alternatives may or may not be accompanied by images.

As an additional step, video support was added for the electronic version.


The application can be separated in two phases:

Phase 1 (2012)

The application was originally created in 2012 using Java and the J2EE layered architecture. The application connects to a database (originally MySQL) and performs object-relational mapping using Hibernate; business rules are created through Enterprise Java Beans (EJB); and finally, the view layer is done with PrimeFaces, a free and open source implementation of Java Server Faces (JSF). Everything is built using Ant.

The generated web pages are hosted in a web server (originally Tomcat 7) and the EJBs and Data Access Objects (DAO) are hosted in an application server (originally JBoss 5.0.1).

Phase 2 (2015-16)

As of 2015, there has been an increased effort in transforming jCAT into a computerized adaptive test, hence the name change. In order to do that, a minor hoverhaul was done in the application architecture, to accomodate the newest trends in web application development and the new versions of old frameworks.

More info

You can find a copy of my term paper (in portuguese) detailing the architecture I used in 2012 here.


This work was originally my term project for graduation. I did alongside my friend Bruno de Jesus Destro, having prof. Fabio Cabrini as a supervisor and profs. Marcos Roberto Macedo and Ocimar Munhoz Alavarse as examining board members.

Instructions to build and run

As of 2015, the project has been built on top of a quickstart example from JBoss. The sections below are the instructions from the quickstart.

System requirements

To build this project, you'll need:

The application this project produces is designed to be run on JBoss WildFly.

Start JBoss WildFly with the Web Profile

  1. Open a command line and navigate to the root of the JBoss server directory.
  2. The following shows the command line to start the server with the web profile:
     For Linux:   JBOSS_HOME/bin/standalone.sh
     For Windows: JBOSS_HOME\bin\standalone.bat

Build and Deploy the Quickstart

NOTE: The following build command assumes you have configured your Maven user settings. If you have not, you must include Maven setting arguments on the command line. See Build and Deploy the Quickstarts for complete instructions and additional options.

  1. Make sure you have started the JBoss Server as described above.
  2. Open a command line and navigate to the root directory of this quickstart.
  3. Type this command to build and deploy the archive:
     mvn clean package wildfly:deploy
  4. This will deploy target/jCAT.war to the running instance of the server.

Access the application

The application will be running at the following URL: http://localhost:8080/jCAT/.

Undeploy the Archive

  1. Make sure you have started the JBoss Server as described above.
  2. Open a command line and navigate to the root directory of this application.
  3. When you are finished testing, type this command to undeploy the archive:
     mvn wildfly:undeploy

Run the Application in JBoss Developer Studio or Eclipse

You can also start the server and deploy the quickstarts from Eclipse using JBoss tools. For more information, see https://github.com/jboss-developer/jboss-developer-shared-resources/blob/master/guides/USE_JBDS.md "Use JBoss Developer Studio or Eclipse to Run the Quickstarts"

Debug the Application

If you want to debug the source code or look at the Javadocs of any library in the project, run either of the following commands to pull them into your local repository. The IDE should then detect them.

mvn dependency:sources
mvn dependency:resolve -Dclassifier=javadoc