Added a template for program. Added a list of issues. The template is not yet complete, needs some ironing out.

This commit is contained in:
kab74 2020-04-25 16:30:49 +01:00
parent ddbf6c31b9
commit 2996adc409
67 changed files with 1636 additions and 11 deletions

View file

@ -1,11 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="b436be74-9b31-4913-bf6e-41784cacd483" name="Default Changelist" comment=""> <list default="true" id="b436be74-9b31-4913-bf6e-41784cacd483" name="Default Changelist" comment="" />
<change afterPath="$PROJECT_DIR$/../../../20200331/brc9/translationFX/.idea/vcs.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200331/brc9/translationFX/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200331/brc9/translationFX/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200331/top19/flashcardfx/hellofx/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200331/top19/flashcardfx/hellofx/.idea/workspace.xml" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -92,6 +88,8 @@
<workItem from="1586788738519" duration="8777000" /> <workItem from="1586788738519" duration="8777000" />
<workItem from="1586853342350" duration="6464000" /> <workItem from="1586853342350" duration="6464000" />
<workItem from="1586866035893" duration="398000" /> <workItem from="1586866035893" duration="398000" />
<workItem from="1586869197672" duration="229000" />
<workItem from="1587051259984" duration="118000" />
</task> </task>
<servers /> <servers />
</component> </component>

View file

@ -105,4 +105,10 @@ public class DictionaryEntry {
"practiceWord = " + isPracticeWord; "practiceWord = " + isPracticeWord;
} }
@Override
public boolean equals(Object obj){
DictionaryEntry otherObject = (DictionaryEntry) obj;
return (this.getEnglishWord().equals(otherObject.getEnglishWord())) && this.getWelshWord().equals(otherObject.getWelshWord());
}
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="Welsh Vocabulary Tutor" />
</profile>
</annotationProcessing>
</component>
</project>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with NO BOM">
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11.0.6 (2)" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" />
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

View file

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="b436be74-9b31-4913-bf6e-41784cacd483" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/../../../20200407/kab74/Welsh Vocabulary Tutor/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200407/kab74/Welsh Vocabulary Tutor/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200407/kab74/Welsh Vocabulary Tutor/src/main/java/JSON/DictionaryEntry.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200407/kab74/Welsh Vocabulary Tutor/src/main/java/JSON/DictionaryEntry.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/encodings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_base_win_11.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_base_linux_11.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_controls_win_11.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_controls_linux_11.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_fxml_win_11.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_fxml_linux_11.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_graphics_win_11.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_graphics_linux_11.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/com_fasterxml_jackson_core_jackson_databind_2_9_4.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/com_fasterxml_jackson_core_jackson_databind_2_9_4.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/Welsh Vocabulary Tutor.iml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/Welsh Vocabulary Tutor.iml" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Class" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../../../.." />
</component>
<component name="MavenImportPreferences">
<option name="importingSettings">
<MavenImportingSettings>
<option name="importAutomatically" value="true" />
</MavenImportingSettings>
</option>
</component>
<component name="ProjectId" id="1ZuzdvhY95vKxjmCaMLe5YQbnXd" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showExcludedFiles" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1586203717298" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20" />
<property name="project.structure.last.edited" value="Libraries" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.2" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration name="App" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="uk.ac.aber.cs22120.group20.App" />
<module name="Welsh Vocabulary Tutor" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="uk.ac.aber.cs22120.group20.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<recent_temporary>
<list>
<item itemvalue="Application.App" />
</list>
</recent_temporary>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="b436be74-9b31-4913-bf6e-41784cacd483" name="Default Changelist" comment="" />
<created>1585703857421</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1585703857421</updated>
<workItem from="1585703861677" duration="881000" />
<workItem from="1587051369795" duration="11000" />
<workItem from="1587054283250" duration="26000" />
<workItem from="1587388308725" duration="10988000" />
<workItem from="1587458518156" duration="2015000" />
<workItem from="1587730315755" duration="13046000" />
<workItem from="1587807634142" duration="19000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State>
<option name="COLUMN_ORDER" />
</State>
</value>
</entry>
</map>
</option>
</component>
<component name="WindowStateProjectService">
<state width="1878" height="282" key="GridCell.Tab.0.bottom" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state width="1878" height="282" key="GridCell.Tab.0.center" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.center/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state width="1878" height="282" key="GridCell.Tab.0.left" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.left/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state width="1878" height="282" key="GridCell.Tab.0.right" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.right/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state x="441" y="95" key="SettingsEditor" timestamp="1585703966325">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="441" y="95" key="SettingsEditor/0.0.1920.1040@0.0.1920.1040" timestamp="1585703966325" />
</component>
</project>

