Giter Site home page Giter Site logo

imagelab's People

Contributors

alope151 avatar camijolly1 avatar elmattes avatar entrylevelcs avatar geoffzc avatar goku900 avatar iglooghost avatar jody avatar jody0 avatar nicolewelch avatar nlaratta avatar robo-jones avatar seboss123 avatar stilianb avatar thrandale avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

imagelab's Issues

[UserStory] Unit Test for ImgProvider

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want a unit test for the ImgProvider class
so that I can test the stability of the code

Acceptance Criteria

(Rules or scenarios are acceptable formats.)

  1. Unit Test covers 85% of executable code within ImgProvider.java
  2. Includes documentation for maintainers describing how to run and interpret tests

Supporting Information

(Relevant information, context, resources)

Dependencies

Depends On

(Issues on which this story depends)

Dependents

Add unit tests for existing classes

[UserStory] _Project needs build instructions and supporting documentation_

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a {developer | maintainer}
I want information about how to build the product
so that I can modify the product for my own use and as contribution to the project

Acceptance Criteria

  • Steps to build the product are clearly stated and readily located in the repository
  • Project conventions are clearly stated and readily located in the repository

Supporting Information

See similar MetroCS projects:

Related Issues

User Story #24

[Bug] Cancelling out of "Open Image" file explorer makes the program unresponsive

Describe the bug
When you select the File > Open option and launch a file explorer and then close the file explorer without selecting an image, the program window becomes unresponsive.

To Reproduce
Steps to reproduce the behavior:

  1. Go to File
  2. Click on Open
  3. Click "Cancel" on the file explorer window
  4. Program window is now unresponsive to inputs.

Expected behavior
The program should allow you to attempt to open a file again instead of freezing, or an error popup telling you no file was selected.

Desktop (please complete the following information):

  • OS: MacOS
  • Version: 10.13.6

[UserStory] Window commands/buttons

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a user of Imagelab
I want to be able to control auxiliary image panels
so that the window controls match the main app panel.

Acceptance Criteria

(Rules or scenarios are acceptable formats.)

  • Rule 1
    Each auxiliary window has a minimize, maximize, and close button similar to the main window.

[UserStory] encapsulation issue in ImgProvider.java

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want ImgProvider.java to have proper encapsulation
so that the internal implementation does not affect the external API

Supporting Info

This design change may require refactoring or modifications to the internal design of other classes.

Acceptance Criteria

Any instance variables of ImgProvider.java that need to be accessed or modified by other classes are private and have accessor methods.

Dependencies

Depends On

issue #32

[UserStory] Add unit tests for existing classes

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want automated unit tests for all source code
so that I can verify correct behavior and identify any code regression/

Acceptance Criteria

(Rules or scenarios are acceptable formats.)

  • Valid unit test code exists for all classes for which source code exists in the repository.
  • Unit tests must cover at least 85% of the lines of executable code.
  • Documentation exists for maintainers that explains how to run and interpret automated tests.

Supporting Information

(Relevant information, context, resources)
A standard unit-test framework is desired. (JUnit is recommended.)

Dependencies

Depends On

(Issues on which this story depends)

Dependents

(Issues dependent on this story)

[UserStory] Project needs automated check of adherence to coding conventions

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want automated report of coding convention violations
so that code can be made and kept more maintainable by adherence to conventions

Acceptance Criteria

  • Checkstyle or an equivalent is incorporated into the automated build process
  • Appropriate conventions are documented in the repository (e.g., as config/checkstyle.xml)
  • Reports of coding convention violates are readily accessible as formatted text or HTML

Supporting Information

Similar use of coding conventions for MetroCS projects:

Dependencies

Dependents

User Story #24

[UserStory] Documentation does not explain how audio is generated

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a new user.
I want documentation to be updated to define how images are turned into audio.
so that one can understand why a given image produces the audio it does.

Acceptance Criteria

This issue will be resolved once project documentation accurately defines algorithms used to convert an image to audio.

Supporting Information

Current documentation is lacking in specific details to the workings of the program.

[Bug] Issue running ImageLab on Linux using Java 11

Describe the bug
When executing the java -jar imagelab.jar command on a Linux terminal running Java 11, a compile issue occurs stating that the user is missing a .so file in their Java file path.
To Reproduce
Steps to reproduce the behavior:

  1. Go to the system's terminal
  2. Navigate to the ImageLab filepath
  3. Enter in the command java -jar imagelab.jar
  4. See error:
    Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so

