Existing language learning platforms have pitfalls that make them unsuitable for use in the classroom. As described to me by a teacher in the school’s languages department, “very few allow for efficient setting of tasks by teachers for students to complete”. Additionally, the current method of weekly vocabulary tests in the department encourages cramming as a study mechanism, instead of encouraging students to build long-term memory retention. Some existing solutions are not free for students, contain ads or are not available on the correct platforms. The science behind existing solutions is also unproven; platforms may not be founded on scientific research, instead prioritising business objectives.

The aim of this project is to produce a language learning platform capable of helping students revise for vocabulary tests. The solution uses theory from the field of educational psychology (e.g., spaced repetition) to schedule vocabulary optimally in order to improve the platform’s effectiveness. Addressing the problems above, teachers should be able to set specific tasks for their students to complete.


My platform has three main components:

  • A React.js based web app for staff to set vocabulary lists.
  • A SwiftUI based iOS app for students to revise vocabulary.
  • A .NET based server with a MySQL database, hosted on AWS.

Features include:

  • Intelligent marking of student responses via a weighted edit distance calculation and staff multiple-answer syntax.
  • A Leitner queue network for scheduling questions within a session.
  • Estimation of probability of successful recall to efficiently present optimum vocabulary to review.
  • iOS push notifications.
  • JSON Web Token authentication via Microsoft sign-in.

Through this project and the write-up, I was able to achieve 100% in my coursework grading.