View file

@ -0,0 +1,44 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>uk.ac.aber.cs22120.group20</groupId>
<artifactId>Welsh Vocabulary Tutor</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.1</version>
<configuration>
<mainClass>uk.ac.aber.cs22120.group20.App</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>

View file

@ -0,0 +1,7 @@
module uk.ac.aber.cs22120.group20 {
requires javafx.controls;
requires javafx.fxml;
opens uk.ac.aber.cs22120.group20 to javafx.fxml;
exports uk.ac.aber.cs22120.group20;
}

View file

@ -0,0 +1,27 @@
package uk.ac.aber.cs22120.group20.javafx;
import javafx.scene.Scene;
/**
* Programs main class that contains a list of the loaded dictionary definitions and is
* responsible for running the application.
* Launch class of the Welsh Vocabulary tutor Application
* @author Kain Bryan-Jones [kab74]
* @author Brad Corbett [brc9]
* @author Henry Dugmore [hjd3]
* @author Marcin Jakob [maj83]
* @author Tom Perry [top1]
* @author Oscar Pocock [osp1]
* @author Waylen Watts [ncw]
* @author Luke Wybar [law39]
* @version 0.1
* @See
*/
public class Application {
public static void main(String[] args) {
}
}

View file

@ -0,0 +1,20 @@
package uk.ac.aber.cs22120.group20.javafx;
/**
* Class that contains all the scenes for the JavaFX user interface and will be responsible
* for initiating the transition to new ones.
* @Author
* @Version
* @See
*/
public class ScreenSwitch extends SharedCodeController {
/**
* Method that is responsible for the switching between
* JavaFX, with it taking the new scenes name as a parameter.
*/
public void swap(SceneEnum newScene){
}
}

View file

@ -0,0 +1,12 @@
package uk.ac.aber.cs22120.group20.javafx;
/**
* Abstract class that contains all the shared FXML elements between the
* different controller classes including the sliding menu and the test score counter, to reduce code
* duplication. This will be extended by all the controller classes.
* @Author
* @Version
* @See
*/
abstract public class SharedCodeController {
}

View file

@ -0,0 +1,31 @@
package uk.ac.aber.cs22120.group20.json;
import java.io.*;
import java.util.*;
/**
* Contains functions responsible for saving and loading to and from the JSON file
* which will be provided by the user, using the Jackson JSON library.
* @Author
* @Version
* @See
*/
public class JSONProcessor {
/**
* Method for loading the list of
* dictionary definitions from a JSON file.
* @param dictionaryFile
*/
public LinkedList<WelshDictionary> load(File dictionaryFile){
}
/**
* Method for saving
* the list of dictionary definitions to a JSON file.
*/
public void save(File dictionaryFile, LinkedList<WelshDictionary> words){
}
}

View file

@ -0,0 +1,119 @@
package uk.ac.aber.cs22120.group20.json;
/**
* Class containing all the fields needed for storing dictionary definitions including
* Welsh and English translations along with its word type and whether its a practice word or not.
* @Author
* @Version
* @See
*/
public class WelshDictionary implements Comparable<WelshDictionary>{
private String welshWord;
private String englishWord;
private String wordType;
private boolean isPracticeWord;
private String practiceWord;
/**
* Default constructor for WelshDictionary.
*/
public WelshDictionary(){};
/**
*
* @param englishWord
* @param welshWord
* @param wordType
* @param isPracticeWord
*/
public WelshDictionary(String englishWord, String welshWord, String wordType, Boolean isPracticeWord){
}
/**
*
* @return
*/
public String getWelshWord(){
return welshWord;
}
/**
*
* @return
*/
public String getEnglishWord(){
return englishWord;
}
/**
*
* @return
*/
public String getWordType(){
return wordType;
}
/**
*
* @return
*/
public boolean isPracticeWord(){
return isPracticeWord();
}
/**
*
* @param welshWord
*/
public void setWelshWord(String welshWord){
this.welshWord=welshWord;
}
/**
*
* @param englishWord
*/
public void setEnglishWord(String englishWord){
this.englishWord=englishWord;
}
/**
*
* @param wordType
*/
public void setWordType(String wordType){
this.wordType=wordType;
}
/**
*
* @param practiceWord
*/
public void setPracticeWord(String practiceWord){
this.practiceWord() = practiceWord;
}
/**
*
* @param o
* @return
*/
@Override
public boolean equals(Object o){
}
/**
*
* @param welshDictionary
* @return
*/
@Override
public int compareTo(WelshDictionary welshDictionary) {
return 0;
}
}

