Developing the goLogoLo Application
Final Project - Implementation Stage III
We are now rounding third and headed for home. We're almost there. We setup the user interface in HW 3, added some key initial Use Cases in HW 4, and now we'll finish off all remaining goLogoLo details such that we have a completed application. Note that the requirements for this application were described in the spec. Note that all Use Cases required for previous benchmarks must continue to work. So, for example, dragging and moving components must be extended to all components, not just the ones you did in HW 4. And Undo/Redo must work for all edits.
Many times in software projects Use Cases are divided into a list of required features and a wish list of value adding features, meaning things to be added if time permits. Note that below our remaining Use Cases have been divided as such except all students are required to do 2/4 items from our wish list. Note that each item might actually be multiple use cases. You may choose which wish list items to do and not do, note that they are worth equivalent points. This means you should carefully look at the list and figure out which features you will not be providing. Please, when you make your submission, provide a note via your Blackboard submission that specifies which value adding Use Cases you have completed, and which you have omitted.
REQUIRED FEATURES:
- Integrated File Management (Use Cases 2.2 & 2.3) - now all file saving and loading must work, both from the Welcome dialog and the main UI. This means the user should be able to load a fully constructed editing session. So, you'll need to save all details needed to reconstruct the logo.
- Export Logos (Use Case 2.4) - Note that we are going to simplify this Use Case from the original SRS. Instead, this function should simply export your logo to a single PNG file named similarly to the file you are working on in precisely the image size you have in your application's pane.
- Cut/Copy/Paste (Use Cases 2.6-2.8) - as described in the SRS
- Undo/Redo (Use Cases 2.9-2.10) - this should continue to work for all editing per the SRS.
- Edit Text (Use Case 2.30) - as described in the SRS
- Grab and Move Rectangle Vertex (Use Case 2.29) - as described in the SRS for rectangles only
- Move Component Up/Down (Use Cases 2.31, 2.32) - as described in the SRS
- Rename Component (Use Case 2.33) - as described in the SRS
- Change Text Font (Use Case 2.34) - as described in the SRS
- Change Component Border (Use Case 2.35) - as described in the SRS (not for Text)
- Change Component Color Gradient (Use JavaFX's RadialGradient) (Use Case 2.36) - as described in the SRS (also not for Text)
- Button Navigation (Reset Viewport/Zoom) (Use Cases 2.11, 2.12) - as described in the SRS
- Resize Logo (Use Case 2.13) - as described in the SRS
- Change Language (Use Case 2.16) - as described in the SRS for at least 2 languages (including English)
- Add New Image (Use Case 2.19) - as described in the SRS
- Delete Selected Component (Use Case 2.23) - as described in the SRS
VALUE ADDING FEATURES: (Implement 2/4 of the following)
- Toggle Snap (Use Case 2.14) - as described in the SRS
- Add/Resize Circle (Use Cases 2.21, 2.28) - as described in the SRS
- Add/Move Vertices for Triangle (Use Case 2.22) - as described in the SRS
- Zoom via Mouse Scroll Wheel & Grab & Navigate (Use Case 2.24) - as described in the SRS
Note that in this assignment we'll be testing lots of different functionality and combinations of edits and integrated with Undo/Redo. Make sure that works. The end result should be a useful, fully functioning program. Finally, note that you should continue to use BitBucket for Version Control and there will be grading criteria points for proper use (with many commits with good comments).
Handin Instructions
When you are done, zip up and submit via Blackboard.
Grading
Note that your instructor will be personally grading your final projects. Remember, do not give your source code to anyone and you may only submit your own work. This is taken very seriously in this course.