Recently, the owner of a language school contacted me with the task of implementing a mobile application. He said that he would like to improve the efficiency of learning foreign words for his students.
In his opinion, one of the most effective ways to memorize foreign words is to use flashcards. Previously, he wrote flashcards for students by hand, but this often leads to the loss of the card and it is not possible to control the process of learning words.
Moreover, it is more efficient to enter your own list of words, and not just use standart list. It often happens that in the process of learning a language, student is faced with an interesting word, which must be learned and it is very useful to add this word in database right now. And you can learn it later.
I liked this idea because I know people who have learned several foreign languages with paper cards. In addition, this method is very convenient for memorizing special vocabulary and turns of speech before negotiating. I decided to run developing process.
The systems analyst wrote technical specifications for this project and I started coding.
The terms of reference had the following basic requirements:
- the system is located on the client's own server or on any hosting declared by the client;
- the system can be used as a SaaS solution;
- must support multiplayer mode;
- cross-platform with PWA support.
- the ability to learn foreign words using flashcards;
- each word is presented on the card, the user thinks about its translation and clicks flip, checking his answer;
- the choice of the language that the user wants to learn;
- viewing statistics and analytics, tracking your progress;
- the admin page, where you can add or remove users, manage permissions, the list of words of all users, as well as the list of sample words (a list of the most popular words in the language);
- the administrator should be able to track the progress of students;
- management of the most popular words. If the user does not want to create words manually, he can import the most popular words from the sample table;
- in the settings, the user sets the number of cards that he wants to study. And he gets the same list of words until he marks them as learned;
- by default, the words that were viewed by the user the least are displayed;
- in the settings, you can set the function, display words by the date they were added, starting from the most recent date;
- the ability to share a word with another user of the system.
As a result of the development, a standalone application was written that can be used to quickly learn new words. The backend uses Laravel 8 and php8. The application is a SPA, Vue.js with vue-router is used on frontend. Implemented as a PWA, in the future it is planned to release a full-fledged mobile application.
Customer was satisfied with the result of the work and implemented the Easy words APP service in his language school. After collecting feedback, I learned that the students were enthusiastic about the innovation and talk about the benefits and effectiveness of the service.
I liked the implementation of this project so much that in the end I myself began to maintain the level of English and German using the service I wrote.
You can find this project on Github. Also you can check demo presentation on youtube.