Fix Firebase auth: replace iframe with native Streamlit login form (REST API)
FocusFlow Assistant
d49bca1
Add Firebase auth login page (Google, GitHub, Email/Password) with FirebaseUI
FocusFlow Assistant
55efbf4
Add Paste Text feature and restore disabled YouTube UI
FocusFlow Assistant
48c1ea6
Gracefully disable YouTube in Cloud Mode
FocusFlow Assistant
2847ff4
feat: use Invidious API for YouTube transcripts
FocusFlow Assistant
068aa2f
Bypass YouTube CORS/blocking by fetching transcripts through
the public Invidious API server-side.
Changes:
- Added get_youtube_transcript using Invidious to rag_engine.py
- Added /ingest_youtube endpoint to backend/main.py
- Refactored app.py URL parsing to hit backend directly
- Removed browser-side JS component and youtube_transcript.html
feat: browser-side YouTube transcript fetching
FocusFlow Assistant
dcf165e
YouTube transcripts are now fetched from the user's browser via JS,
bypassing HuggingFace Spaces outbound network restrictions.
Changes:
- New: frontend/youtube_transcript.html - browser-side JS component
- New: POST /ingest_text endpoint for raw text ingestion
- New: ingest_text() in rag_engine.py (reuses chunking pipeline)
- Updated: app.py URL section uses browser-side fetch for YouTube
- Removed: _fetch_youtube_transcript() server-side function
- Removed: youtube-transcript-api, google-api-python-client deps
- Simplified: ingest_url() now handles only web pages
Replace YouTube fetch with timedtext API - no API keys needed, works from any server
FocusFlow Assistant
cecb03b
Add YouTube Data API v3 for cloud-reliable transcript fetching with local fallback
FocusFlow Assistant
f723af8
Add auto-generated caption support for YouTube: multi-priority fetch, shorts URLs, transcript cleanup
FocusFlow Assistant
80a8392
Add OCR fallback for scanned/image PDFs using pytesseract + pdf2image
FocusFlow Assistant
2c32e38
feat: Enable YouTube URLs in cloud with youtube-transcript-api
FocusFlow Assistant
d270665
- Added youtube-transcript-api for reliable transcript fetching
- Implemented retry logic with exponential backoff
- Works in both local and cloud (HF Spaces)
- Better error messages for no captions, invalid URLs
- Increased timeout to 120s for YouTube processing
- Removed cloud mode restriction - feature now universal
fix: Add missing os import for environment variable check
- Detect cloud mode via USE_SUPABASE env var
- Show clear warning message about limitation
- Suggest alternatives: upload PDFs, run locally
- Expander label shows disabled status
- Local mode unchanged - full URL support remains
Add multi-user support with session-based student IDs
FocusFlow Assistant
3e0882a
- Modified StudentProfileManager to accept student_id parameter
- Updated all FastAPI endpoints to use dependency injection
- Each browser session gets unique student_id
- Data isolated per user in Supabase
- Backward compatible with local mode
Features:
- Auto-detects new calendar day on app startup
- Advances current_study_day when date changes
- Auto-unlocks topics for the new day
- Shows correct day's topics in 'Today's Topics' section
Changes:
- app.py: Added date detection logic, updated Today's Topics to use current_study_day
- backend/student_data.py: Added current_study_day and last_access_date to profile
- backend/main.py: Updated save_progress endpoint for new fields
Fixes issue where Jan 7 topics wouldn't appear after completing Jan 6
Fix: Restore except block that was accidentally removed during cleanup
FocusFlow Assistant
9a8a489
Production code cleanup - remove debug statements and duplicates
FocusFlow Assistant
ea52e8c
Cleanup Summary:
- Removed duplicate query_knowledge_base function (37 lines)
- Removed 19 debug print statements across all files
- Kept only essential error logging
- Code is now production-ready and deployment-optimized
Files cleaned:
- backend/rag_engine.py: Removed duplicate function + 14 prints
- app.py: Removed 3 debug prints
- backend/student_data.py: Removed 2 debug prints
- Overall: ~60 lines of unused code eliminated
Add data persistence and comprehensive citation system
FocusFlow Assistant
6d15ebb
Major Features Added:
- Data Persistence: JSON-based student profile storage in ~/.focusflow/
- Auto-save on plan generation and quiz completion
- Session resumption with progress restoration
- Tracks quiz scores, mastery levels, and incomplete tasks
- Citation System: Comprehensive source references for verifiability
- Chat responses show expandable source citations (filename + page)
- Lesson content includes inline citations and References section
- Citations in both main chat and Focus Mode
- UI Improvements:
- Toast notifications for save/load feedback
- Enhanced error handling with user-visible messages
- Better source formatting with numbered lists
Files Modified:
- app.py: Added profile loading, auto-save, citation display
- backend/main.py: Added 7 profile API endpoints
- backend/rag_engine.py: Enhanced with source extraction and citations
- backend/student_data.py: New StudentProfileManager class
Major improvements: Multi-subject plan generation, enhanced quiz/lesson quality, fixed UI layout
FocusFlow Assistant
a689464
- Restructured plan to create multiple topics per day (one per subject)
- Improved lesson generation with comprehensive 600-800 word content
- Enhanced quiz generation with realistic answer choices and context-based fallbacks
- Fixed Study Assistant layout: contained chat and scrollable lesson panel
- Removed multilingual support and reverted to English-only
- Fixed analytics subject tab extraction
- Removed dialog decorator error
- All topics now unlock automatically after quiz completion
feat: Implement AI Plan Generator (Lite Mode) and Focus Mode Layout
FocusFlow Assistant
e60bafd
Update backend RAG logic, app UI, and add documentation
FocusFlow Assistant
8008633
feat: Implement initial Streamlit application with custom theming, extensive CSS, and an analytics dialog.