A cool AI assistant app that makes learning fast and easy. Inspired by Jupyter notebooks (because they're awesome), it helps you quickly pick up new ideas from books, docs, research papers, and more.
📚 Introduction
Notebook-Buddy is an innovative learning assistant that transforms how you interact with educational content. Whether you're studying research papers, technical documentation, or educational materials, our app provides an interactive, Jupyter-notebook-style interface to enhance your learning experience.
- 📝 Interactive Canvas: Create and organize your study materials in a flexible, notebook-style interface
- 🤖 AI-Powered Assistance: Get intelligent insights and explanations for complex topics
- 📊 Visual Learning: Support for rich text, code blocks, and visual elements
- 🔄 Real-time Collaboration: Share and collaborate on study materials seamlessly
- 📱 Responsive Design: Access your notes from any device
🛠️ Technical Overview
- Framework: Next.js 14 with TypeScript
- UI Components: React with Tailwind CSS
- State Management: React Hooks and Context API
- Canvas Interaction: Custom hooks for canvas manipulation
- Server: FastAPI (Python)
- Database: DynamoDB
- AI Integration: OpenAI API
- File Storage: AWS S3
- Deployment: AWS (Lambda, API Gateway)
- Authentication: JWT-based auth system
- Version Control: Git
🔍 Detailed Architecture
/app: Next.js application routes and pages/canvas: Interactive canvas components and logic/components: Reusable UI components/hooks: Custom React hooks for state management
/public: Static assets/types: TypeScript type definitions
/api: FastAPI application/endpoints: REST API endpoint definitions/services: Business logic and database interactions/models: Data models and schemas
/uploads: Temporary file storage
The canvas system is the core of Notebook-Buddy, providing:
- Real-time text block manipulation
- Drag-and-drop functionality
- AI-powered content analysis
- Collaborative editing features
- Text blocks
- User data
- Canvas metadata
- Collaboration permissions
/api/text_blocks: CRUD operations for text content/api/canvas: Canvas management/api/ai: AI processing endpoints/api/users: User management
- Clone the repository
- Set up environment variables (see
.env.example) - Install dependencies:
# Frontend cd client npm install # Backend cd ../server pip install -r requirements.txt
- Run the development servers:
# Frontend npm run dev # Backend uvicorn main:app --host 0.0.0.0