MemoMate
MemoMate
A web application that streamlines note-taking and summarization powered by AI. Upload documents, create AI chatbots from your notes, and generate diagrams via natural language.
Features
- Note Workspaces — Hierarchical tree-based file/folder organization
- Document Upload — Support for PDF, DOCX, and Excalidraw formats
- AI Chatbot Creation — RAG-based chatbots from uploaded notes
- Diagram Generation — Natural language to Mermaid syntax (flowcharts, Gantt charts)
- Whiteboard — Excalidraw-based collaborative drawing
- Command Bar — kmenu-powered quick actions
- Shareable Bot Links — Create bots from notes and share via unique URLs
- Admin Dashboard — Site metrics, token usage, and user engagement
Technical Highlights
- LangChain + LangGraph for RAG workflow orchestration
- Faiss vector store for similarity search
- OpenAI GPT-4o-mini for chat and diagram generation
- Excalidraw integration for whiteboard functionality
- Redux Toolkit for state management
- AWS EC2 deployment with GitHub Actions CI/CD
Tech Stack
| Layer | Technology |
|---|---|
| Frontend | React 18 + TypeScript + Redux |
| Backend | Bun + Express + MongoDB |
| AI/ML | LangChain, LangGraph, OpenAI |
| Vector Store | Faiss |
| Auth | JWT + bcrypt |
Architecture
User uploads documents (PDF, DOCX)
↓
Document Parser (pdf-parse, mammoth)
↓
Text Splitter (RecursiveCharacterTextSplitter)
↓
Embedding Generator (OpenAI)
↓
Faiss Vector Store
↓
User chats → Retrieve relevant chunks → LLM generates response