View file

@ -0,0 +1,57 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
import java.util.LinkedList;
/**
* Class that contains methods to create a randomised list of questions that will
* contain a random distribution of question types.
* @Author
* @Version
* @See
*/
public class AssessmentGenerator extends Question{
/**
* Method that will generate a randomized list of questions consisting of random distribution of questions
* types, using the dictionarys practice words as the parameter.
* @param wordList
* @return
*/
public LinkedList<Question> generateAssessment(LinkedList<WelshDictionary> wordList){
}
/**
* Method
* that will generate a list of questions that are the type Match The Meanings, using the dictionary's
* practice words as the parameter.
* @return
*/
public LinkedList<Question> generateWordMatch(LinkedList<WelshDictionary>){
}
/**
* Method
* that will generate a list of questions that are the type 6 Meanings, using the dictionary's practice
* words as the parameter.
* @return
*/
public LinkedList<Question> generateSixMeanings(LinkedList<WelshDictionar>){
}
/**
* Method that
* will generate a list of questions that are the type Translation, using the dictionary's practice words as
* the parameter.
* @return
*/
public LinkedList<Question> generateWordEnter(LinkedList<WelshDictionary>){
}
}

View file

@ -0,0 +1,24 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
/**
* Abstract class contains the basic information that all the shared information between the
* types of test questions including the questions correct answers and possible answers. All question
* classes will extend this class.
* @Author
* @Version
* @See
*/
public class Question {
/**
* Constructor for
* WordEnterQuestion that takes a WelshDictionary object that is being tested on as the parameter.
* @param correctAnswer
*/
public wordEnterQuestion(WelshDictionary correctAnswer){
}
}

View file

@ -0,0 +1,26 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
/**
* Class that contains all the details needed for the Six Meanings question
* type, including the correct answer along with the five other possible answers. This class will be used by
* the AssessmentGenerator and extends the Question class.
* @Author
* @Version
* @See
*/
public class SixMeaningsQuestion extends Question {
/**
* Constructor for SixMeaningQuestion that takes one WelshDictionary object that is being
* tested along with the full list of words which will be used to generate randomized possible answers as
* the parameters.
* @param correctAnswer
* @param dictionary
*/
public sixMeaningQuestions(WelshDictionary correctAnswer, LinkedList<WelshDictionary> dictionary){
}
}

View file

@ -0,0 +1,25 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
/**
* Class that contains all the details needed for the Translation question type,
* including the practice definition that is being tested. This class will be used by the
* AssessmentGenerator and extends the Question class.
* @Author
* @Version
* @See
*/
public class WordEnterQuestion extends Question{
/**
* Constructor for
* WordEnterQuestion that takes a WelshDictionary object that is being tested on as the parameter.
* @param correctAnswer
*/
public WordEnterQuestion(WelshDictionary correctAnswer){
}
}

View file

@ -0,0 +1,25 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
/**
* Class that contains all the details needed for the Match the Meanings
* question type, including the 4 different practice definitions. This class will be used by the
* AssessmentGenerator and extends the Question class.
* @Author
* @Version
* @See
*/
public class WordMatchQuestion {
/**
* Class that contains all the details needed for the Match the Meanings
* question type, including the 4 different practice definitions. This class will be used by the
* AssessmentGenerator and extends the Question class.
* @param correctAnswers
*/
public WordMatchQuestion(WelshDictionary[] correctAnswers){
}
}

