Welcome to JavaFX Quiz App, a feature-rich desktop quiz application built with JavaFX and SQLite. This application provides an engaging and interactive platform for creating, managing, and playing quizzes with a modern user interface. Designed for educators, students, and trivia enthusiasts, JavaFX Quiz App combines robust functionality with a sleek, customizable experience.
-
Quiz Management:
- Create, edit, and delete quizzes with customizable names and categories.
- Organize quizzes with auto-incrementing quiz numbers for easy tracking.
- Manage questions within each quiz, supporting both multiple-choice and identification question types.
-
Question Creation:
- Add and edit questions with a user-friendly interface.
- Support for multiple-choice questions with up to four answer options.
- Identification questions for open-ended responses.
- Store questions and answers in a persistent SQLite database.
-
Interactive Quiz Gameplay:
- Play quizzes with a dynamic interface featuring progress bars, timers, and animated transitions.
- Configurable settings for the number of questions, time per question, and immediate answer feedback.
- Randomized question order for varied gameplay.
- Score tracking with detailed results at the end of each quiz.
-
Customization and Settings:
- Multilingual support with languages including English, Japanese, Filipino, Korean, Chinese, German, Russian, and Spanish.
- Toggleable animations for a smoother or lighter user experience.
- Adjustable quiz settings such as timer visibility, animation effects, and answer submission modes.
-
User Interface:
- Modern, responsive JavaFX UI with fade transitions between views.
- Particle-based background animations for an engaging visual experience (can be disabled).
- Customizable application icon and localized UI elements.
-
Data Persistence:
- SQLite database for storing quizzes, questions, and answers.
- Robust database operations for adding, updating, and deleting quiz data.
- Automatic schema creation and migration handling.
Ensure you have the following installed:
- Java: Version 17 or higher
- JavaFX: Version 11 or higher
- SQLite: Version 3.36 or higher (included with the application)
- Maven: For dependency management and building the project
- IntelliJ IDEA: Recommended IDE for development and running the application
-
Clone the Repository:
git clone https://github.com/VoxDroid/Java-Quiz-App.git
-
Open in IntelliJ IDEA:
- Launch IntelliJ IDEA and select
Open
from the File menu. - Navigate to the cloned repository folder and select it.
- Launch IntelliJ IDEA and select
-
Set Up JavaFX:
- Configure the JavaFX SDK in IntelliJ:
- Go to
File > Project Structure > Libraries
. - Add the JavaFX SDK by clicking
+
and selecting the JavaFXlib
directory.
- Go to
- Ensure the JavaFX modules are included in the run configuration (e.g.,
--module-path /path/to/javafx-sdk/lib --add-modules javafx.controls,javafx.fxml
).
- Configure the JavaFX SDK in IntelliJ:
-
Add SQLite Dependency:
-
The project uses SQLite for data storage. Ensure the SQLite JDBC driver is included in your Maven
pom.xml
:<dependency> <groupId>org.xerial</groupId> <artifactId>sqlite-jdbc</artifactId> <version>3.36.0.3</version> </dependency>
-
-
Build and Run:
-
Use Maven to build the project:
mvn clean install
-
Run the application:
mvn javafx:run
-
Java-Quiz-App/
โโโ src/
โ โโโ main/
โ โ โโโ java/
โ โ โ โโโ com/vox/drei/
โ โ โ โโโ AddQuestionController.java
โ โ โ โโโ DreiController.java
โ โ โ โโโ DreiMain.java
โ โ โ โโโ ManageQuizzesController.java
โ โ โ โโโ Question.java
โ โ โ โโโ QuestionDatabase.java
โ โ โ โโโ Quiz.java
โ โ โ โโโ QuizGameController.java
โ โ โ โโโ QuizSettingsController.java
โ โ โ โโโ (other files)
โ โ โโโ resources/
โ โ โ โโโ icon.png
โ โ โ โโโ messages.properties
โ โ โ โโโ messages_en.properties
โ โ โ โโโ (other language properties files)
โ โ โ โโโ drei-main.fxml
โ โ โ โโโ QuizGameView.fxml
โ โ โ โโโ (other FXML files)
โโโ pom.xml
โโโ README.md
โโโ CONTRIBUTING.md
โโโ SECURITY.md
โโโ CODE_OF_CONDUCT.md
โโโ PULL_REQUEST_TEMPLATE.md
โโโ SUPPORT.md
โโโ LICENSE
-
Launch the Application:
- Run the application from IntelliJ IDEA or using the Maven command.
- The main menu provides options to start a quiz, manage quizzes, adjust settings, or view the about page.
-
Manage Quizzes:
- Navigate to the "Manage Quizzes" view to add, edit, or delete quizzes.
- Add questions to a quiz by selecting "Manage Questions" for a specific quiz.
-
Play a Quiz:
- Select a quiz from the "Quiz Selection" view.
- Answer questions within the configured time limit (if enabled).
- View your score and review answers at the end of the quiz.
-
Customize Settings:
- Adjust the number of questions, time per question, and other preferences in the "Settings" view.
- Change the application language to suit your preference.
- JavaFX: UI framework for building the graphical interface.
- SQLite: Lightweight database for storing quiz data.
- Maven: Dependency management and build tool.
- IntelliJ IDEA: IDE for development and debugging.
- Java: Core programming language (version 17).
- Unit Testing: Use JUnit to test core functionalities like database operations and question handling.
- Manual Testing: Verify UI components, transitions, and multilingual support through manual interaction.
- Database Testing: Ensure SQLite operations (CRUD) work correctly by adding, editing, and deleting quizzes and questions.
We welcome contributions from the community! Please read our Contributing file for guidelines on how to contribute to this project.
For information on reporting security vulnerabilities or learning about our security practices, please see our Security file.
To ensure a welcoming and inclusive community, please review our Code of Conduct file.
For help with the JavaFX Quiz App, including troubleshooting and feature requests, please refer to our Support file.
This project is licensed under the MIT License. See the LICENSE file for details.
For questions or feedback, please contact:
- GitHub: @VoxDroid
- Email: [email protected]
ยฉ 2025 Izeno. All rights reserved.