O sistema foi desenvolvido com:

- JavaSE 6
- JavaEE 5
- Netbeans 6.5
- Tomcat 6.0.14
- HSQL
- JPA com Hibernate 3

O projeto trata-se de um sistema de questionários online chamado SIMUQUIZ.

Os usuários criam exames, que contêm questões que são criadas, alteradas e revisadas pelos mesmos. Posteriormente realizam provas destes exames, e ao final da prova, veem a pontuação obtida e o gabarito. Também é possível aos usuários enviarem mensagens privadas uns aos outros.

Camadas:

- Entidades JPA: - Contém o modelo objeto-relacional das entidades do JPA correspondentes ao banco de dados, anotadas com anotações específicas do JPA. Localiza-se no pacote "br.com.simuquiz.entidades".
- Classes de Negócio - Conjunto de classes imutáveis que correspondem a processos de negócio, como por exemplo cadastros de usuário, de exame e de questões, visualização de usuário, visualização de exames, envio de mensagens privadas, etc. As classes de negócio mantêm atributos relativos aos dados informados como entrada e aos dados produzidos como saída. São serializáveis em formato JSON. Localiza-se no pacote "br.com.simuquiz.funcionalidades".
- Servlets - Classes que agem como "cola" entre o container e as classes de negócio. Eles apenas leem os parâmetros do request, os passam para as classes de negócio e serializam essas classes em formato JSON no response. Estão no pacote "br.com.simuquiz.servlets". Há dois servlets especias - XhtmlServlet e ScriptServlet - que são explanados mais abaixo.
- Templates - São JSPs que estão dentro da pasta /WEB-INF/telas/, elas contém modelos de telas que são baixados por meio do servlet XhtmlServlet, e são posteriormente processadas em javascript.
- Javascripts das telas - São JSPs que estão dentro da pasta WEB-INF/scripts/, contém trechos de javascripts baixados on-demand pelas telas. São servidas pelo servlets ScriptServlet. Elas manipulam o conteúdo do XHTML em execução via DOM, acessam os servlets via XMLHttpRequest e processam a resposta em JSON.

Para executar, basta fazer o deploy no Tomcat.