View file

@ -0,0 +1,28 @@
package uk.ac.aber.cs22120.group20.test;
/**
* Class that contains methods which will be used to test that the JSON package classes are
* correctly loading and saving to and from the JSON file.
* @Author
* @Version
* @See
*/
public class JSONTest {
/**
* JUnit test to check that the JSON file has been correctly loaded.
*/
@test public void testLoad(){
}
/**
* JUnit test to check that any changes to the list of definitions are
* updated and saved to the JSON file accordingly.
*/
@test public void testSave(){
}
}

View file

@ -0,0 +1,54 @@
package uk.ac.aber.cs22120.group20.test;
/**
* Class that contains methods to test that the application class is correctly storing the full
* list of dictionary definitions.
* Furthermore, this class will also test that the elements such as the sliding menu and score counter are
* working as intended, along with testing that scenes are ending and transitioning correctly when
* applicable.
* @Author
* @Version
* @See
*/
public class JavaFXTest {
/**
* Tests to confirm that the dictionary definitions loaded match to an
* identical base set.
*/
@test public void testDefinition(){
}
/**
* Test to confirm that the user score counter correctly increases
* by increments on one.
*/
@test public void testScoreCounter(){
}
/**
* A preset search test to confirm that words are being searched for
* correctly.
*/
@test public void testFindWord(){
}
/**
* A test to check that a new word is correctly added and saved to
* the JSON file.
*/
@test public void testAddWord(){
}
/**
*A test to check that the JSON file is correctly updated when a
* word is removed.
*/
@test public void testRemoveWord(){
}
}

View file

@ -0,0 +1,36 @@
package uk.ac.aber.cs22120.group20.test;
/**
* This class will test that the lists pulled in the self-assessment package are indeed
* random, while also pulling the matching data from the dictionary.
* @Author
* @Version
* @See
*/
public class SelfAssesmentTest {
/**
* Test to confirm that the random number return is working
* correctly.
*/
@test
public void testRandomReturn(){
}
/**
* Test to check and confirm that the game types are
* either made available or are locked off depending on the number of practice list questions.
*/
@test
public void testAvailableSelfAssessment(){
}
/**
* Test that will check that an input by a user is correctly checked
* to the correct answer.
*/
@test
public void testUserAnswer(){}
}

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.PrimaryController">
<children>
<Label text="Primary View" />
<Button fx:id="primaryButton" text="Switch to Secondary View" onAction="#switchToSecondary"/>
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.SecondaryController">
<children>
<Label text="Secondary View" />
<Button fx:id="secondaryButton" text="Switch to Primary View" onAction="#switchToPrimary" />
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.PrimaryController">
<children>
<Label text="Primary View" />
<Button fx:id="primaryButton" text="Switch to Secondary View" onAction="#switchToSecondary"/>
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.SecondaryController">
<children>
<Label text="Secondary View" />
<Button fx:id="secondaryButton" text="Switch to Primary View" onAction="#switchToPrimary" />
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

18
dev/20200414/kab74/issues Normal file
View file

@ -0,0 +1,18 @@
* sharedCodeController description is different in classes than design spec.
* Design spec "public" is with lower case p.
* Design spec when listing function names shouldn't end with semicolon
* Changed setters and getters and field variables in WelshDictionary to comply
more with QA9's point on real word objects.
* What is SceneEnum? I can't find it anywhere. And is that really a good name?
* I Renamed self-assessment package because java doesn't allow '-' in name of package.
* TestUser in design spec has no brackets.
* TestFindWord also has no brackets
* No description for class 4.2.2
* 4.2.2 changed 'words' to 'wordList' to comply with QA9 real word object point.
* Rearanged authors on 'Application' to be alphabetical by surname.
* 4.2.4 it is illegal to state an array size in method signature(Design spec).
* WelshDictionary setter/getter for practice word should check whether the word
is a practice word first.
* WelshDictionary wordType should be an Enum.

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="Welsh Vocabulary Tutor" />
</profile>
</annotationProcessing>
</component>
</project>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with NO BOM">
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11.0.6 (2)" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" />
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

