CL-Workshops 5/17 Pick One of X project 2
The goal of the game is is to educate the children with an interaction paradigm. In particular, the different levels in this application will help the children learn the 26 alphabets (lowercase + uppercase letters) along with its pronunciation. It will test the child’s ability to identify a particular stimulus from a number of options. The various levels in a set will have different difficulties (in terms of number of options). The set of options will always contain one correct option and the rest are foil options. Along with identifying the lowercase and uppercase alphabets, the options will also contain image and sound of various words for identification as the level increases.
Figure 2. Level 1 - Easier level with Lowercase/UpperCase letter.
Figure 4. On selecting the wrong option, it vanishes from the screen.
Figure 6. On receiving Full Score.
- React-Native Debugger
- Atom or Sublime
A JSON file is used to define what letter or word will appear on the different levels. It contains an object list which has a list of all the letters/words along with its respective location (either text, image, sound).It also contains a trial list which contains the data for each level - target word/letter, set of foils and correct word/letter, id, level id and other information specific to level.
The file is named pick_one.json and is located in the './js'.
All images used in this game are located in the './media' folder.
All sounds used in this game are located in the './android/app/src/main/res/raw' folder. The "tadaa.wav" sound is made as a positive feedback from one level to the other, as a sign of celebration.
The styles used in the game is found in the './style/styles.js' file.
Data Collection Functions
This app uses 2 of the 6 functions from Curious Learning Data Collection API (CuriousLearningDataAPI.js) to collect data so that application usage can be analyzed. The file is located in the './js/' folder.
reportResponse function is used to report the response of the user. In every level it sends the user's answer to a particular question, be it correct or not. It also tracks the amount of time spent to give a response.
reportScore function is used to report performance of the user at the end of the game in terms of the total score scored. This score is a cumulative score of the all the levels.
This project adopted the agile software methodology where the application was created and modified every 2 weeks from user stories and acceptance criteria.
Weeks 1 & 2:
Weeks 3 & 4:
The hands on coding started in React Native. The base of the game was started to getting built, few of which included render function, styles, layouts and transition from one page to another. More reading material was provided.
Weeks 5 & 6:
- The values from JSON file were plugged in as real time data
- React Native Sound was incorporated.
- Audio and Visual feedbacks were added
Weeks 7 & 8:
- A complete workflow was finished.
- A small round of usability testing was done and the feedbacks were incorporated.
- Implemented new suggesstions from the team.
Weeks 9 & 10:
- A quantitave system to measure the performance of the user was implemented. The scoring system allowed the user to test their knowledge.
- Data Collection API was implemented to allow important information of teh application to be collected - user response, score.
- The SCoring system was improved.
- Code clean up
- The project's README.md file was updated to provide background information to future developers who are interested in this project.
- The Curious Learning team for their material, suggestions and guidance
- this tutorial