Expected behavior
After running the command, the program should behave as intended.

Screenshots
image

Desktop (please complete the following information):

  • Ubuntu 20.04.3 LTS
  • OpenJDK 11

Additional context
This problem has been replicated on multiple Ubuntu 20.04.3 machines running Java 11.

[UserStory] Retain menu item and title bar button functionality while audio is playing

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a user of ImageLab
I want menu items and title bar buttons to still be functional while audio is playing
so that I retain control over the application while audio is playing.

Acceptance Criteria

  • Menu items are functional while audio is playing

Scenario 1

Given that audio is playing
when I click on the title bar button to close the program
then the program closes.

Scenario 2

Given that audio is playing
when I click on a menu item
then the menu item is functional.

[UserStory] Ability to save audio the program generates

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As an Imagelab user
I want to be able to save the audio generated by the program
so that I can save the audio as a media/audio file format

Acceptance Criteria

When the program is used to generate audio from an image it provides the option to save the audio to a file that can be played later from any well known operating system

Scenario 1

Given a user selects file > play from an image
when audio has been generated using a filter
then the user is able to save the generated audio to an audio file

[UserStory] fix code style errors in DynDisplayImage.java

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want the code in DynDisplayImage.java to adhere to the syntactic style conventions of the project
so that the project code has a consistent style that facilitates maintainability.

Supporting Information

Comments matching 'TODO' are reported by Checkstyle but are not coding convention violations.

Dependencies

Issues #32 and #33 depend on this user story

Acceptance Criteria

Checkstyle reports no errors in DynDisplayImage.java.

[UserStory] Document the libcanberra-gtk-module for the Program Dependency

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a linux user
I want imagelab to run without the failed to load module "canberra-gtk-module" gtk message
so that I can understand there are no errors within the program

Acceptance Criteria

(Rules or scenarios are acceptable formats.)

  • On the wiki the user is prompted to install canberra alongside the application if on linux, the proper method being given or linked externally

Supporting Information

gtk canberra is a library responsible for playing sounds from the GUI, not having this can lead to failure of some sound being played

[UserStory] Pause button for audio

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a user of ImageLab
I want to be able to pause and play the audio after initiating it
so that I can temporarily silence the audio while keeping the audio's current state intact.

Acceptance Criteria

  • A function exists that pauses any audio that is currently playing from the program
  • A function exists that resumes playing any audio (from where it left off) that was previously paused

Supporting Information

"Pause" is distinct from "stop" or "halt" in that pausing requires that the paused audio can be resumed from the same point that it was paused; the meaning of stopping or halting audio may differ from pausing.

[UserStory] encapsulation issue in ILFrame.java

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want ILFrame.java to have proper encapsulation
so that the internal implementation does not affect the external API

Supporting Info

This design change may require refactoring or modifications to the internal design of other classes.

Acceptance Criteria

Any instance variables of ILFrame.java that need to be accessed or modified by other classes are private and have accessor methods.

Dependencies

Depends On

issue #32

[UserStory] UI change to initial window to show and enable only appropriate actions

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a {student, educator}
I want the initial window to have explicit affordances for all and only actions that are appropriate to the newly launched application
so that the product use is easier to comprehend and effect.

Acceptance Criteria

  • The initial window provides explicit (and "obvious") affordances for the use of the product.

TODO: Needs more effective acceptance criteria.

Related Issues

#22 (Modification of initial window)

Dependencies

Depends On

(Issues on which this story depends)

Dependents

(Issues dependent on this story)

[UserStory] Build existing source code files with Gradle

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want an initial build file using Gradle
so that I can run unit testing and code analysis tools

Acceptance Criteria

  • All existing source code files compile
  • Retains functionality with javac command-line build
  • Retains functionality with BlueJ
  • Allows for future expansion
  • Build file uses Gradle

Supporting Information

(Relevant information, context, resources)

[UserStory] fix code style errors in Run.java

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want the code in Run.java to adhere to the syntactic style conventions of the project
so that the project code has a consistent style that facilitates maintainability.

Supporting Information

Comments matching 'TODO' are reported by Checkstyle but are not coding convention violations.

Dependencies

Issue #32 depends on this user story

Acceptance Criteria

Checkstyle reports no errors in Run.java.

[UserStory] imagelab package checkstyle report

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a contributor
I want the checkstyle errors to be fixed in the imagelab package
so that the code adheres to coding style conventions.