View file

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="b436be74-9b31-4913-bf6e-41784cacd483" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/../../../20200407/kab74/Welsh Vocabulary Tutor/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200407/kab74/Welsh Vocabulary Tutor/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200407/kab74/Welsh Vocabulary Tutor/src/main/java/JSON/DictionaryEntry.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200407/kab74/Welsh Vocabulary Tutor/src/main/java/JSON/DictionaryEntry.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/encodings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_base_win_11.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_base_linux_11.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_controls_win_11.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_controls_linux_11.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_fxml_win_11.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_fxml_linux_11.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_graphics_win_11.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_graphics_linux_11.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/com_fasterxml_jackson_core_jackson_databind_2_9_4.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/com_fasterxml_jackson_core_jackson_databind_2_9_4.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/Welsh Vocabulary Tutor.iml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/Welsh Vocabulary Tutor.iml" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Class" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../../../.." />
</component>
<component name="MavenImportPreferences">
<option name="importingSettings">
<MavenImportingSettings>
<option name="importAutomatically" value="true" />
</MavenImportingSettings>
</option>
</component>
<component name="ProjectId" id="1ZuzdvhY95vKxjmCaMLe5YQbnXd" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showExcludedFiles" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1586203717298" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20" />
<property name="project.structure.last.edited" value="Libraries" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.2" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration name="App" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="uk.ac.aber.cs22120.group20.App" />
<module name="Welsh Vocabulary Tutor" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="uk.ac.aber.cs22120.group20.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<recent_temporary>
<list>
<item itemvalue="Application.App" />
</list>
</recent_temporary>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="b436be74-9b31-4913-bf6e-41784cacd483" name="Default Changelist" comment="" />
<created>1585703857421</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1585703857421</updated>
<workItem from="1585703861677" duration="881000" />
<workItem from="1587051369795" duration="11000" />
<workItem from="1587054283250" duration="26000" />
<workItem from="1587388308725" duration="10988000" />
<workItem from="1587458518156" duration="2015000" />
<workItem from="1587730315755" duration="13046000" />
<workItem from="1587807634142" duration="19000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State>
<option name="COLUMN_ORDER" />
</State>
</value>
</entry>
</map>
</option>
</component>
<component name="WindowStateProjectService">
<state width="1878" height="282" key="GridCell.Tab.0.bottom" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state width="1878" height="282" key="GridCell.Tab.0.center" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.center/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state width="1878" height="282" key="GridCell.Tab.0.left" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.left/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state width="1878" height="282" key="GridCell.Tab.0.right" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.right/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state x="441" y="95" key="SettingsEditor" timestamp="1585703966325">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="441" y="95" key="SettingsEditor/0.0.1920.1040@0.0.1920.1040" timestamp="1585703966325" />
</component>
</project>

View file

@ -0,0 +1,44 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>uk.ac.aber.cs22120.group20</groupId>
<artifactId>Welsh Vocabulary Tutor</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.1</version>
<configuration>
<mainClass>uk.ac.aber.cs22120.group20.App</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>

View file

@ -0,0 +1,7 @@
module uk.ac.aber.cs22120.group20 {
requires javafx.controls;
requires javafx.fxml;
opens uk.ac.aber.cs22120.group20 to javafx.fxml;
exports uk.ac.aber.cs22120.group20;
}

View file

@ -0,0 +1,27 @@
package uk.ac.aber.cs22120.group20.javafx;
import javafx.scene.Scene;
/**
* Programs main class that contains a list of the loaded dictionary definitions and is
* responsible for running the application.
* Launch class of the Welsh Vocabulary tutor Application
* @author Kain Bryan-Jones [kab74]
* @author Brad Corbett [brc9]
* @author Henry Dugmore [hjd3]
* @author Marcin Jakob [maj83]
* @author Tom Perry [top1]
* @author Oscar Pocock [osp1]
* @author Waylen Watts [ncw]
* @author Luke Wybar [law39]
* @version 0.1
* @See
*/
public class Application {
public static void main(String[] args) {
}
}

View file

@ -0,0 +1,20 @@
package uk.ac.aber.cs22120.group20.javafx;
/**
* Class that contains all the scenes for the JavaFX user interface and will be responsible
* for initiating the transition to new ones.
* @Author
* @Version
* @See
*/
public class ScreenSwitch extends SharedCodeController {
/**
* Method that is responsible for the switching between
* JavaFX, with it taking the new scenes name as a parameter.
*/
public void swap(SceneEnum newScene){
}
}

