Skip to content

🚧 Work in progress... β–ͺ Sudoku game β–ͺ JavaFX MVVM app with Spring Boot

License

Notifications You must be signed in to change notification settings

Lob2018/SudokuFX

Repository files navigation

🎲 SudokuFX

Dive into the world of Sudoku with a game that offers:

  • 🧩 Play challenging 9x9 puzzles: Enjoy grids ranging from beginner to expert levels.
  • πŸ€–οΈ Solve any 9x9 Sudoku grid: Let the game solve your puzzles or input custom ones.
  • ✨ Create profiles: Save progress and manage personalized profiles for each player.
  • πŸ’Ύ Save anytime: Effortlessly continue your puzzle-solving journey.

Challenge your mind and enjoy hours of logical fun with SudokuFX! πŸš€

License
OpenSSF Scorecard Known Vulnerabilities CodeQL Analysis
Dependabot Updates Qodana
Quality Gate Status Bugs Code Smells Coverage Duplicated Lines (%)
JaCoCo line covered ratio (pom.xml) Open Issues Open Pull Requests GitHub release

SudokuFX in action

Contents

Installation

Windows Linux MacOS_Arm64,_x86__64

  • Windows

    • Application with Java Runtime Environment (JRE) included
      • Download and install the latest Windows version of the MSI file, available in Assets.
      • The MSI file does not have a code signing certificate, Microsoft Defender SmartScreen can inform you of this during installation; to continue the installation click on additional information, then Run anyway.
    • Application without Java Runtime Environment (JRE) included
  • Linux (Debian-based distributions)

    • Application with Java Runtime Environment (JRE) included
      • Download and install the latest Linux version of the DEB file, available in Assets.
      • Run sudo apt install ./sudokufx-jvm_v.v.v_amd64.deb
    • Application without Java Runtime Environment (JRE) included
  • MacOS

    • Application with Java Runtime Environment (JRE) included
    • Application without Java Runtime Environment (JRE) included

Verifying downloaded assets

To ensure the integrity of downloaded assets, import the GPG public key with gpg --import sudokufx-public-key.asc, then verify the files, e.g., the MSI file, using gpg --verify SudokuFX_JVM-v.v.v.msi.asc SudokuFX_JVM-v.v.v.msi. For more information, refer to the GnuPG Manual.

Use

Examples

Update

Uninstallation

  • Windows

    • Application with Java Runtime Environment (JRE) included (from MSI file)
      • Uninstall from the Control Panel (for programs)
        1. In the search box on the taskbar, type Control Panel and select it from the results.
        2. Select Programs > Programs and Features.
        3. Press and hold (or right-click) on the program you want to remove and select Uninstall or * Uninstall/Change*. Then follow the directions on the screen.
    • Application without Java Runtime Environment (JRE) included (ZIP file with the .bat file and the JAR)
      • Delete your unzipped folder from SudokuFX-v.v.v_windows.zip
  • Linux

    • Application with Java Runtime Environment (JRE) included (from .deb file)
      • Run sudo apt purge sudokufx-jvm
    • Application without Java Runtime Environment (JRE) included (TAR file with the .sh file and the JAR)
      • Delete your untarred folder from SudokuFX-v.v.v_linux.tar.gz
  • MacOS

    • Application with Java Runtime Environment (JRE) included (from .dmg file)
      • Drag the application to the Trash
    • Application without Java Runtime Environment (JRE) included (ZIP file with the .sh file and the JAR)
      • Delete your unzipped folder from SudokuFX-v.v.v_macos.zip

Important

To completely remove your application data and logs, delete the following folder (this action is irreversible):

  • Windows:

    C:/Users/<USERNAME>1/AppData/Local/Soft64.fr/SudokuFX

  • Linux:

    /home/<USERNAME>1/.local/share/Soft64.fr/SudokuFX

  • MacOS:

    /Users/<USERNAME>1/Library/Application Support/Soft64.fr/SudokuFX

Project

Roadmap

Mockup

Important

Required Application Properties to Run

