metrocs / imagelab Goto Github PK
View Code? Open in Web Editor NEWImageLab
License: GNU General Public License v3.0
ImageLab
License: GNU General Public License v3.0
As a maintainer
I want a unit test for the ImgProvider class
so that I can test the stability of the code
(Rules or scenarios are acceptable formats.)
(Relevant information, context, resources)
(Issues on which this story depends)
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
See similar MetroCS projects:
User Story #24
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:
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):
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.
(Rules or scenarios are acceptable formats.)
As a maintainer
I want ImgProvider.java to have proper encapsulation
so that the internal implementation does not affect the external API
This design change may require refactoring or modifications to the internal design of other classes.
Any instance variables of ImgProvider.java that need to be accessed or modified by other classes are private and have accessor methods.
issue #32
As a maintainer
I want automated unit tests for all source code
so that I can verify correct behavior and identify any code regression/
(Rules or scenarios are acceptable formats.)
(Relevant information, context, resources)
A standard unit-test framework is desired. (JUnit is recommended.)
(Issues on which this story depends)
(Issues dependent on this 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
Similar use of coding conventions for MetroCS projects:
User Story #24
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.
This issue will be resolved once project documentation accurately defines algorithms used to convert an image to audio.
Current documentation is lacking in specific details to the workings of the program.
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:
Expected behavior
After running the command, the program should behave as intended.
Desktop (please complete the following information):
Additional context
This problem has been replicated on multiple Ubuntu 20.04.3 machines running Java 11.
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.
Given that audio is playing
when I click on the title bar button to close the program
then the program closes.
Given that audio is playing
when I click on a menu item
then the menu item is functional.
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
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
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
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.
Comments matching 'TODO' are reported by Checkstyle but are not coding convention violations.
Issues #32 and #33 depend on this user story
Checkstyle reports no errors in DynDisplayImage.java.
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
(Rules or scenarios are acceptable formats.)
gtk canberra is a library responsible for playing sounds from the GUI, not having this can lead to failure of some sound being played
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.
"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.
As a maintainer
I want ILFrame.java to have proper encapsulation
so that the internal implementation does not affect the external API
This design change may require refactoring or modifications to the internal design of other classes.
Any instance variables of ILFrame.java that need to be accessed or modified by other classes are private and have accessor methods.
issue #32
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.
TODO: Needs more effective acceptance criteria.
#22 (Modification of initial window)
(Issues on which this story depends)
(Issues dependent on this story)
As a maintainer
I want an initial build file using Gradle
so that I can run unit testing and code analysis tools
(Relevant information, context, resources)
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.
Comments matching 'TODO' are reported by Checkstyle but are not coding convention violations.
Issue #32 depends on this user story
Checkstyle reports no errors in Run.java.
As a contributor
I want the checkstyle errors to be fixed in the imagelab package
so that the code adheres to coding style conventions.
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.
(Relevant information, context, resources)
(Issues on which this story depends)
Issue #32 dependent on completion of this issue.
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.
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:
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):
As a contributor
I want the checkstlye errors in the sound package to be fixed
so that the code adheres to coding style conventions.
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.
(Relevant information, context, resources)
(Issues on which this story depends)
Issue #32 dependent on completion of this issue.
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:
Expected behavior
An error would pop-up, or simply a new file would be able to be opened.
Desktop (please complete the following information):
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:
Expected behavior
image is opened in the devices default image viewer
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
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.
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.
Issue #32 depends on this user story
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").
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.
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
Issue #13
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.
(Rules or scenarios are acceptable formats.)
https://bluej.org/tutorial/tutorial-v4.pdf - See section 8 Creating stand-alone applications
(Issues on which this story depends)
(Issues dependent on this story)
Describe the bug
The gradle build task "javadoc" fails and displays error messages
To Reproduce
Steps to reproduce the behavior:
./gradlew javadoc
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
As a maintainer
I want a file for package level documentation
So that documentation is easy for maintainers to access.
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.
(Rules or scenarios are acceptable formats.)
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."
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
(Relevant information, context, resources)
(Issues on which this story depends)
(Issues dependent on this 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
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.
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.
gradlew test
command should build and run any JUnit4 tests that are in the above locationbuild/reports
directoryCurrently, 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.
#4 [UserStory] Add unit tests for existing classes
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
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
As a maintainer
I want a unit test for the DisplayImage class
so that I can identify that the class is performing correctly
(Rules or scenarios are acceptable formats.)
(Relevant information, context, resources)
Use JUnit framework
(Issues on which this story depends)
(Issues dependent on this story)
Add unit tests for existing classes
Describe the shortcoming
Checkstyle reports errors in java source code files.
To Reproduce
Steps to reproduce the behavior:
./gradlew checkstyle
build/reports/checkstyle/main.html
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.
Development environment:
Additional context
This is an epic and should be the umbrella for creating issues to correct the coding style of individual class files.
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.
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.
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.
gradlew test
command should build and run any JUnit4 and JUnit5 tests in the projectbuild/reports/JUnit
directoryCurrently, 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.
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
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.
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.
Issues #32 and #33 depend on this user story
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").
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
(Rules or scenarios are acceptable formats.)
Use JUnit framework
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.
Comments matching 'TODO' are reported by Checkstyle but are not coding convention violations.
Issues #32 and #33 depend on this user story
Checkstyle reports no errors in DisplayImage.java.
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.
(Issues dependent on this story)
As a maintainer
I want the DisPanel class to have a unit test
so that it will be easy to debug the code
Given the DisPanel.java program
when A JUnit test hasn't been ran
then run a JUnit test
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
(Rules or scenarios are acceptable formats.)
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.
As a contributor
I want the checkstyle errors in the filters package to be fixed
so that the code adheres to coding style conventions.
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.
(Relevant information, context, resources)
(Issues on which this story depends)
Issue #32 dependent on completion of this issue.
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:
Expected behavior
Upon running through the steps above buttons should remain responsive.
Desktop (please complete the following information):
Describe the bug
When play is selected from file>play, no open windows can be closed.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Windows should close and audio should stop.
Desktop
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:
Expected behavior
No error should be displayed. The Save window should just close.
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
As a maintainer
I want ImageLab.java to have proper encapsulation
so that the internal implementation does not affect the external API
This design change may require refactoring or modifications to the internal design of other classes.
Any instance variables of ImageLab.java that need to be accessed or modified by other classes are private and have accessor methods.
issue #32
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.