Platform Selection

Our Platform Selection, and Why

The team has decided, in agreement with the client, to use the JavaFX framework as the UI front-end with a Github repository for the database back-end. A JavaFX app will be easy to distribute as an executable jar among the UTAs, and will run on any operating system. It will also be easy to integrate the app with the existing codebase, written entirely in Java.

The client has specifically requested a desktop application as opposed to a web-based interface. The client has also specifically requested the application be integrated with the current Github repository for data retrieval and storage. This will allow the workflow to be as simple as possible, as well as enabling the client to easily modify the code in the future.

Our team has familiarity with both Java and Github. Choosing these two technologies also allows us to leverage an existing codebase for the scheduling portion of the requirements. In the end, these technologies will not only easily integrate with the existing framework, but are also familiar to the developers, and fully capable of exhibiting every functionality we will need for the software our client wants developed. Our client also agrees with us that JavaFX and Github will be the best platforms to use for this project.


Pros and Cons of UI Front-end Options

  • JavaFX App
    • Pros
      • Requested by client
      • Supported on Windows, Mac, and Linux
      • Takes advantage of current Java codebase
    • Cons
      • Unfamiliar technology to some group members


  • Java Swing App
    • Pros
      • Support on Windows, Mac, and Linux
      • Takes advantage of current Java codebase
    • Cons
      • Unfamiliar technology
      • Outdated
      • Limited support


  • WinForms App
    • Pros
      • Support on Windows and Linux
    • Cons
      • No support for Mac OS
      • Unable to take advantage of existing Java codebase
      • Unfamiliar technology


  • Carolina CloudApps
    • Pros
      • Support on all systems with web
      • Lots of on-campus resources
    • Cons
      • Unable to take advantage of existing codebase
      • Client does not require web based access


Pros and Cons of Back-end Database Options

  • Github
    • Pros
      • Client requested platform
      • Takes advantage of current codebase
      • Access to data from any system with internet connection
      • Eliminates need to manually maintain backend servers and storage
    • Cons
      • Comma Separated Values (CSV) files that must be parsed for reading and riding
      • Relies on 3rd party website uptime and stability


  • SQL Database
    • Pros
      • Fast data access through SQL queries
    • Cons
      • Unable to take advantage of current codebase