Acceptance Criteria

Checkstyle runs without any errors in the imagelab package.

*Zero checkstyle errors for the imagelab package.
*Full JavaDoc documentation in the imagelab package.
*Code runs without errors.

Supporting Information

(Relevant information, context, resources)

Dependencies

Depends On

(Issues on which this story depends)

Dependents

Issue #32 dependent on completion of this issue.

[UserStory] _Documentation does not describe the available filters_

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a user
I want to be able to see what filters are currently available before I run ImageLab
so that new users can better identify the functionality of the program.

Acceptance Criteria

  • There should be a list of and description of the available filters in the README and ImageLab wiki.

Program does not terminate when you click the window close button

Describe the bug
When you click the window close button the java runtime environment still runs in the background
To Reproduce
Steps to reproduce the behavior:

  1. Click windows close button
  2. Check task manager and see java.exe still running

Expected behavior
java.exe should terminate on close of the last window
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: Chrome
  • Version 9.5

[UserStory] sound package checkstyle report

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a contributor
I want the checkstlye errors in the sound package to be fixed
so that the code adheres to coding style conventions.

Acceptance Criteria

Build runs without any checkstyle errors in the sound package.

*Zero checkstyle errors for the sound package.
*Full JavaDoc documentation in the sound package.
*Code runs without errors.

Supporting Information

(Relevant information, context, resources)

Dependencies

Depends On

(Issues on which this story depends)

Dependents

Issue #32 dependent on completion of this issue.

[Bug] Attempting to open a non-image filetype will freeze the program

Describe the bug
When selecting the file to be interacted with in the program, if a non-image file is selected the program will not be able to select a different file, play, filter, or close.

To Reproduce
Steps to reproduce the behavior:

  1. Open the program
  2. Select file
  3. Select load
  4. Select any non-image file

Expected behavior
An error would pop-up, or simply a new file would be able to be opened.

Desktop (please complete the following information):

  • OS: Windows10
  • Version 1.8

When you save image it saves it without a filetype

Describe the bug
When you open an image and hit the save button it has you save the file but it saves it without an image type. Windows does not know how to deal with the file offhand.

To Reproduce
Steps to reproduce the behavior:

  1. Go to file -> open
  2. Select an image
  3. Go to file -> save
  4. Save image with desired location and name
  5. Navigate to file directory and try to run file

Expected behavior
image is opened in the devices default image viewer

Screenshots
image

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

[UserStory] fix code style errors in ImgProvider.java

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want the code in ImgProvider.java to adhere to the syntactic style conventions of the project
so that the project code has a consistent style that facilitates maintainability.

Supporting Information

There are encapsulation errors appearing in the Checkstyle report that require refactoring. This issue intentionally ignores such errors. Note also that comments matching 'TODO' are reported by Checkstyle but are not coding convention violations.

Dependencies

Issue #32 depends on this user story

Acceptance Criteria

Checkstyle reports only those errors in ImgProvider.java that are related to encapsulation or information hiding (e.g., "must be private and have accessor methods").

[UserStory] Open another picture while audio is playing

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a user of the image lab program
I want to be able to open another picture while audio for a separate picture is playing
so that I can view multiple pictures while audio is playing.

Acceptance Criteria

Scenario 1

Given User has opened an image in the product
when the user selects Play from the File menu of that image window's menu bar
then the user is still able to select Open from the File menu of the imagelab window

Dependencies

Depends On

Issue #13

[UserStory] Update build documentation to explain how to create the executable jar

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a {maintainer, educator}
I want documentation that explains how to create an executable jar from the source
so that I can create an updated executable jar file of imagelab for my students to use.

Acceptance Criteria

(Rules or scenarios are acceptable formats.)

  • Project documentation includes build instructions that result in an executable jar.
  • The executable jar created embodies the imageLab software and will invoke the appropriate main class to initialize and run imagelab.

Supporting Information

https://bluej.org/tutorial/tutorial-v4.pdf - See section 8 Creating stand-alone applications

Dependencies

Depends On

(Issues on which this story depends)

Dependents

(Issues dependent on this story)

Build task "javadoc" fails with errors in 3 files

Describe the bug
The gradle build task "javadoc" fails and displays error messages

To Reproduce
Steps to reproduce the behavior:

  1. Go to base directory of the product
  2. Issue command ./gradlew javadoc
  3. See errors

