Question
1. Project Overview It should be a GUI program that uses principles, best practices and technologies learned in the course. Certain elements are a required
1. Project Overview It should be a GUI program that uses principles, best practices and technologies learned in the course. Certain elements are a required part of your project, for example it must implement a GUI of reasonable complexity, use a dynamic data structure like ArrayList, Has multiple classes with defined class relationships, exception handling, and use file input and/or output (further details below in General Requirements). The rest is up to you. Each student group will choose their own idea for their application and submit a project proposal outlining their idea. For the GUI portion of the project, you will use the JavaFX platform. You can design your GUI graphically with SceneBuilder, or implement it dynamically in code. This choice, along with other detailed plans, must be clearly stated in the project proposal. Above all your project should be interesting and fun, so try to choose an idea you find interesting or potentially useful. Dont make your project too big or ambitious, remember it should take about as much time as two or three assignments. If you feel your project may be too big then you could simplify certain portions or leave parts for future implementation. For example, a GUI button could display a message Not yet implemented. After you are done, you may want to add your project to your SLATE ePortfolio (Sheridan co-curricular record) to show off to others. 2. General Requirements 1. GUI Portion: The project will consist of at least 2 GUI windows or dialogs
. In JavaFX this means at least 2 stages, where each stage has its own separate FXML file and controller class. Error messages or simple confirmation dialogs dont count. 2. Non-GUI Portion: Minimum two class so minimum two back-end (data management) classes, not counting GUI classes or controller classes. 3. File I/O: Either file input, output, or both. For example, a program that manages information about customers of a business could store the customer information in a file and then re-load the file next time your run the program. 4. Data structures: ArrayList (dynamic array) or HashMap. For example a multi-player game could use an ArrayList of Player objects to store information about all the players. Often (but not always) you may use a dynamic data structure like ArrayList to store information you read from a file. Dont use regular Java arrays. 5. Exception Handling: For full marks your project should contain enough exception handling and error recovery so that bad user input (or bad input files etc.) dont crash the program. You should display a user-friendly error message instead. 6. Commenting: The code shall be commented as follows. a. Each Java class shall have a header comment which lists the principal author(s) of the code and briefly describes what the code in the file is for, using JavaDoc commenting style. b. Each method and field shall be commented using JavaDoc style comments. For methods include the purpose of method and a brief description of each parameter. For fields give the purpose of the field and units if applicable (e.g. length in meters, price in dollars). c. Code inside methods shall be commented as needed (e.g. tricky steps) using non-Javadoc style comments. d. FXML files do not need to be commented. 4. Project Proposal 1. A cover page with the project title 2. Project Overview. A few paragraphs describing the purpose of the application, the development environment (VSCode, Java 17, etc.) and the technologies used (JavaFX, SceneBuilder, file I/O, collections, graphics etc.) Your description must make clear how you will be incorporating the required elements: a) File I/O What information will you save to files on disk, and/or what information will you load from files? Detailed file format information is not required. b) Dynamic array or hash map What information will be stored in a dynamic data structure? How will it be managed? 3. User Interface. Provide one drawing for every window (stage/activity/dialog) you envision to be part of your project. You can draw it on paper, draw using Visio, or you can design it in Scene Builder and provide a screenshot. 4. Project Class Structure. Use UML class diagram(s) to present the rough class design you envision for the application. You should include all significant classes and their relationships (arrows). Fields and methods are not required to be listed. Diagrams can be done on paper, or with a UML drawing tool like StarUML or Visio (UML Model Diagram template). It must be clear which classes are GUI classes and which classes are non-GUI (data management) classes. For JavaFX all controller classes should have names ending with Controller.
4 Although each project will be unique, all JavaFX projects will have - FXML files for the GUI layout (one file per window) - Controller classes for the GUI event handlers (one per window) - Data management classes (typically two or more) When designing a larger application like your course project avoid putting data management code in the controller (GUI) classes. 6. Project Interim Code Demo This demonstration of the project will be done to the course professor only and will include at least 2 of the major functional requirements needed for the project as given in the proposal. 7. Project Report The project report structure and format is similar to the proposal. It should include: 1. A cover page with the project title and group member names 2. Final project overview and description, including a description of how dynamic arrays and file I/O were used 3. Actual GUI screen snapshots for every window (stage/activity/dialog) 4. Final UML class diagram(s) including all classes you implemented and their relationships (fields and methods are not required to be listed) 6. Project Presentation The project presentation must be performed jointly by both group members. In the presentation group members should: 1. Describe the purpose of the application. 2. Present a high-level overview of windows (stages/activities/dialogs) and classes used in the application. 3. Demonstrate the application functionality. 4. Briefly describe the technologies used in the application (as per the General Requirements given above). 5. Describe any difficulties you had to overcome when developing your project. 6. Briefly describe how your project is different from your proposal (Note: remember to submit an updated proposal with any significant changes).
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started