Inspiration
The name Hermann is a tribute to Hermann Ebbinghaus, the German psychologist who pioneered the study of memory and discovered the famous "forgetting curve" in the 1880s. His research showed that without reinforcement, we forget approximately 70% of what we learn within 24 hours.
As students and lifelong learners, we've all experienced the frustration of cramming for exams only to forget everything shortly after. Traditional study methods are inefficient—they don't account for how human memory actually works.
I was inspired to build Project Hermann after realizing that:
Active recall (testing yourself) is far more effective than passive re-reading Spaced repetition can combat the forgetting curve by reviewing material at optimal intervals AI has matured enough to generate quality educational content instantly The question became: What if we could combine cutting-edge AI with proven cognitive science to create a study tool that actually works with your brain, not against it?
What I Learned Building Project Hermann was a deep dive into several domains:
Cognitive Science Implemented the SM-2 (SuperMemo 2) algorithm for spaced repetition scheduling:
AI Integration Learned to craft effective prompts for generating educational content (MCQs, explanations, images) Handled edge cases like rate limiting, context length, and response parsing Discovered the importance of structured JSON outputs for consistent AI responses Full-Stack Development Mastered serverless architecture with Edge Functions Implemented secure authentication flows with email/password and Google OAuth Set up automated workflows with pg_cron for scheduled email digests
Challenges Faced
- AI Response Parsing AI models don't always return perfectly formatted JSON. I had to implement robust parsing logic to handle:
Markdown code blocks wrapping JSON Malformed responses requiring fallback extraction Rate limiting and usage quota handling
- Spaced Repetition Accuracy Implementing SM-2 correctly required careful attention to edge cases:
What happens when a user fails a review? (Reset to day 1) Minimum ease factor to prevent intervals from shrinking too fast (1.3) Proper date/time handling across timezones
Automated Email Scheduling Setting up pg_cron with pg_net for automated Edge Function calls required understanding PostgreSQL extensions and proper HTTP request formatting from within the database.
Authentication State Management Race conditions between session checking and auth state listeners were tricky. The solution was to set up the listener before checking for existing sessions:
Dark/Light Mode Theming Creating a cohesive design system that works in both themes while maintaining accessibility required careful color token management and contrast testing.
What's Next Mobile app with push notifications for review reminders PDF/document upload for automatic content extraction Collaborative study groups with shared topic pools Analytics dashboard showing learning patterns and memory strength
Built With
- gemini
- postgresql
- react
- supabase
Log in or sign up for Devpost to join the conversation.