Inspiration

Computer science imposter syndrome inspired Week by Week. Progress can feel blurry when you are living through it, especially when you are focused on what you still do not know. We wanted a journal that lets you revisit earlier versions of yourself and clearly see how far you have come.

What it does

Users can record a video journal or write a text entry. The app captures browser speech-to-text while recording, asks optional live reflection or learning-baseline questions, and saves the video with its transcript. After recording, Gemini creates a final analysis with a detailed summary, quick recap, takeaways, emotions, important events, growth signals, and future revisit cues. The app can later compare a new journal entry with older entries to suggest meaningful revisits, such as looking back at a first day in a new program, job, or skill.

How we built it

We built the frontend with React and Vite, and the backend with Flask. Browser APIs handle webcam recording, microphone access, WebM video creation, and live speech recognition. Flask receives the completed recording and transcript. Videos are stored in TiDB as database chunks, while structured journal data is stored in related TiDB tables. Gemini analyzes the transcript, generates embeddings for future similarity matching, and creates optional live questions. Final analysis runs through a persistent TiDB-backed queue so video saving stays responsive and temporary Gemini failures retry automatically.

Challenges we ran into

One challenge was making recorded WebM videos play correctly after being stored as database chunks and streamed back through Flask. We also had to handle Gemini rate limits, temporary model availability errors, and a retired embedding endpoint. We solved this with model fallback, automatic retries with backoff, and a durable queue stored in TiDB. Another challenge was preventing generic AI questions. We refined the prompting so questions respond to the actual conversation and can ask useful baseline questions when someone starts a new course, role, or skill.

Accomplishments that we're proud of

We built a complete flow from webcam recording to database storage, transcription, AI analysis, and playback.

What we learned

We learned how to work with browser media APIs, speech recognition, React and Flask integration, TiDB storage, Gemini prompting, embeddings, and asynchronous job processing. We also learned that reliable AI features need good failure handling. A useful app has to handle unavailable APIs, retries, missing transcripts, and playback issues without losing the user’s recording.

What's next for app log

Next, we want to finish the revisit system so users automatically receive relevant past recordings when they hit milestones or discuss related goals.

Share this project:

Updates

Submission history