For example, we generate (using rule-based) :
> Je mange une pomme
then we ask the engine to transform it to past and replace the pronoun:
> Je l'ai mangée
Then we compare with the user's answer.
I recently picked the project back up, thanks to AI coding tools and some free time I improved the UI, added more conventional bits (flashcards, dictation, progress tracking, etc). I kept the core of it: the rule-based sentence generator, because it allows to generate extremely fast locally and in a controlled way.
I pushed this new version on the same repository : https://github.com/Celebio/excuse-my-french
You can directly use the app here: https://excusemyfrench.org/
I hope you'll find it useful too. Very curious about your feedback, specially the onboarding part!