Inspiration
You walk out of class. You have 8 minutes. You forget everything you just learned.
We wanted to fix that. The app is literally named after that window of time which is the passing period. The idea was simple, you can easily snap a photo of the whiteboard, and by the time you reach your next class, you've already been quizzed on it.
What it does
Snap a photo of a whiteboard or slide. The app reads the text and saves it as a note automatically. Get quizzed out loud, the app reads questions to you and you just answer by talking. No typing. See your schedule pulled directly from Canvas so you know when your next class is. Explore a 3D map of all your notes and how they connect to each other.
How we built it
Apple's built-in OCR to read text from photos + Gemini 2.5 flash/pro ocr Gemini to clean up messy notes and generate quiz questions ElevenLabs to read the questions out loud in a natural voice Apple Speech Recognition to hear your spoken answers Canvas API to pull in your real class schedule SceneKit for the 3D knowledge graph
Challenges we ran into
Getting the AI to return clean, parseable data instead of random extra text took a lot of trial and error with how we phrased our prompts. SceneKit kept stealing keyboard focus from the rest of the app in a weird undocumented way. Fixed it by subclassing the view and overriding one method. The quiz has three things happening at once, audio playing, mic listening, AI evaluating, and keeping them from stepping on each other was tricky. We solved it by giving each quiz session a unique ID so old callbacks know to ignore themselves. Canvas schools use different URL formats and we had to handle both.
Accomplishments that we're proud of
The whole note-to-quiz flow can take under 20 seconds from photo to first question. The quiz is completely hands-free after you tap start. API keys are stored in the iOS Keychain so nothing is hardcoded.
What we learned
Writing good AI prompts is its own skill (many saas companies nowadays rely on specific and well thought out system prompts. Being specific about the exact format you want back makes everything more reliable. On-device AI (Apple's OCR, Speech) is fast and free, we can use it first, then cloud AI second. Having a clear list of possible states for a feature (like the quiz: idle, speaking, listening, evaluating, done) makes it way easier to build and debug and handoff to others.
What's next for PassingPeriod
For the future of PassingPeriod, we plan to replace ElevenLabs with Gemini 3.1 Flash text-to-speech, leveraging direct WebSocket streaming for expressive, low-latency audio. We are also reworking the UI to support multiple themes and improved usability, while expanding our integrations beyond Canvas to include Blackboard and Google Workspace.
Finally, we are introducing iterative, compounding testing, after a student completes a quiz, the system will process results to generate adaptive questions that scale in difficulty to rapidly close knowledge gaps. This will be supported by push notifications featuring active test reminders and automated content analysis for study guides based on performance.
Log in or sign up for Devpost to join the conversation.