Inspiration

Students often lose important ideas during class because they are busy writing instead of listening. I wanted to solve that problem by creating a study companion that lets students focus on understanding the lecture while the system handles the work of capturing, organizing, and turning that information into useful study material.

What it does

NoteWorker captures classroom speech through two paths: a live transcript for immediate feedback and recorded audio segments for a more accurate final transcript.

While recording, students can edit transcript lines, add personal instructions, and continue learning without interrupting the session.

After the session, NoteWorker cleans and organizes the transcript into structured notes, summaries, flashcards, and practice questions. Students can also search their saved notes and ask Zoriya questions about their own study material.

The goal is simple: spend less time rewriting notes and more time understanding what was taught.

How I built it

NoteWorker was built as a full-stack application using Next.js, Firebase Authentication, PostgreSQL with pgvector, and multiple language model APIs.

The application combines live transcription, recorded audio processing, transcript editing, AI-powered note generation, search, and study tools into a single workflow.

For authentication, the app supports Google, Microsoft, and email/password sign-in. Server-side authentication is used to protect user data.

For AI reliability, multiple providers and fallback keys are used so the application can continue operating when a provider becomes unavailable or reaches a rate limit.

Development Timeline

NoteWorker was developed during a focused 5-day window.

The work was organized around the main development stages:

Planning & architecture — defining the study workflow and application structure Core application development — building the frontend, authentication, data layer, and study experience AI and transcription workflow — integrating live transcription, recorded audio processing, and AI-powered study generation Integration & testing — connecting the different parts and fixing issues across the workflow Deployment & submission preparation — deploying the application, preparing the public repository, documentation, and demo

Challenges I ran into

The biggest challenge was combining live transcription, recorded audio processing, editing, and AI note generation without interrupting the recording experience.

Another challenge was making the AI pipeline reliable. Different providers can have different limits and availability, so the application was designed with multiple providers and fallback keys instead of depending on a single model provider.

I also had to make sure the generated material remained organized and useful rather than simply producing large blocks of AI-generated text.

Accomplishments that I'm proud of

I am proud that I was able to turn the idea into a working end-to-end study workflow instead of building only a standalone AI chatbot.

The project brings together live capture, transcript editing, AI processing, structured notes, flashcards, practice questions, search, and study assistance in one application.

I am also proud of the multi-provider AI fallback approach, which makes the system more resilient when a provider is unavailable.

What I learned

This project taught me that useful AI products are not only about generating text — the workflow around the model matters just as much.

Capturing the right input, keeping the user in control, organizing the output, handling unreliable services, and making the result easy to study are all equally important parts of building a useful AI application.

What's next for NoteWorker

The next step is to make the learning experience even more personalized.

I want to improve the accuracy and reliability of transcription and AI-generated study material, expand the study workflows, and make the system better at adapting generated notes, quizzes, and learning recommendations to each student's needs.

Built With

Share this project:

Updates

Submission history