π₯ Demo Video: https://youtu.be/1WcWxWYDlo8?si=g8aWwUHi0QJ5CZUg
Blind and visually impaired college students face significant barriers when using traditional learning platforms β most study apps are not screen reader compatible, rely on visual cues, and donβt support voice-only control.
Existing accessibility tools are fragmented, forcing students to switch between multiple apps to study effectively.
The challenge:
How can we create a fully voice-driven, accessible learning experience that allows blind students to study hands-free, generate flashcards automatically, and navigate entirely through speech?
Braillience is an accessible learning platform designed specifically for blind and visually impaired learners.
It enables teachers to upload PDFs, automatically generate flashcards using AI, and study completely via voice commands β no mouse or screen required. Students start an in-browser voice session and converse with an AI tutor using their microphone and speakers.
Key Innovations:
- ποΈ Voice-First Learning Interface: Fully voice-controlled navigation for flashcards, tests, and progress tracking.
- π§ AI-Generated Flashcards: Letta Agents analyze uploaded PDFs to create structured study sets automatically.
- π£οΈ Seamless Voice Processing: The browser's built-in Web Speech API handles speech recognition and synthesis for real-time, natural voice interactions, at no per-minute cost.
Result: A hands-free, inclusive learning experience that empowers blind students to study independently.
Braillience/
βββ backend/ # Node.js API server
β βββ src/
β β βββ routes/ # API endpoints
β β β βββ auth.js # Authentication
β β β βββ upload.js # PDF upload & processing
β β β βββ flashcards.js # Flashcard management
β β β βββ voice-learning.js # Browser-based voice tutoring sessions
β β βββ services/ # Business logic
β β β βββ aiService.js # AI flashcard generation
β β β βββ voiceSessionService.js # Voice session logic & answer grading
β β βββ server.js # Express server
β βββ package.json
β βββ env.example
βββ frontend/ # React frontend application
β βββ src/
β β βββ components/ # React components
β β β βββ Dashboard.js/css # Main dashboard
β β β βββ VoiceTutor.js/css # In-browser AI voice tutoring session
β β β βββ Login.js/css # Authentication
β β β βββ Header.js/css # Navigation header
β β β βββ Footer.js/css # Footer
β β βββ contexts/ # React contexts
β β β βββ AuthContext.js
β β βββ hooks/ # Custom hooks
β β β βββ useVoiceCommands.js # Web Speech API recognition hook
β β βββ App.js/css # Main app component
β β βββ index.js/css # App entry point
β βββ public/ # Static assets
β β βββ index.html
β β βββ manifest.json
β βββ package.json
βββ docs/ # Documentation
βββ tasks/ # Project requirements
β βββ prd-braillience-flashcard-app.md
βββ start-demo.sh # Demo startup script
βββ README.md
- React 18 + TypeScript β Modern and accessible UI
- React Router β App navigation
- Framer Motion β Subtle motion for transitions
- Node.js + Express β API and logic layer
- Multer β PDF uploads
- JWT β Authentication
- Letta Agents β AI content generation
- Web Speech API β In-browser speech recognition and synthesis, free
- Letta File + Agent β Stateful learning assistance
- Gemini AI β Enhanced semantic understanding
- Claude Sonnet 3.5 - AI automation and structured calling
- Node.js 18+
- npm or yarn
-
Start Backend:
cd backend npm install npm start -
Start Frontend:
cd frontend npm install npm start -
Or use the demo script:
./start-demo.sh
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
- Navigation: "Start Learning", "Take Test", "Go Back"
- Learning: "Show Answer", "Next Card", "Previous Card", "Repeat"
- Testing: "Select A", "Select B", "Select C", "Select D"
- Speech-to-text for commands
- Text-to-speech for content
- Voice navigation throughout the app
- Screen reader compatibility
- PDF Upload: Upload documents to generate flashcards
- AI Generation: Automatic flashcard creation from content
- Learning Modes: Flashcards, multiple choice, typing
- Testing: Timed tests with scoring
- Progress Tracking: Learning analytics and statistics
- Voice Navigation: Complete control via voice in call
- Responsive Design: Works on all phones
- Offline Support: Continue learning without internet
- Multi-language: Support for various languages
- Login β Use demo credentials
- Dashboard β View progress and quick actions
- Learn β Practice with flashcards using voice commands
- Test β Take timed quizzes with voice selection
- Progress β Track learning statistics
- Clean separation between frontend and backend
- Modular components for easy maintenance
- Voice-first architecture throughout
- Accessibility-first design principles
frontend/src/App.js- Main React applicationfrontend/src/components/Dashboard.js- Main dashboard with voicebackend/src/server.js- Express server setupbackend/src/services/aiService.js- AI integration
- PRD:
tasks/prd-braillience-flashcard-app.md - Accessibility:
docs/ACCESSIBILITY_GUIDELINES.md - Contributing:
CONTRIBUTING.md
This project is licensed under the MIT License.
Built with β€οΈ by the Braillience Team at Cal Hacks 2025 for accessibility and inclusion