During my time as a Latin teacher, I taught 6th grade Latin in my colleague's classroom. He always had the NYTimes Spelling Bee board up on a side whiteboard. Students would write guesses throughout the day (and sometimes I would, too!).
I started thinking 'what if this were available in Latin?'. It became an early programming goal of mine to create a digital version of this puzzle playable in Latin, both for my own students and for other teachers to enjoy.
Examen Apium was born in April 2022! I launched it to my personal Facebook in a beta run, where it gained over 150 users in its first week. I have been making adjustments to it ever since, guided by the feedback of my dedicated, core userbase of Latin teachers. I hope to launch it to a wider audience very soon.
Everything you will need to play is on the site itself. Use the icons above (backspace, clear, shuffle letters, high scores, rules, contact) to navigate the game.
MongoDB, Node.js, HTML, CSS, Vanilla JS, Perseids web API
This was my first major project using APIs, so I learned a lot about promises and async/await. I also refactored the code a couple of times, trying to make it follow the principles of OOP more and more each time. I read quite a bit about OOP in my research for this project. This was also the first project that I sought developer feedback for (see pull requests), and I wish I had asked for feedback earlier! It is so helpful to get another pair of eyes on your work.
The most significant feature I am hoping to add is a 'total possible points' meter, with benchmarks for the player to reach at 25%, 50%, and 75%. This will give players more feedback as to how they are doing relative to the difficulty of the board they were generated. The original puzzle also has this feature, so users familiar with the original puzzle requested it. I cannot accomplish this with the currently available Latin APIs without sending an unreasonable number of API calls, so I am hoping to eventually host my own Latin dictionary backend for this app.
Along similar lines, there are some issues with the API I am using accepting English words that it should not accept, and rejecting Latin words that it should not reject. Having my own backend for this project will solve this issue as well.
In the more immediate future, I would also love to accept keyboard inputs on desktop.