Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 Braillience

React TypeScript Node.js Express Web Speech API Letta Gemini Claude Accessibility License: MIT

πŸŽ₯ Demo Video: https://youtu.be/1WcWxWYDlo8?si=g8aWwUHi0QJ5CZUg


🎯 Problem Statement

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?


πŸ’‘ Our Solution

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.

🎯 Project Structure

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

πŸ› οΈ Tech Stack

Frontend

  • React 18 + TypeScript β€” Modern and accessible UI
  • React Router β€” App navigation
  • Framer Motion β€” Subtle motion for transitions

Backend

  • Node.js + Express β€” API and logic layer
  • Multer β€” PDF uploads
  • JWT β€” Authentication
  • Letta Agents β€” AI content generation

Voice & AI

  • 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

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation & Running

  1. Start Backend:

    cd backend
    npm install
    npm start
  2. Start Frontend:

    cd frontend
    npm install
    npm start
  3. Or use the demo script:

    ./start-demo.sh

Access Points

🎀 Voice Features

Voice Commands

  • Navigation: "Start Learning", "Take Test", "Go Back"
  • Learning: "Show Answer", "Next Card", "Previous Card", "Repeat"
  • Testing: "Select A", "Select B", "Select C", "Select D"

Voice Integration

  • Speech-to-text for commands
  • Text-to-speech for content
  • Voice navigation throughout the app
  • Screen reader compatibility

πŸ“± Features

Core Functionality

  • 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

User Experience

  • 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

🎯 Demo Flow

  1. Login β†’ Use demo credentials
  2. Dashboard β†’ View progress and quick actions
  3. Learn β†’ Practice with flashcards using voice commands
  4. Test β†’ Take timed quizzes with voice selection
  5. Progress β†’ Track learning statistics

πŸ”§ Development

Project Structure

  • Clean separation between frontend and backend
  • Modular components for easy maintenance
  • Voice-first architecture throughout
  • Accessibility-first design principles

Key Files

  • frontend/src/App.js - Main React application
  • frontend/src/components/Dashboard.js - Main dashboard with voice
  • backend/src/server.js - Express server setup
  • backend/src/services/aiService.js - AI integration

πŸ“š Documentation

  • PRD: tasks/prd-braillience-flashcard-app.md
  • Accessibility: docs/ACCESSIBILITY_GUIDELINES.md
  • Contributing: CONTRIBUTING.md

πŸ“ License

This project is licensed under the MIT License.

Built with ❀️ by the Braillience Team at Cal Hacks 2025 for accessibility and inclusion

About

An accessible flashcard learning application designed specifically for blind college students, featuring voice navigation and screen reader compatibility.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages