< BACK TO HOME

French Trainer App

2025

I recently moved to France and as such, I am attempting to learn French. I wanted to create an app that would help me learn French but also practice Full Stack Development skills. The idea is still evolving, but the current idea is to start with basic flashcards that can be stored in a database. Additionally, I want to support the NUMEROUS French verb conjugations for the great deal of practice I need to learn (and relearn...) them. Because I am interested in exploring LLMs further, I would also like to be able to interact with my flashcards using LLMs.

To track this project's progress, as well as inspect my code for the whole project, visit my github page.


Features

  • Flashcards: Database stored flashcards for verbs, adjectives, and basic vocabulary.
  • French Words Search: any form of a french verb conjugation and adjective forms.
  • Text-to-speech support for french words.
  • MCP Server for LLMs: supports connecting a MCP client like Claude Desktop to execute read only commands from our database.

The Stack

  • FastAPI for the Python backend API.
    • SQLModel for the Python SQL database model definitions (ORM).
    • SQLite for a lightweight database option. The plan is to switch to PostgreSQL in the future.
    • Alembic for database migrations.
  • React for the frontend.
  • Chainlit for the LLM ui. This works in conjunction with a local LLMs using Ollama.
  • Docker (+Docker Compose) for containerization and deployment of my frontend and backend.

This stack is subject to change as the project evolves. It is pretty simple at the moment and heavily influenced by FastAPI's Template.

Progress

Verb conjugations Page with create, search, flashcards, text-to-speech, and conjugation table.

Adjectives Page with create, search, text-to-speech, masculine vs feminine table.

Support for accessing read only commands for our database using an MCP Server. For example, we can use Claude Desktop to connect to our french trainer app. This allows us to use the app as a LLM powered flashcard app. The example below shows how we can use the app to search for a verb conjugation and get the correct answer.

To set this up for Claude Desktop, install the application and go to Settings->Developer->Edit Config (assuming you are running this app locally):

{
    "mcpServers": {
        "frenchtrainer-mcp-proxy": {
            "command": "uv",
            "args": [
            "tool",
            "run",
            "mcp-proxy",
            "http://127.0.0.1:8000/mcp"
            ]
        }
    }
}