Commit graph

3 commits

Author SHA1 Message Date
DJP
6cdca94608 Add Montserrat typography and refined UI styling
Typography:
- Applied Montserrat font globally across all pages
- Reduced main headers from 44px to 20px
- Subheaders scaled to 18px and 16px
- Body text standardized at 16px
- Source citations reduced to 14px for better readability
- Captions and small text at 13px

Style Improvements:
- Consistent font weights (300-700 range)
- Better line-height for readability (1.3-1.5)
- Reduced spacing for cleaner look
- Styled chat messages for consistency
- Smaller button text (14px)
- Refined expander headers
- Professional color scheme maintained

Files Modified:
- Created styles.py with centralized CSS
- Applied to App.py
- Applied to all 4 notebook pages
- Custom CSS injected via st.markdown

User Experience:
- Cleaner, more professional appearance
- Better visual hierarchy
- Easier to scan and read
- Sources less overwhelming
- Consistent across all pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 17:59:33 -04:00
DJP
ce09d57cef Add background podcast generation and UX improvements
Features:
- Background podcast generation (navigate away while processing!)
- Podcast status tracking (pending/in_progress/completed/failed)
- Database-backed task queue (no external dependencies)
- Podcast length control with slider (5-30 minutes)
- Fixed podcast delete to update UI immediately
- Collapsible source citations in chat (dropdown with count)
- Real-time status checking for background tasks

Technical:
- Created background_tasks.py module
- Added background_tasks table to database
- Threading-based background execution
- Task status tracking: PENDING, IN_PROGRESS, COMPLETED, FAILED
- Proper database session management in shared notebooks
- Fixed SQLAlchemy DetachedInstanceError in sharing view

UX Improvements:
- "Generate in Background" button instead of blocking
- Status indicator shows when podcast is generating
- "Check Status" refresh button
- Sources collapsed by default with count badge
- Podcast delete shows success message before rerun
- Can navigate away during long-running operations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 17:47:10 -04:00
DJP
2292f8a511 Transform NotebookLlaMa to enterprise multi-user NotebookLM clone
Major Changes:
- Implemented notebook-first architecture (multi-document collections)
- Added user authentication and multi-tenancy
- Created comprehensive database schema (7 tables)
- Built complete notebook management system
- Implemented notebook-level chat across multiple documents
- Added podcast generation from notebooks
- Implemented notebook sharing with permissions
- Fixed MCP server crashes by bypassing for document processing
- Added all enterprise features requested

New Features:
- User login/signup with bcrypt password hashing
- Create/edit/delete notebooks
- Upload multiple PDFs to notebooks
- Add documents to existing notebooks
- Chat across all documents in a notebook
- Generate podcasts from entire notebooks
- Share notebooks with other users
- View shared notebooks
- Persistent chat history per notebook
- Document summaries, Q&A, and highlights

Technical Improvements:
- PostgreSQL database with SQLAlchemy ORM
- Connection pooling and proper cleanup
- Bypassed buggy MCP server for document processing
- Direct LlamaCloud API calls for reliability
- Proper CASCADE deletes
- Session management
- Error handling and logging

Documentation:
- ENTERPRISE_SETUP.md - Setup guide
- IMPLEMENTATION_SUMMARY.md - Technical details
- SIMPLIFIED_PLAN.md - Architecture overview
- CURRENT_STATUS.md - Status and known issues
- FINAL_README.md - User guide

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 17:28:06 -04:00