10 / 15 PROJECT

Every project

Language Learning App

A Ruby on Rails language learning app built for a real client as a university project, with user and admin dashboards, spaced repetition and a Postgres schema underneath.

Read the sourceWrite-up

Phonetical's learner home: streak, trip countdown, and the phonetic vocab list.
May 2025
delivered
Rails
on Postgres
2
dashboards, user and admin

A real client brief

The client was real. The deadline was academic. This was built at university, with requirements gathered up front and regular meetings running through the build, which is a different discipline from a coursework spec handed over finished. It was a team build rather than a solo one, and it was delivered in May 2025.

Two roles, one schema

Access splits into user and admin dashboards, so what a learner sees and what an administrator sees are separate surfaces over the same Postgres data. Media is not dropped in a folder beside the app: it is attached to records through ActiveStorage, so each file belongs to the row that uses it. The schema is relational, and the record calls it secure.

A fixed list shows every item the same number of times, whether or not the learner needs it.

Scheduling the next review

Progress tracking carries spaced repetition logic. A fixed list shows every item the same number of times, whether or not the learner needs it. Spaced repetition schedules each item by how well it is already known, so the words that keep going wrong come back sooner and the ones already learned stop taking up the session.

The app itself

The delivered app is called Phonetical. The learner home carries a day streak, a countdown to the trip the vocabulary is for, and a vocab list where each row gives the phrase respelled phonetically next to its English meaning, with the Spanish spelling behind a toggle and playback at normal or slower speed. Bold marks higher pitch and underline marks emphasis, so the list carries how a phrase sounds and not only what it means.

The stack it lived on

Rails with HAML templates and Bootstrap, Rake for the tasks, GSAP for the component animations, and the whole thing developed on Windows through WSL. GitLab is in the stack list and the repository sits on GitHub. Figma held the designs. There is no live demo, so the repository and the screenshot are what is left rather than a link.

What it does

  1. Role‑based user & admin dashboards
  2. Progress tracking & spaced repetition logic
  3. Media asset handling via ActiveStorage
  4. Real client requirement gathering process
  5. Component animations powered by GSAP
  6. Secure Postgres relational schema

Built with

  • Ruby on Rails
  • PostgreSQL
  • ActiveStorage
  • HAML
  • Bootstrap
  • ShakerPacker
  • Rake
  • GSAP
  • WSL
  • Gitlab
  • Figma