A modern, intelligent note-taking application that transforms how you capture, organize, and interact with your knowledge. Built with React, Django, and AI integration for automatic content processing and intelligent insights.
- Rich Text Editor: Advanced note editing with BlockNote editor
- Document Upload: Support for PDF, DOCX, and TXT files
- AI-Powered Processing: Automatic content extraction and analysis
- Smart Summaries: AI-generated summaries of uploaded documents
- Interactive Quizzes: Auto-generated quizzes based on document content
- Semantic Search: Find notes and documents using natural language
- Real-time Updates: Live content synchronization across sessions
- Modern UI: Clean, responsive design with dark/light mode support
- Intuitive Navigation: Easy-to-use interface with sticky headers
- Visual Feedback: Status indicators and smooth animations
- Custom Styling: Tailwind CSS with custom design system
- Accessibility: Keyboard navigation and screen reader support
- Full-Stack Architecture: React frontend + Django REST API backend
- Authentication: Secure JWT-based user authentication
- Database: PostgreSQL with optimized queries
- Background Tasks: Celery for async document processing
- Caching: Redis for improved performance
- Containerization: Docker support for easy deployment
- Production Ready: Nginx, Gunicorn, and proper security headers
- React 19 - Modern UI library with hooks
- Tailwind CSS - Utility-first CSS framework
- BlockNote Editor - Rich text editing capabilities
- JavaScript/ES6+ - Modern JavaScript features
- Django 5.2 - Python web framework
- Django REST Framework - API development
- PostgreSQL - Relational database
- Redis - Caching and task queuing
- Celery - Background task processing
- Google Gemini API - AI content generation
- Sentence Transformers - Text embeddings
- Pinecone - Vector database for semantic search
- PyMuPDF - PDF processing
- python-docx - Word document processing
- Docker & Docker Compose - Containerization
- Nginx - Web server and reverse proxy
- Gunicorn - WSGI HTTP server
- Multi-stage builds - Optimized container images
# Clone the repository
git clone https://github.com/yourusername/note-taking-app.git
cd note-taking-app
# Copy and configure environment
cp .env.template .env
# Edit .env with your API keys and settings
# Start the application (choose one)
./deploy.sh # Production (Linux/Mac)
.\deploy.ps1 # Production (Windows)
./deploy-dev.sh # Development (Linux/Mac)
.\deploy-dev.ps1 # Development (Windows)π For detailed deployment instructions, see DEPLOYMENT.md
- Frontend: http://localhost (production) or http://localhost:3000 (dev)
- Admin Panel: http://localhost/admin/
- API Documentation: http://localhost/api/
- Sign Up: Create your account at http://localhost
- Upload Documents: Drag and drop PDF, DOCX, or TXT files
- Create Notes: Use the rich text editor to write notes
- AI Processing: Wait for automatic content analysis
- Review Summaries: Check AI-generated document summaries
- Take Quizzes: Test your knowledge with auto-generated questions
- Search Content: Use semantic search to find information
Upload Document β AI Content Extraction β Generate Summary β Create Quiz β Index for Search
- Rich Text Editing: Bold, italic, lists, headers, and more
- File Management: Organize documents by categories
- AI Summaries: Get quick overviews of long documents
- Quiz Generation: Test comprehension with AI-created questions
- Semantic Search: Find content by meaning, not just keywords
- Notes Linking: Connect related notes and documents
See .env.template for all available configuration options:
- Django Settings: SECRET_KEY, DEBUG, ALLOWED_HOSTS
- Database: PostgreSQL connection details
- AI Services: Google Gemini API, Pinecone credentials
- Redis: Cache and task queue configuration
- Google Gemini: Get API key from Google AI Studio
- Pinecone: Create account and get API credentials
- Configure: Add keys to
.envfile
The application provides a RESTful API for all functionality:
POST /api/token/- Obtain JWT tokensPOST /api/token/refresh/- Refresh access tokenPOST /api/register/- User registration
GET /api/documents/- List documentsPOST /api/documents/- Upload documentGET /api/notes/- List notesPOST /api/notes/- Create notePOST /api/search/- Semantic searchGET /api/health/- Health check
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β React App β β Django API β β PostgreSQL DB β
β (Nginx:80) βββββΊβ (Gunicorn:8000) βββββΊβ (Port 5432) β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β
βΌ
ββββββββββββββββββββ βββββββββββββββββββ
β Celery Worker βββββΊβ Redis Cache β
β (Background) β β (Port 6379) β
ββββββββββββββββββββ βββββββββββββββββββ
- JWT Authentication - Secure token-based auth
- HTTPS Ready - SSL/TLS configuration support
- CORS Protection - Cross-origin request security
- SQL Injection Prevention - Django ORM protection
- XSS Protection - Content Security Policy headers
- Environment Variables - Secure credential management
For detailed deployment instructions including development and production setups, see DEPLOYMENT.md.
cp .env.template .env # Configure environment
./deploy.sh # Linux/Mac
.\deploy.ps1 # Windows./deploy-dev.sh # Linux/Mac
.\deploy-dev.ps1 # Windows- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
# Clone and setup
git clone https://github.com/yourusername/note-taking-app.git
cd note-taking-app
# Start development environment
docker-compose -f docker-compose-dev.yml up -d
# Run tests
docker-compose -f docker-compose-dev.yml exec web python manage.py testThis project is licensed under the MIT License - see the LICENSE file for details.
- BlockNote - Rich text editor framework
- Django - Web framework excellence
- React - UI library innovation
- Google Gemini - AI content generation
- Pinecone - Vector database technology
- Tailwind CSS - Utility-first styling