Academic
Poetry Assistant CLI (ADS1 Midterm)
2026 · 4 weeks
Grade · 81/100
About this project
A command-line rhyme assistant built in Node.js for CM1035 Algorithms and Data Structures 1 midterm (University of London). Reads a word from the terminal and returns rhyme candidates using two complementary algorithms plus a merged view. Features: 📖 Suffix matching against a plain-text word list using custom stack and queue data structures 🔊 Phonetic matching against the CMU Pronouncing Dictionary (ARPAbet), comparing the last three phonemes of each entry 🔀 Merge step interleaves the two sorted candidate lists into a single sorted array ⚙️ Built on Node `readline` + `fs` only — no external dependencies 🧠 Vowel- and consonant-final suffix extraction via tokenised character streams Going beyond the spec: - Two independent matching algorithms (orthographic + phonetic) with a merged view, not just one - Hand-rolled stack and queue implementations rather than built-in arrays - CMUdict header-skipping logic that respects the standard first-entry marker
Tech stack
- Node.js
- JavaScript
- Data Structures
- Algorithms