In parallel to learning games development with Unity, I exerted myself to web development from a long time ago. It all started with pure JavaScript, front-end only project and evolved into full-stack development.
Learning With Text - LWT (2021)#
LWT’s logo
Without any doubt my biggest full-stack project so far, LWT is a massive web app that allows you to learn foreign languages by letting you read in the target language. It is open-source at hugofara/lwt.
LessonLearner (2018)#
LessonLearner was a Spaced Repetition System I did to learn Japanese words. It was 100% in JavaScript, and already a preface to what will become LWT.
TablatureToScore (2018)#
When I learned the guitar it was through tablatures, and I was frustrated not being able to play a tablature on the piano. So I developed a script translating a tablature into a score, and I had fun playing!
For LWT 2.9.0 (released December 2024), I replaced the old AJAX calls in LWT with a proper REST API. Here’s how the process went.
Learning REST Basics Before starting, I had to understand the core principles: REST uses HTTP methods (GET, POST, PUT, DELETE) to interact with resources identified by URIs, and communication is stateless.
Identifying Resources Server-side definition of AJAX endpoints: a bunch of files
The hard part with LWT was migrating without breaking anything. Until 2.9.0, every time a server resource was needed, a new AJAX file was created with no consistency. I started by inventorying all endpoints and the data they exposed.
...
I’m the developer of LWT-fork (or LWT, Learning With Texts), an app that allows you to read book in foreign languages. It is a big successor to LWT.
Original LWT logo
LWT, standing for Learning With Texts, allows to read texts in foreign languages from your browser, I built my version on top of the previous project of the same name, as I thought it could reach larger public.
Read in Target Language The idea is simple: let’s say you want to learn French, but you feel that it is too difficult to read because you lack vocabulary? We provide translations on click! Just import your text and the magic happens.
...