View file

@ -0,0 +1,12 @@
package uk.ac.aber.cs22120.group20.javafx;
/**
* Abstract class that contains all the shared FXML elements between the
* different controller classes including the sliding menu and the test score counter, to reduce code
* duplication. This will be extended by all the controller classes.
* @Author
* @Version
* @See
*/
abstract public class SharedCodeController {
}

View file

@ -0,0 +1,31 @@
package uk.ac.aber.cs22120.group20.json;
import java.io.*;
import java.util.*;
/**
* Contains functions responsible for saving and loading to and from the JSON file
* which will be provided by the user, using the Jackson JSON library.
* @Author
* @Version
* @See
*/
public class JSONProcessor {
/**
* Method for loading the list of
* dictionary definitions from a JSON file.
* @param dictionaryFile
*/
public LinkedList<WelshDictionary> load(File dictionaryFile){
}
/**
* Method for saving
* the list of dictionary definitions to a JSON file.
*/
public void save(File dictionaryFile, LinkedList<WelshDictionary> words){
}
}

View file

@ -0,0 +1,119 @@
package uk.ac.aber.cs22120.group20.json;
/**
* Class containing all the fields needed for storing dictionary definitions including
* Welsh and English translations along with its word type and whether its a practice word or not.
* @Author
* @Version
* @See
*/
public class WelshDictionary implements Comparable<WelshDictionary>{
private String welshWord;
private String englishWord;
private String wordType;
private boolean isPracticeWord;
private String practiceWord;
/**
* Default constructor for WelshDictionary.
*/
public WelshDictionary(){};
/**
*
* @param englishWord
* @param welshWord
* @param wordType
* @param isPracticeWord
*/
public WelshDictionary(String englishWord, String welshWord, String wordType, Boolean isPracticeWord){
}
/**
*
* @return
*/
public String getWelshWord(){
return welshWord;
}
/**
*
* @return
*/
public String getEnglishWord(){
return englishWord;
}
/**
*
* @return
*/
public String getWordType(){
return wordType;
}
/**
*
* @return
*/
public boolean isPracticeWord(){
return isPracticeWord();
}
/**
*
* @param welshWord
*/
public void setWelshWord(String welshWord){
this.welshWord=welshWord;
}
/**
*
* @param englishWord
*/
public void setEnglishWord(String englishWord){
this.englishWord=englishWord;
}
/**
*
* @param wordType
*/
public void setWordType(String wordType){
this.wordType=wordType;
}
/**
*
* @param practiceWord
*/
public void setPracticeWord(String practiceWord){
this.practiceWord() = practiceWord;
}
/**
*
* @param o
* @return
*/
@Override
public boolean equals(Object o){
}
/**
*
* @param welshDictionary
* @return
*/
@Override
public int compareTo(WelshDictionary welshDictionary) {
return 0;
}
}

View file

@ -0,0 +1,57 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
import java.util.LinkedList;
/**
* Class that contains methods to create a randomised list of questions that will
* contain a random distribution of question types.
* @Author
* @Version
* @See
*/
public class AssessmentGenerator extends Question{
/**
* Method that will generate a randomized list of questions consisting of random distribution of questions
* types, using the dictionarys practice words as the parameter.
* @param wordList
* @return
*/
public LinkedList<Question> generateAssessment(LinkedList<WelshDictionary> wordList){
}
/**
* Method
* that will generate a list of questions that are the type Match The Meanings, using the dictionary's
* practice words as the parameter.
* @return
*/
public LinkedList<Question> generateWordMatch(LinkedList<WelshDictionary>){
}
/**
* Method
* that will generate a list of questions that are the type 6 Meanings, using the dictionary's practice
* words as the parameter.
* @return
*/
public LinkedList<Question> generateSixMeanings(LinkedList<WelshDictionar>){
}
/**
* Method that
* will generate a list of questions that are the type Translation, using the dictionary's practice words as
* the parameter.
* @return
*/
public LinkedList<Question> generateWordEnter(LinkedList<WelshDictionary>){
}
}