Expected behavior
The gradlew javadoc command should complete with out error, producing a set of javadoc files.

Transcript

% gradlew javadoc

> Task :javadoc
/private/tmp/imagelab/imagelab/ILFrame.java:21: error: bad HTML entity
    /** Vertical space needed for title & menu bar. */
                                        ^
/private/tmp/imagelab/imagelab/ImageLab.java:23: error: no tag name after @
 * that implement the {@see ImageFilter ImageFilter} interface).
                      ^
/private/tmp/imagelab/imagelab/ImgProvider.java:97: error: semicolon missing
     * Create a B&W image object based on the parameter.
                 ^
3 errors

> Task :javadoc FAILED

Environment

------------------------------------------------------------
Gradle 5.6.3
------------------------------------------------------------

Build time:   2019-10-18 00:28:36 UTC
Revision:     bd168bbf5d152c479186a897f2cea494b7875d13

Kotlin:       1.3.41
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.14 compiled on March 12 2019
JVM:          11.0.6 (AdoptOpenJDK 11.0.6+10)
OS:           Mac OS X 10.15.7 x86_64

[UserStory] Add a package-info.java file to the repository

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want a file for package level documentation
So that documentation is easy for maintainers to access.

Acceptance Criteria

  • Files providing package-level documentation that adhere to standard Javadoc conventions are present for each package in the product.

[UserStory] User doesn't want there to be a problem when canceling out of the save window.

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a Student of cs3250 class.
I want to be able to cancel out of saving an image without telling me that imageLab has "Encountered a problem in ImgProvider.save() - Please try again." .
so that I know the program is running properly and I know I don't need to try again.

Acceptance Criteria

(Rules or scenarios are acceptable formats.)

  • Rule 1 When in the save image window if cancel is select the save image window closes without showing the error message "Encountered a problem in ImgProvider.save() - Please try again." , unless there is actually a problem and the user needs to try again.

Scenario 1

Given a user has opened an image in image lab, selected file > save and is looking at the save window
when the user selects the cancel button
then the user doesn't get an error saying "Encountered a problem in ImgProvider.save() - Please try again."

[UserStory] UI change to initial window to show name and version of product

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a {student, educator}
I want the initial UI window to include the name and version of the product
so that I have the product and version validated on startup

Acceptance Criteria

  • Initial (opening) window displays the name and version of the product.

Supporting Information

(Relevant information, context, resources)

Dependencies

Depends On

(Issues on which this story depends)

Dependents

(Issues dependent on this story)

[UserStory] Add Documentation on Java Version Dependency

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a new user
I want to know what what version of java I need for building the latest version of imagelab
so that imagelab runs in the way it was intended

Acceptance Criteria

  • Addition in the README.md on the version of java that is recommended for building imagelab

Supporting Information

It was found that running imagelab gathered from https://metrocs.github.io/imagelab/ resulted in different actions with the play feature when compared to the current repository being built in java 11 and up. The play function in the default would prevent any actions being done while the music is playing, while in a java 11 build, actions could still be done while the play feature was occurring.

[UserStory] Update build file to run and report results of JUnit tests

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want gradle to automatically build and run unit tests with JUnit4
so that the project's code quality can be improved through automated unit testing.

Acceptance Criteria

  • There should be an obvious location in the project's directory structure for unit test files
    • This location should be consistent with the file/directory structure of a BlueJ project
  • The gradlew test command should build and run any JUnit4 tests that are in the above location
  • The test report should be saved somewhere in the build/reports directory
  • There should be at least one meaningful unit test present in the designated directory, so that the above can be verified

Supporting Information

Currently, there is incomplete JUnit4 support in the project's build.gradle file that indicates an intention to have support for automated JUnit4 testing in the project. This user story is intended to "finish" that support.

Dependencies

Dependents

#4 [UserStory] Add unit tests for existing classes

[UserStory] UI change to synchronize display with sound

User Story

Essential components

  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a user of ImageLab
I want the display of the image to be incrementally updated in synch with the audio
so that I can better appreciate which lines of the image correspond to the sounds I hear

Acceptance Criteria

Scenario 1
Given an image is currently displayed
when the "play" menu item is selected
then the image refreshes a line at a time in synch with the playing audio

Supporting Information

[UserStory] Unit Test for DisplayImage

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want a unit test for the DisplayImage class
so that I can identify that the class is performing correctly

Acceptance Criteria

