Skip to content
All projects

Web

Funkey

Funkey turns typing practice into something you want to do. You type the lyrics of a song while it plays, play melodies on a keyboard piano, or practice with generated text, and it tracks your speed and progress.

Selected as one of the top 5 capstone projects in the ALX Software Engineering program.

Pick a song to type along with, filtered by level and genre
A profile with streaks, favorite genres and progress

01 / 05Pick a song to type along with, filtered by level and genre

Overview

Typing drills get boring fast, which is why many people never get past hunting for keys. Funkey swaps random words for things people already enjoy: song lyrics, music and text that reads like real sentences.

In lyrics mode a music video plays while you type the words in time with it. Practice mode gives you timed or word-count runs with live words per minute. Piano mode maps keys to notes so typing a melody plays it.

The first version was a full-stack Express and MongoDB app with accounts, song uploads and Gemini-generated practice text. It was later rebuilt as a React front end with a song gallery, leaderboard and profile pages.

Features

  • Browse songs by difficulty and genre, including Ethiopian music
  • Type lyrics in sync with the music video, with speed and volume controls
  • Timed and word-count practice runs with live words per minute
  • Choose the cursor style and add capitals, numbers or symbols
  • Play melodies in piano mode
  • Track streaks, favorite genres and progress on a profile and leaderboard

Challenges

  • Lining up lyric lines with the video by turning subtitle files into timed text
  • Handling fast keystrokes without dropped letters by tracking the cursor per character
  • Generating practice text with Gemini that suits the chosen level
  • Moving from server-rendered EJS pages to a React front end without losing features