Skip to content

No build tool alpha

Choose a tag to compare

@Goldspear21 Goldspear21 released this 24 May 16:12

πŸ“¦ Release: Initial Manual Build Version (v1.0)

This is the first release of the Quiz App with Leaderboard Server, created without any build tools. The application was manually compiled and run using javac and java. It includes a fully interactive JavaFX-based quiz client and a threaded leaderboard server.


🧩 Components

This project consists of two major components:

  1. πŸ–₯️ Quiz App (Client)
  2. πŸ—„οΈ Leaderboard Server

πŸ–₯️ Quiz App (Client) Features

  • 🧠 10-question quiz with randomized question selection on each run.
  • ⏱️ Countdown timer with an animated progress bar that changes color (green β†’ orange β†’ red).
  • 🎢 Looping background music during the quiz session.
  • ⏸️ Pause menu accessible via the ESC key or a dedicated Pause button.
  • πŸ–ΌοΈ Animated GIF background (pause.gif) shown during pause state.
  • 🎨 Themed UI including:
    • Custom button styles: Resume, Restart, and Quit
    • Highlighting of βœ… correct and ❌ incorrect answers
    • Stylized fonts and drop shadows
  • πŸ“œ Responsive question layout with dynamic text wrapping and alignment.

πŸ—„οΈ Leaderboard Server Features

  • πŸ“‘ Accepts multiple client connections and processes quiz scores in real-time.
  • πŸ‘₯ Maintains a live leaderboard that ranks players based on score.
  • πŸ”„ Thread-safe architecture using a thread pool to manage client communication.
  • πŸ’Ύ Persistent storage of scores in a file to retain leaderboard data between restarts.
  • πŸ§ͺ Built-in command handling for CONNECT, START_QUIZ, and SUBMIT_SCORE.
  • πŸ–₯️ JavaFX GUI to:
    • Start/stop the server
    • Monitor logs and connected clients
    • Display current leaderboard entries

πŸ“ Project Structure

src/
β”œβ”€β”€ App.java             # Main entry point to launch the quiz client
β”œβ”€β”€ Server.java          # Entry point for the server GUI (if used)
└── ...                  # Additional packages or resources

πŸ› οΈ How to Run (Manual Compilation)

Prerequisites

  • Java 8 or higher
  • JavaFX SDK 23.0.2 (included in javafx-sdk-23.0.2/)

How to run?

  • Head to the App.java file in src/ , then click on run. (This requires Visual Studio Code or a similar IDE with Java set up.)

πŸ“‚ File Locations

  • Leaderboard Data:
    Stored in:

    ..\AssignmentGCIS124\txt\leaderboard.txt
    
  • Audio & GIF Assets:
    Stored under a folder such as audio/, gifs/, or resources/.


⚠️ Known Limitations in v1.0

  • ❌ No build tools (Maven/Gradle)
  • ❌ No JAR packaging
  • ❌ No batch scripts
  • ❌ Manual compilation required
  • ❌ Leaderboard file doesn't support packaging due to being package-dependent if it is to be packaged.

πŸ“„ License

JavaFX is distributed under the GPL v2 with the Classpath Exception.
See the javafx-sdk-23.0.2/legal/ folder for more details.


πŸ’¬ Feedback & Issues

Found a bug or have a suggestion? Open an issue or contribute your improvements!