For the application to work properly, the following application properties must be set at the JVM level:

  • app.name:This property specifies the name of the application.
  • app.version:This property specifies the version of the application.
    • This SemVer-like format is only numeric MAJOR.MINOR.PATCH (e.g., 1.0.0, 2.1.3).

Build with

  • Java LTS (e.g. 21)
  • JavaFX LTS (e.g. 21)
  • WiX Toolset v3.11
  • Dependencies:
    • Development
      • javafx-controls
      • javafx-fxml
    • DTOs
      • MapStruct
    • SGBDR & SPRING BOOT
      • HSQLDB
      • Spring boot
        • Starter
        • Gluon Ignite with Spring
        • Starter data JPA
        • Starter validation
      • flyway (database migration)
      • passay (generate and validate secrets)
    • Logs
      • logback from Spring Boot
    • Build dependencies:
      • maven-compiler-plugin
        • annotationProcessorPaths:
          • MapStruct processor (for code generation)
          • Lombok (for generating boilerplate code)
          • Lombok MapStruct Binding (to integrate Lombok with MapStruct)
      • maven-enforcer-plugin (to define the minimum Maven version)
      • javafx-maven-plugin
      • spring-boot-maven-plugin (create the uber JAR)
      • exec-maven-plugin (for scripts generating the packages)
      • jmh (for temporary performance evaluation)
    • Test dependencies:
      • spring boot starter test (JUnit, Mockito, Hamcrest)
      • surefire
      • jacoco
      • testfx-junit5 (ex.:FxRobot to execute actions within the UI, or custom Hamcrest matchers org.testfx.matcher.*.)

How to develop on Windows with IntelliJ IDEA

  • Download and install the LTS version of the Adoptium Temurin JDK Downloads
  • Download and install WiX Toolset v3.11 (in order to package the application)
    • Activate .NET framework 3.5.1 (Control Panel > Programs > Programs and Features > Turn Windows features on or off)
    • Launch wix311.exe
  • Configured the necessary environment variables
    • JDK
      • name:JAVA_HOME
      • value LTS (e.g. 21):C:\Program Files\Eclipse Adoptium\jdk-21.0.3.9-hotspot
    • WiX
      • name:WIX
      • value:C:\Program Files (x86)\WiX Toolset v3.11\
  • IntelliJ IDEA
    • Clone the repository
    • Select the project's JDK
      • File > Project Structure > SDK > Add SDK from disk (select the JDK)
    • Run Maven configurations (in the top right corner)
      • SudoMain.java is the main class
      • Maven run configurations are saved as project files in .idea/runConfigurations
        • Temporary performance evaluation with Java Microbenchmark Harness (JMH):
          1. Comment out <excludeGroupIds>org.openjdk.jmh</excludeGroupIds>
            and <exclude>fr/softsf/sudokufx/benchmark/**/*.java</exclude> in the pom.xml
          2. Run mvn clean and execute the [Jmh init.] configuration
          3. Manage your benchmark tests in the fr.softsf.sudokufx.benchmark package
          4. Once benchmarking is complete, uncomment <excludeGroupIds>org.openjdk.jmh</excludeGroupIds>
            and <exclude>fr/softsf/sudokufx/benchmark/**/*.java</exclude> in the pom.xml

Contributors

Lob2018

Feedback

  • File an issue
    • If you want you can attach the application logs you find:
      • Windows
        • Inside C:/Users/<USERNAME>1/AppData/Local/Soft64.fr/SudokuFX/logs-sudokufx
      • Linux
        • Inside /home/<USERNAME>1/.local/share/Soft64.fr/SudokuFX/logs-sudokufx
      • MacOS
        • Inside /Users/<USERNAME>1/Library/Application Support/Soft64.fr/SudokuFX/logs-sudokufx

Footnotes

  1. Replace <USERNAME> with your currently logged-in username. ↩ ↩2 ↩3 ↩4 ↩5 ↩6

About

🚧 Work in progress... β–ͺ Sudoku game β–ͺ JavaFX MVVM app with Spring Boot

Resources

License

Security policy

Stars

Watchers

Forks