This repository contains my seminar work. The goal of this seminar is to support future students in learning advanced concepts of the Java programming language. The relevant concepts are Java Database Control (JDBC) and XML. The students will learn the concepts by developing a Quiz application. The following pictures show the graphical user interface of the application.
The students will get a partially implemented version of this project. All the packages and classes will be given. Specific classes and methods will be either empty or will return a dummy value. The students will have to implement these classes and methods based on the task description. The task description can be found inside the docs folder in the file aufgaben.pdf. This repository contains the complete project, thus the solutions of the exercises.
The project is structured into the following five packages
- data: this package contains the central objects of the application. The class Frage represents a question of the Quiz. The class Antwort an answer and the class Player a player of the quiz.
- db: this package contains classes that manage the connection to the database and execute queries.
- general: this package contains a class with multiple constant values such as paths to files and sizes of the application window.
- gui: this package contains classes that manage the user interaction
- io: this package contains classes that parse the XML file
The data for the quiz is given in an XML format in the resources folder.
This section includes the functionalities that the students need to implement.
- Parse the XML file with the data
- Create the database tables
- Fill the tables with the data from the XML file
- Get distinct (question) categories and difficulty levels
- Get the questions that match to the selected category and difficulty level
- Get the four answers for each question
- Get the correct answer for the current question
- Save the player's performance in the database
- Get the player's data from the database to show some statistics
For task 1, XML is relevant. For tasks 2-10, JDBC is relevant.