The client and advisor Amaha Ayaka is currently teaching introduction level Japanese in the Japanese Culture Foundation. She explained to me that the students in her class are having problem memorizing the kanji words, which is more complex alphabet than normal 26 letter Hiragana. She told me that when she teaches them the kanji letters student don’t have problem understanding the meaning but after one day they forget the letter or stroke order. She told me that this occurs because the student are young thus does not study at home. She asked for a computer game that challenges students ability to memorize kanji’s.
As the user of this educational software will be young students I suggested creating a game which involves competition which hopefully create ambition among students. This could be done by point mechanism and rewarding. In addition to that every question has time limit based on its level of hardness. We gathered at a café and Miss Ayaka stated that she liked the solution she also asked for a teacher interference which allows her to enter new kanji beside the pre-established kanji questions. The detail of the meeting is at Appendix.
-
At the home page there should be 2 types of user accepted (student and teacher).
-
The teacher button should lead to four main options: Home, Levels, Questions, Users
-
The student button should lead two main options: home and game where the game could be selected in accordance to wanted levels by the student. The games should consist of multiple choice and written questions.
-
Teacher should be able to create, edit and delete questions.
-
Student could play the game and see his/her result on the table.
-
Teacher could create as many level as he/she wants.
- Netbeans 11.1 Used for developer IDE
- Java 8 JDK Needed JDK for GlassFish 5.1.0
- Java 12 JDK For developing the app
- Apache Derby Database Database Server for web Application (storing data)
- GlassFish Server 5.1.0 Web Server for publishing web application
- JavaServer Faces (JSF) 2.3 UI library for Java Server Faces Free and rich UI components for Java Server faces.
- Java Persistence API (JPA) 2.0 Entity classes from the database, and manage transactions. (the default persistence provider for the GlassFish server.)
- PrimeFaces UI Components
- Enterprise JavaBeans (EJB) 3.1 stateless EJBs with the entity classes and the business logic for the application
Database Table Description Relations
- Levels: The program's question level informations are stored. Level name, Level time and Level order is stored. -
- Questions: Information on question is stored. The table consists of level id, question image and text, question types and question point. It has a foreign key relations to Levels table.
- Results: Results on user id, question id, Level ID points for that level, answers to the questions and the outcome of the answered questions will be stored.
- Users: Users first name, Surname, user Name, password and user type (teacher or student) is stored.
While developing the program two wizard has been used.
- The first wizard is “Entity Classes from Database wizard” With this entity classes has been created.
- The second wizard is “JSF Pages from Entity Classes wizard”, default web pages has been created.
Below there are the HTLM codes for Levels page’s list page. The data and the colons for the Database web component are structuralized like in the example. The graphical side of the program is fairly basic and it meets the need of the client which is stated as basic and user friendly. In addition to that as I expect lots of students will use this program, I added basic sorting algorithms to sort the data that has been created by students. For example it is expected that abundant amount different users will play the first level of JapKanji therefore there will be lots of different points accumulated by different users. At this point by utilizing user friendly sorting boxes the user could select his/her own ID to find his her own result. Furthermore if there are overwhelming data created by that user(by playing multiple levels), the user could double sort: selecting his/her own id and the level that he/ she wants to see.
JSF page: admin user Html Codes
The Graphical User Interface html codes are obtained by prime face as a template. However as shown below these templated are modified and manipulated to be able to use and integrate to our backend java codes.
Recording Test Results
In order to record the answers that the students gave I created the TestResults class. In this class there are methods that save the results to the database. In order to restrict the amount of data that could be added to the database I restricted the insertion of redundant data. This is accomplished by deleting the old result when the level is played again. For example if one of Miss Ayaka’s student decides to play the level 1 again the old result is deleted and the new data is written on the database. In addition to that there is a distinction created for true and false answers. As the program test whether the chosen answer is correct or false by if statement, the result is saved to SaveNewResult() according to whether it is true or false. At the diagrams those methods are revealed.
At the end of SaveResult function there is CreateEditResult() function which is used record to database.
This function is used for recording new results. The if statement is used because we want to distinguish between correct and false answer
DeleteOldResults function is responsible for deleting the old results.Currently the product has two types of game for each levels: Multiple choice and short answer. While creating the question I allow the teacher to add text and picture to the questions. Then the teacher has to add the answer. One possible development could be adding different types of games. The developer could for example add matching type of question which would ensure the student to learn more kanji’s.
- Generating a JavaServer Faces 2.x CRUD Application from a Database :Netbeans Documentation_
- Netbeans Primefaces CRUD Generator Tutorial : CRUD Tutorial_
- Working with the Java DB (Derby) Database:Java Database_
- Installing and starting GlassFish server :GlassFish Server_
- JDK 12: JDK12 documentation_
- JDK 8:JDK8 documentation_
- NetBeans IDE:NetBeans IDE_