Skip to content

zainthecoder/note-taking-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Note Taking AI App

A personalized note-taking application with AI-powered suggestions using RAG (Retrieval-Augmented Generation).

Features

  • 🔐 Multi-user Authentication - Secure JWT-based authentication
  • 📝 Rich Text Editor - Full-featured Tiptap editor with formatting
  • 🏷️ Tags & Organization - Tag your notes for easy filtering
  • 📦 Bulk Operations - Select and manage multiple notes at once
  • 🤖 AI Suggestions - Get personalized suggestions based on your notes
  • 🔍 Semantic Search - AI-powered search across all your notes
  • 🔄 Hybrid AI - Switch between local (Ollama) and cloud (OpenAI/Anthropic) LLMs

Tech Stack

  • Backend: FastAPI, Python, MongoDB (Beanie ODM)
  • Frontend: React, TypeScript, Tailwind CSS, Tiptap
  • AI: LangChain, LangGraph, MongoDB Atlas Vector Search

Getting Started

Prerequisites

  • Python 3.11+
  • Node.js 18+
  • MongoDB Atlas account (for Vector Search)
  • Ollama (for local LLM) or API keys for cloud providers

Backend Setup

cd backend

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Configure environment
cp .env.example .env
# Edit .env with your MongoDB URI and other settings

# Run the server
uvicorn main:app --reload

Frontend Setup

cd frontend

# Install dependencies
npm install

# Run development server
npm run dev

Environment Variables

Create a .env file in the backend directory:

MONGODB_URI=mongodb+srv://...
DATABASE_NAME=notetaking_db
SECRET_KEY=your-secret-key
LLM_PROVIDER=local  # or openai, anthropic
OLLAMA_BASE_URL=http://localhost:11434
# OPENAI_API_KEY=sk-...
# ANTHROPIC_API_KEY=...

API Endpoints

Auth

  • POST /api/v1/auth/register - Register new user
  • POST /api/v1/auth/login - Login and get token
  • GET /api/v1/auth/me - Get current user

Notes

  • GET /api/v1/notes/ - List all notes
  • POST /api/v1/notes/ - Create note
  • GET /api/v1/notes/{id} - Get note
  • PATCH /api/v1/notes/{id} - Update note
  • DELETE /api/v1/notes/{id} - Delete note
  • POST /api/v1/notes/bulk/delete - Bulk delete
  • POST /api/v1/notes/bulk/tags - Bulk tag update

AI

  • POST /api/v1/ai/suggest - Get AI suggestions
  • POST /api/v1/ai/search - Semantic search

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published