(Rules or scenarios are acceptable formats.)

  • Unit Test covers 85% of executable code within DisplayImage.java
  • Includes documentation for maintainers describing how to run and interpret tests

Supporting Information

(Relevant information, context, resources)

Use JUnit framework

Dependencies

Depends On

(Issues on which this story depends)

Dependents

(Issues dependent on this story)
Add unit tests for existing classes

Code does not adhere to conventions (as reported by Checkstyle)

Describe the shortcoming
Checkstyle reports errors in java source code files.

To Reproduce
Steps to reproduce the behavior:

  1. Clone repository.
  2. Execute command ./gradlew checkstyle
  3. Open build/reports/checkstyle/main.html
  4. See error reports

Expected behavior
Checkstyle should report no errors with style and coding conventions. Note that ToDo comments are expected to be flagged and do not represent a coding convention violation.

Screenshots
Screen Shot 2020-04-19 at 10 59 06 AM

Development environment:

  • OS: OS X 10.15.4
  • JDK: openjdk 11.0.6 2020-01-14

Additional context
This is an epic and should be the umbrella for creating issues to correct the coding style of individual class files.

[UserStory] Add Documentation Detailing Product Features

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a developer or user
I want a document that specifies the function of each feature in imagelab
so that I can know what each feature is meant to do.

Acceptance Criteria

  1. Each feature has a detailed description of its function
  2. It is easy for a user to understand how to use each feature

Supporting Information

There is no existing description of imagelab features

Feature - A distinguishing characteristic of a system item (includes both functional and nonfunctional attributes such as performance and reusability).

source: "IEEE Standard for Software and System Test Documentation," in IEEE Std 829-2008 , vol., no., pp.1-150, 18 July 2008, doi: 10.1109/IEEESTD.2008.4578383.

[UserStory] Upgrade build to accommodate JUnit5 as well as JUnit4 tests

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want gradle to automatically build and run unit tests written using JUnit5 as well as those using JUnit4
so that the automated unit testing can utilize the common and current frameworks.

Acceptance Criteria

  • The gradlew test command should build and run any JUnit4 and JUnit5 tests in the project
  • The test report should be saved build/reports/JUnit directory
  • There should be at least one meaningful JUnit4 and one meaningful JUnit5 test present to verify proper behavior

Supporting Information

Currently, there is JUnit4 support in the project's build.gradle file (see #44, #52). This user story extends unit testing support to include JUnit5 in addition to JUnit4.

[UserStory] UI change to allow filters in arbitrary directory

User Story

Essential components

  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a user of ImageLab
I want the interface to allow me to choose the directory to search for filters
so that I can import filters from a directory outside the project

Acceptance Criteria

  • The user interface affords the ability to select a directory within which to search for filters
  • The product searches and loads filters from the selected directory
  • No directory selection action is required of the user. If no specific action is invoked, the current behavior is the default (uses "filters" directory).

Supporting Information

[UserStory] fix code style errors in ImageLab.java

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want the code in ImageLab.java to adhere to the syntactic style conventions of the project
so that the project code has a consistent style that facilitates maintainability.

Supporting Information

There are encapsulation errors appearing in the Checkstyle report that require refactoring. This issue intentionally ignores such errors. Note also that comments matching 'TODO' are reported by Checkstyle but are not coding convention violations.

Dependencies

Issues #32 and #33 depend on this user story

Acceptance Criteria

Checkstyle reports only those errors in ImageLab.java that are related to encapsulation or information hiding (e.g., "must be private and have accessor methods").

[UserStory] Unit Test for ImgProvider

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want a unit test written for the ImgProvider class
so that I can see if the class is doing what it is supposed to do

Acceptance Criteria

(Rules or scenarios are acceptable formats.)

  • Unit Test covers 85% of the executable code within ImgProvider.java
  • Ensure documentation is added for maintainers that explain how to use the tests

Supporting Information

Use JUnit framework

Dependencies

Depends On

#4

[UserStory] fix code style errors in DisplayImage.java

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want the code in DisplayImage.java to adhere to the syntactic style conventions of the project
so that the project code has a consistent style that facilitates maintainability.

Supporting Information

Comments matching 'TODO' are reported by Checkstyle but are not coding convention violations.

Dependencies

Issues #32 and #33 depend on this user story

Acceptance Criteria

Checkstyle reports no errors in DisplayImage.java.

