Kory Kekewich
← All projects

Kanrabat

From classroom notes to daily French practice.

A Canadian French practice app built for my class and used by my classmates.

Deployed

At a glance

The need

Practise our class material between lessons.

What I built

Exercises, scheduled review, and a contextual AI tutor.

My role

Product design, React development, grading, and AI integration.

Built with

React + Vite
Phone-first learning interface.
Node.js + Vercel
Serverless tutor routes and session checks.
Anthropic API
Lesson-aware explanations.
localStorage
On-device learning history and progress.
Web Speech API
French audio playback, voice availability permitting.
Node checks
Grading, identity, and review tests.

Product preview

App screenshots from Niveau 2 (Level 2), shown in phone frames.

Engineering decisions

Fair answer checkingI accept authored alternatives and check verb forms before forgiving a typo.
Challenge
Exact matching rejects valid French. Loose typo matching can accept the wrong verb form.
Outcome
The grading checks reject 84 tested verb-form confusions while preserving the class's accepted alternatives.
Review that remembersI gave learning items distinct identities and used their attempt history to build a staged review queue.
Challenge
The same sentence can appear in different exercises or carry different meanings. Its learning history must not get mixed up.
Outcome
Practice feeds an on-device review schedule. Identity and scheduling checks cover the logic; review intervals remain provisional.
A tutor with lesson contextI send the exercise, both answers, and the relevant rule to Claude through a server-side API with session checks and request limits.
Challenge
A general chatbot does not know which answer a learner gave or what their class has taught.
Outcome
Learners can ask why an answer was wrong without rebuilding the context themselves. AI explanations can still make mistakes.
How AI is used

Explanations with context

The tutor uses the Anthropic Messages API with authored lesson facts and conversation history. It is contextual prompting, not retrieval-augmented generation or an autonomous agent. Server-side sessions, request limits, and token limits constrain access and usage, but do not guarantee a spending ceiling or error-free answers.

My contribution

I designed and developed Kanrabat around my own Canadian French course, covering the interface, curriculum data, grading, review scheduling, server-side AI integration, regression checks, and deployment. Development included AI-assisted coding tools.

Where it stands

Used by my classmates and me.

Continuing to improve alongside our Canadian French course.

Next step

Keep developing the app alongside my own French learning, with classroom use informing what comes next.

View next project