Project context
I enjoy doing cognitive challenges occasionally, especially during my commutes when there's nothing else to do. There are numerous websites online that offer cognitive tests like the Chimp Test, Verbal Memory Test, Sequence Memory Test, and more.
However, I've often been frustrated with the tests provided by these websites for the following reasons:
- Most of them have annoying ads that disrupt concentration during the tests.
- Many websites lack a mobile version of their tests or are not optimized for mobile connections.
- They don't allow customization of parameters such as the number of mistakes allowed before ending the game, or adjusting the test difficulty where applicable.
- Frequently, I found the user experience to be less than satisfactory.
So, I decided to develop my own product to address the issues described above. Additionally, I wanted to explore using Angular Material CDK independently of Angular Material styling, which presented a good opportunity to do so
Cognitive tests
Currently, there are 5 tests available on Cognitive Gym.
The Calculation Speed Test measures how many calculations you can complete within a time slot. In this test, you will be presented with addition, subtraction,division, and multiplication equations to solve. There is no penalty fo incorrect answers, and each correct response will earh you a point towards your score.
The test will conclude once the allotted time is exhausted. By default, you are granted 1 minute to solve as many equations as you can. However, you have the option to adjust the test settings and select from time intervals of 30 seconds or 3 minutes. Additionally, you can choose between easy and hard difficulty modes.
The Chimp Test is a test of working memory for numerals, made famous by a study at the Primate Research Institute at Kyoto University that found chimpanzees can outperform humans on this task. You can watch a chimpanzee taking the test in this YouTube video .
For this test, you will be presented with a set of numbers in random positions, and your task is to click on them in ascending order value.Successfully completing a level results in an increase in the total number of digits, while failing results in receiving a strike.
The Sequence Memory Test evaluates your capacity to recall sequences.
Memorize the sequence of squares that change their color to yellow, then press them in the correct order. With each successful completion of the pattern, it extends further.
The test ends after three errors, although you have the option to adjust this setting to conclude after 2 or even 1 error in the settings.
The Spatial Memory Test is designed to evaluate your visual and spatial memory capabilities. Your task is to recall the positions of as many symbols on the board as you can.
First, you'll need to memorize the symbols and their positions on the board. Then, when you click Shuffle Symbols, the symbols will be rearranged into a random order, putting your memory to the test.
Your goal is to rearrange them back into the correct order, aligning with your initial memory. Successfully completing a level will result in an increase in the total number of symbols, making each level more demanding. However, failing to restore the correct order will earn you a strike.
The Verbal Memory Test assesses your ability to simultaneously retain as many words as possible in your short-term memory.
Click Seen if a word was previously shown to you during the test, or click New if it was not. You will earn one point for each correct answer. The test concludes after three errors, but you can customize this setting to end after 2 or even 1 errors in the settings.
Final thoughts
I find this app functional and enjoyable to use. It's mobile-friendly and utilizes lazy loading to enhance performance. However, it still has a lot of room for improvement. I've identified several UX issues that need addressing, and I'm planning to redo some parts of the app in the near future. Additionally, I'm considering transitioning it from a single-page application (SPA) to one that uses static rendering for two main reasons:
- It has the potential to improve Time to First Byte (TTFB), First Contentful Paint (FCP), and Interaction to Next Paint (INP).
- It could enhance SEO since SPAs are not well-indexed by search engines.
Throughout the development process, I've had a positive experience working with Angular Material, Angular Material CDK, and RxJS, which have all contributed to the app's functionality and user experience.
Overall, I've had a rewarding experience with this project and look forward to working on version 2 of the Cognitive Gym App.