Page 1 of 1

PROG 24178 Project Requirements 1. Project Overview Our PROG 24178 project is a group project in which either two studen

Posted: Sun Jul 03, 2022 11:22 am
by answerhappygod
PROG 24178 Project Requirements 1. Project Overview Our PROG24178 project is a group project in which either two students orthree students collaborate equally to create an object-orientedprogram of medium complexity. It should be a GUI program that usesprinciples, best practices and technologies learned in the course.Certain elements are a required part of your project, for exampleit must implement a GUI of reasonable complexity, use a dynamicdata structure like ArrayList, and use file input and/or output(further details below in “General Requirements”). The rest is upto you. Each student group will choose their own idea for theirapplication and submit a project proposal outlining their idea. Forthe GUI portion of the project, you will use the JavaFX platform.You can design your GUI graphically with Scene Builder or implementit dynamically in code. This choice, along with other detailedplans, must be clearly stated in the project proposal. Above allyour project should be interesting and fun, so try to choose anidea you find interesting or potentially useful. Don’t make yourproject too big or ambitious, remember it should take about as muchtime as two or three assignments. If you feel your project may betoo big then you could simplify certain portions or leave parts forfuture implementation. For example, a GUI button could display amessage “Not yet implemented”. After you are done, you may want toadd your project to your SLATE ePortfolio (Sheridan co-curricularrecord) to show off to others. 2. General Requirements 1. GUIPortion: The project will consist of at least 2 GUI windows ordialogs (minimum one per team member). In JavaFX this means atleast 2 stages, 1 where each stage has its own separate FXML fileand controller class. Error messages or simple confirmation dialogsdon’t count. 2. Non-GUI Portion: Minimum one class per team member– so minimum two back-end (data management) classes, not countingGUI classes or controller classes. 3. File I/O: Either file input,output, or both. For example, a program that manages informationabout customers of a business could store the customer informationin a file and then re-load the file next time your run the program.4. Data structures: ArrayList (dynamic array) For example amulti-player game could use an ArrayList of Player objects to storeinformation about all the players. Often (but not always) you mayuse a dynamic data structure like ArrayList to store informationyou read from a file. Don’t use regular Java arrays. 5. ExceptionHandling: For full marks your project should contain enoughexception handling and error recovery so that bad user input (orbad input files etc.) don’t crash the program. You should display auser-friendly error message instead. 6. Commenting: The code shallbe commented as follows. a. Each Java class shall have a headercomment which lists the principal author(s) of the code and brieflydescribes what the code in the file is for b. Each method and fieldshall be commented. For methods include the purpose of method and abrief description of each parameter. For fields give the purpose ofthe field and units if applicable (e.g. length in meters, price indollars). c. Code inside methods shall be commented as needed (e.g.tricky steps) using non-Javadoc style comments. d. FXML files donot need to be commented. 2 7. Coding standards and quality: Allcode shall follow our coding standards. Variable names should bedescriptive. Classes should be well designed and well structured,with use of object-oriented techniques such as encapsulation,inheritance, abstract classes, and interfaces where appropriate.Programs should not use repetitive code and should use fieldvariables only where necessary. Programs should not definevariables or methods that are never used; logic should be writtenconcisely and not cluttered with unnecessary code. 3. ProjectDeliverables 3.1 Project Proposal Prepare and submit a proposaldocument for the project with the following structure. The documentshould be created using Microsoft Word (hand in one .docx fileusing SLATE, no additional files), or on paper A cover page withthe project title and all group member names. 1. Project Overview.A few paragraphs describing the purpose of the application, thedevelopment environment (Visual studio code, JDK17, etc.) and thetechnologies used (JavaFX, SceneBuilder, file I/O, collections,graphics etc.) Your description must make clear how you will beincorporating the required elements: a) File I/O – What informationwill you save to files on disk, and/or what information will youload from files? Detailed file format information is not required.b) Dynamic array – What information will be stored in a dynamicdata structure? How will it be managed? 2. User Interface. Provideone drawing for every window (stage/activity/dialog) you envisionto be part of your project. You can draw it on paper, draw usingVisio, or you can design it in Scene Builder and provide ascreenshot. 3. Project Class Structure. Use UML class diagram(s) topresent 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 likeStarUML or Visio (UML Model Diagram template). It must be clearwhich classes 3 are GUI classes and which classes are non-GUI (datamanagement) classes. For JavaFX all controller classes should havenames ending with “Controller”. Although each project will beunique, all JavaFX projects will have - FXML files for the GUIlayout (one file per window) - Controller classes for the GUI eventhandlers (one per window) - Data management classes (typically twoor more) When designing a larger application like your courseproject avoid putting data management code in the controller (GUI)classes. 4. Division of responsibilities. To the extent possible,list the planned division of responsibilities, e.g. who will workon which classes, who will design/implement the GUI, etc. Workshould be divided between group members as evenly as possible – onegroup member should not do most of the work! The proposal is notfinal. If it needs to be modified to be accepted, I will let youknow. During development certain functionality may be changed,modified, added or removed. Your original design may change – thisis a part of a normal development process. The proposal must beupdated and resubmitted if there are any major changes. Theprofessionalism of your submission, and clarity of writtencommunication is important. If your proposal is incomplete ormissing any major element by the project due date you will receivethe penalty. 3.2 Project Report The project report structure andformat is similar to the proposal. It should include: 1. A coverpage with the project title and group member names 2. Final projectoverview and description, including a description of how dynamicarrays and file I/O were used 3. Actual GUI screen snapshots forevery 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) 4 5. A separateconclusion section for each group member describing importantlessons you learned, difficulties you encountered, things you woulddo differently in the future etc. The project report sectionsshould be written by the same group member who did the workdescribed. The professionalism of your submission, and clarity ofwritten communication is extremely important. 3.3 ProjectPresentation The project presentation must be performed jointly bythe group members. In the presentation group members should: 1.Describe the purpose of the application. 2. Present a high-leveloverview of windows (stages/activities/dialogs) and classes used inthe application. 3. Demonstrate the application functionality. Eachstudent in the group should demo the functionality he/she workedon. 4. Briefly describe the technologies used in the application(as per the General Requirements given above). 5. Describe anydifficulties 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 significantchanges). Don’t worry, the presentation is a fun chance to show offyour work! 3.4 Project Submission Submit your project using SLATEDropbox before due date ZIP the entire project folder. Do not useother archive formats like RAR.