View file

@ -0,0 +1,24 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
/**
* Abstract class contains the basic information that all the shared information between the
* types of test questions including the questions correct answers and possible answers. All question
* classes will extend this class.
* @Author
* @Version
* @See
*/
public class Question {
/**
* Constructor for
* WordEnterQuestion that takes a WelshDictionary object that is being tested on as the parameter.
* @param correctAnswer
*/
public wordEnterQuestion(WelshDictionary correctAnswer){
}
}

View file

@ -0,0 +1,26 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
/**
* Class that contains all the details needed for the Six Meanings question
* type, including the correct answer along with the five other possible answers. This class will be used by
* the AssessmentGenerator and extends the Question class.
* @Author
* @Version
* @See
*/
public class SixMeaningsQuestion extends Question {
/**
* Constructor for SixMeaningQuestion that takes one WelshDictionary object that is being
* tested along with the full list of words which will be used to generate randomized possible answers as
* the parameters.
* @param correctAnswer
* @param dictionary
*/
public sixMeaningQuestions(WelshDictionary correctAnswer, LinkedList<WelshDictionary> dictionary){
}
}

View file

@ -0,0 +1,25 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
/**
* Class that contains all the details needed for the Translation question type,
* including the practice definition that is being tested. This class will be used by the
* AssessmentGenerator and extends the Question class.
* @Author
* @Version
* @See
*/
public class WordEnterQuestion extends Question{
/**
* Constructor for
* WordEnterQuestion that takes a WelshDictionary object that is being tested on as the parameter.
* @param correctAnswer
*/
public WordEnterQuestion(WelshDictionary correctAnswer){
}
}

View file

@ -0,0 +1,25 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
/**
* Class that contains all the details needed for the Match the Meanings
* question type, including the 4 different practice definitions. This class will be used by the
* AssessmentGenerator and extends the Question class.
* @Author
* @Version
* @See
*/
public class WordMatchQuestion {
/**
* Class that contains all the details needed for the Match the Meanings
* question type, including the 4 different practice definitions. This class will be used by the
* AssessmentGenerator and extends the Question class.
* @param correctAnswers
*/
public WordMatchQuestion(WelshDictionary[] correctAnswers){
}
}

View file

@ -0,0 +1,28 @@
package uk.ac.aber.cs22120.group20.test;
/**
* Class that contains methods which will be used to test that the JSON package classes are
* correctly loading and saving to and from the JSON file.
* @Author
* @Version
* @See
*/
public class JSONTest {
/**
* JUnit test to check that the JSON file has been correctly loaded.
*/
@test public void testLoad(){
}
/**
* JUnit test to check that any changes to the list of definitions are
* updated and saved to the JSON file accordingly.
*/
@test public void testSave(){
}
}

View file

@ -0,0 +1,54 @@
package uk.ac.aber.cs22120.group20.test;
/**
* Class that contains methods to test that the application class is correctly storing the full
* list of dictionary definitions.
* Furthermore, this class will also test that the elements such as the sliding menu and score counter are
* working as intended, along with testing that scenes are ending and transitioning correctly when
* applicable.
* @Author
* @Version
* @See
*/
public class JavaFXTest {
/**
* Tests to confirm that the dictionary definitions loaded match to an
* identical base set.
*/
@test public void testDefinition(){
}
/**
* Test to confirm that the user score counter correctly increases
* by increments on one.
*/
@test public void testScoreCounter(){
}
/**
* A preset search test to confirm that words are being searched for
* correctly.
*/
@test public void testFindWord(){
}
/**
* A test to check that a new word is correctly added and saved to
* the JSON file.
*/
@test public void testAddWord(){
}
/**
*A test to check that the JSON file is correctly updated when a
* word is removed.
*/
@test public void testRemoveWord(){
}
}

View file

