An LMS students can talk to, not just click through
1'use server';23export const createCompanion = async (formData: CreateCompanion) => {4 const { userId: author } = await auth();5 const supabase = createSupabaseClient();67 const { data, error } = await supabase8 .from('companions')9 .insert({ ...formData, author })10 .select();1112 if (error || !data) {13 throw new Error(error?.message || 'Failed to create a companion');14 }1516 return data[0];17}
Students query grades, courses, and timetables by voice instead of navigating multiple dashboards.
The problem
Students had to dig through separate portals for grades, attendance, and timetables — with no fast way to just ask a question.
Our approach
We built a learning management system where students talk to an AI voice tutor powered by OpenAI and Vapi, and get grades, attendance, and schedules back as natural-language answers.
Behind the build
Voice AI feels natural only when responses are fast enough that users stop thinking about the technology. Combining Vapi with OpenAI while keeping conversations responsive was the biggest technical challenge, and seeing users naturally ask questions instead of navigating menus made the product feel genuinely useful.
— North Foundry, on building this
Built with
Want something like this?
Next project