Skip to content

kleebaum/quizapp

Repository files navigation

NaWi-DaZ Quiz App

Continuous integration Codacy Badge codecov GitHub contributors

This repository contains the code of a mobile quiz web app that was developed within the NaWi-DaZ 2.0 project. It is written in Java and web programming languages (e.g., Java Server Pages, Java Script) and stores data in an SQLite database. The app runs on a Java servlet container such as Tomcat or Jetty and can be accessed via browser.

The app has been developed in order to teach students the German language with a focus on natural sciences and the scientific terminology. The app distinguishes between three user roles: administrators, students and teachers. Currently, there are three different types of exercises: multiple choice exercises, sentence part exercises, and exercises to label images.

Screenshot of the index page

NaWi-DaZ 2.0 Project

NaWi-DaZ 2.0 was a joint project between the Heidelberg School of Education and the Software Engineering group of the Heidelberg University. The NaWi-DaZ 2.0 project investigated how students can learn the German language with a focus on natural sciences. For this purpose, this mobile quiz web app was developed, which enables students to learn scientific terminology.

Installation

Prerequisites

The following prerequisites are necessary to install the app:

  • Java 8 or higher
  • Java servlet container such as Tomcat or Jetty

Set-up SQLite Database

The app uses SQLite as the database. You need to make sure that the database file is located at WebContent/db/heieducation.sqlite. To recreate the database, run the main method of the class model/init/InitDatabase.java.

Run the App on a Raspberry Pi

An advantage of this app is that it can be used in school classes without requiring access to the internet. The app can be installed on a Raspberry Pi. This Raspberry Pi needs to be connected to a router that sets up a wireless local area network (WLAN). Then, students and the teacher can login to the local WLAN via their smartphones or tablets (or laptops) and they can access the app in their browser.

This has the following benefits:

  • The app can be used everywhere (where this infrastructure is set up). That is, it can also be run in schools without access to the internet.
  • The data remains confidential.

Unit and Selenium Tests

The quality of the app is ensured using JUnit tests and static code analysis.

Usage Description

Administrator

The administrator is allowed to administer the app. First, the administrator needs to login.

Screenshot of the login on the admin page

Then, s/he can manage (create, update and delete) instances of three different types of exercises (multiple choice exercises, sentence part exercises and exercises to label images). In addition, the administrator can manage information material that is related to exercises.

Screenshot of creating information material on the admin page Screenshot of creating an exercise on the admin page

The administrator has also access to a settings page that e.g. enables him/her to backup or to reset the database.

Student

Students need to be registered, in order to login to the students' page. They have the possibility to learn from information material and solve related exercises. After solving an exercise, students instantly receive feedback.

Screenshot of solving an exercise on the student page

Teacher

Teachers can get an overview about the students' exercise results on the teacher page. They can either see every result of a certain exercise or all results by a certain student. In addition, teachers have the possibility to access a statistics overview that visualizes the number of correctly and incorrectly solved exercises using barplots.