@ -0,0 +1,36 @@
package uk.ac.aber.cs22120.group20.test;
/**
* This class will test that the lists pulled in the self-assessment package are indeed
* random, while also pulling the matching data from the dictionary.
* @Author
* @Version
* @See
*/
public class SelfAssesmentTest {
/**
* Test to confirm that the random number return is working
* correctly.
*/
@test
public void testRandomReturn(){
}
/**
* Test to check and confirm that the game types are
* either made available or are locked off depending on the number of practice list questions.
*/
@test
public void testAvailableSelfAssessment(){
}
/**
* Test that will check that an input by a user is correctly checked
* to the correct answer.
*/
@test
public void testUserAnswer(){}
}

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.PrimaryController">
<children>
<Label text="Primary View" />
<Button fx:id="primaryButton" text="Switch to Secondary View" onAction="#switchToSecondary"/>
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.SecondaryController">
<children>
<Label text="Secondary View" />
<Button fx:id="secondaryButton" text="Switch to Primary View" onAction="#switchToPrimary" />
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.PrimaryController">
<children>
<Label text="Primary View" />
<Button fx:id="primaryButton" text="Switch to Secondary View" onAction="#switchToSecondary"/>
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.SecondaryController">
<children>
<Label text="Secondary View" />
<Button fx:id="secondaryButton" text="Switch to Primary View" onAction="#switchToPrimary" />
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

18
dev/20200421/kab74/issues Normal file
View file

@ -0,0 +1,18 @@
* sharedCodeController description is different in classes than design spec.
* Design spec "public" is with lower case p.
* Design spec when listing function names shouldn't end with semicolon
* Changed setters and getters and field variables in WelshDictionary to comply
more with QA9's point on real word objects.
* What is SceneEnum? I can't find it anywhere. And is that really a good name?
* I Renamed self-assessment package because java doesn't allow '-' in name of package.
* TestUser in design spec has no brackets.
* TestFindWord also has no brackets
* No description for class 4.2.2
* 4.2.2 changed 'words' to 'wordList' to comply with QA9 real word object point.
* Rearanged authors on 'Application' to be alphabetical by surname.
* 4.2.4 it is illegal to state an array size in method signature(Design spec).
* WelshDictionary setter/getter for practice word should check whether the word
is a practice word first.
* WelshDictionary wordType should be an Enum.

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="Encoding"> <component name="Encoding">
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component> </component>

View file

@ -4,7 +4,7 @@
<CLASSES> <CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.9.4/jackson-databind-2.9.4.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.9.4/jackson-databind-2.9.4.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/Jackson-core/2.9.4/jackson-core-2.9.4.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.9.4/jackson-core-2.9.4.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />

View file

@ -7,5 +7,5 @@
</list> </list>
</option> </option>
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_13" project-jdk-name="13" project-jdk-type="JavaSDK" /> <component name="ProjectRootManager" version="2" languageLevel="JDK_13" project-jdk-name="11.0.6 (2)" project-jdk-type="JavaSDK" />
</project> </project>

View file

@ -12,12 +12,12 @@
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="com.fasterxml.jackson.core:jackson-databind:2.9.4" level="project" /> <orderEntry type="library" name="com.fasterxml.jackson.core:jackson-databind:2.9.4" level="project" />
<orderEntry type="library" name="Maven: org.openjfx:javafx-controls:11" level="project" /> <orderEntry type="library" name="Maven: org.openjfx:javafx-controls:11" level="project" />
<orderEntry type="library" name="Maven: org.openjfx:javafx-controls:win:11" level="project" /> <orderEntry type="library" name="Maven: org.openjfx:javafx-controls:linux:11" level="project" />
<orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:11" level="project" /> <orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:11" level="project" />
<orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:win:11" level="project" /> <orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:linux:11" level="project" />
<orderEntry type="library" name="Maven: org.openjfx:javafx-base:11" level="project" /> <orderEntry type="library" name="Maven: org.openjfx:javafx-base:11" level="project" />
<orderEntry type="library" name="Maven: org.openjfx:javafx-base:win:11" level="project" /> <orderEntry type="library" name="Maven: org.openjfx:javafx-base:linux:11" level="project" />
<orderEntry type="library" name="Maven: org.openjfx:javafx-fxml:11" level="project" /> <orderEntry type="library" name="Maven: org.openjfx:javafx-fxml:11" level="project" />
<orderEntry type="library" name="Maven: org.openjfx:javafx-fxml:win:11" level="project" /> <orderEntry type="library" name="Maven: org.openjfx:javafx-fxml:linux:11" level="project" />
</component> </component>
</module> </module>