[UserStory] Provide documentation for contributors (including a code of conduct)

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a contributor or potential contributor
I want documentation of how to contribute (including a contributor code of conduct)
so that I am aware of how to contribute and responsibilities of a contributor.

Acceptance Criteria

  • A document exists in the repository, and linked from the website, that
    • gives an overview suitable for potential contributors
    • identifies project development technologies, tools, and conventions
    • explains the project repository organization
    • provides navigation to more specific documents
  • A "Contributor Code of Conduct" document exists in the repository and is linked to from appropriate other documents, including the contribution overview.

Supporting Information

Dependencies

Depends On

Dependents

(Issues dependent on this story)

[UserStory] DisPanel.java Unit Test

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want the DisPanel class to have a unit test
so that it will be easy to debug the code

  • Rule 1 Have a unit test for each method

Scenario 1

Given the DisPanel.java program
when A JUnit test hasn't been ran
then run a JUnit test

Depends On #4

[User Story] Halting of Music After the Image has Been Closed or a New Image is Played

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a user
I want the image's music to stop when an image is closed or a different image is played
so that only one image's music plays at a time and cannot overlap each other

Acceptance Criteria

(Rules or scenarios are acceptable formats.)

  • When using file -> close | if the image that was closed had music playing, the music halts or stops
  • When using file -> play | when two different images are up, if music is already playing from one image, the music currently playing halts and the most recent play starts as the only music occurring
  • When using file -> play | multiple times on one image, the music does not overlap, the current playing halts and the most recent file -> play is done

Supporting Information

Currently the music will continue to play when the image has been closed and will end either when it reaches the end of the song or when the program is closed through file -> close. This issue is most seen on the hiroshige.gif file in the images directory as the music played from this file is quite long.

[UserStory] filters package checkstlye report

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a contributor
I want the checkstyle errors in the filters package to be fixed
so that the code adheres to coding style conventions.

Acceptance Criteria

Checkstyle report for filters package has no checkstyle errors.

*Zero checkstyle errors for the filters package.
*Full JavaDoc documentation in filters package.
*Build runs without checkstyle errors.

Supporting Information

(Relevant information, context, resources)

Dependencies

Depends On

(Issues on which this story depends)

Dependents

Issue #32 dependent on completion of this issue.

Image Lab freeze

Describe the bug
When I open an image display window and press "play", the program plays music, but all of the program's buttons become unresponsive. To close the program, I had to close it manually from a command line.

To Reproduce
Steps to reproduce the behavior:

  1. Run ImageLab.jar
  2. Click on File, Open
  3. Double click on a picture in file system
  4. Click on File, Play (on either window--both buttons freeze the program)

Expected behavior
Upon running through the steps above buttons should remain responsive.

Desktop (please complete the following information):

  • OS: Windows 10

[Bug] Program Cannot Be Closed When Music Is Playing

Describe the bug
When play is selected from file>play, no open windows can be closed.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'File'
  2. Click on 'Play'
  3. Click on Close Window Button
  4. See error

Expected behavior
Windows should close and audio should stop.

Desktop

  • OS: Windows

Error when selecting cancel on the save image window.

Describe the bug
When saving an image on the save dialog screen, if you select cancel an error message pops up saying "Encountered a problem in ImgProvider.save() - Please try again."

To Reproduce
Steps to reproduce the behavior:

  1. Launch ImageLab
  2. Open an image: File > Open > Use the Pick an Image window to open an image.
  3. On the image screen Select: File > Save
  4. Click Cancel
  5. See error "Encountered a problem in ImgProvider.save() - Please try again."

Expected behavior
No error should be displayed. The Save window should just close.

Screenshots
SaveError

Desktop (please complete the following information):

  • OS: Ubuntu 21.4

  • Version 21.4

  • Java Version 8, 11, 16, & 17

  • OS: Windows 10

  • Version 21H1

  • Java Version 16

[UserStory] encapsulation issue in ImageLab.java

User Story

Essential components

  • Title describes the story
  • Stakeholder type is identified
  • Outcome is described
  • Rationale is explicit
  • Acceptance criteria are verifiable and from the perspective of the stakeholder

Story

As a maintainer
I want ImageLab.java to have proper encapsulation
so that the internal implementation does not affect the external API

Supporting Info

This design change may require refactoring or modifications to the internal design of other classes.

Acceptance Criteria

Any instance variables of ImageLab.java that need to be accessed or modified by other classes are private and have accessor methods.

Dependencies

Depends On

issue #32

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.