Skip to content

bibekkd/ai-notes-app

Repository files navigation

πŸ“ Smart Notes – AI-Powered Note-Taking App

Smart Notes is a modern, responsive web application designed to help users create, manage, and summarize their notes efficiently. It leverages the power of AI to provide instant note summarization and ensures a seamless experience across devices.

πŸš€ Tech Stack

Frontend

  • Next.js (App Router + TypeScript)
  • Tailwind CSS
  • Shadcn UI
  • TanStack Query (React Query) – for data fetching and state management

Backend

  • Supabase – Authentication & Database
  • Groq API – Primary AI Note Summarization
  • Mistral API – Fallback AI Note Summarization

✨ Features

βœ… User Authentication

Sign up and log in using:

  • Google OAuth
  • Email & Password

πŸ“ Note Management

  • Create, edit, and delete notes
  • Real-time updates and auto-sync with Supabase

🧠 AI Summarization

  • Summarize any note using Groq with Mistral fallback support
  • Great for quick recaps and idea digestion

⚑ State Management

Powered by TanStack Query (React Query) for optimized, scalable, and cache-efficient data fetching

πŸ“ Project Structure

πŸ“‚ Root Directory β”œβ”€β”€ πŸ“‚ app - Main application directory β”‚ β”œβ”€β”€ πŸ“‚ api β”‚ β”‚ └── πŸ“‚ summarize β”‚ β”‚ └── route.ts - AI summarization API endpoint β”‚ β”œβ”€β”€ πŸ“‚ auth - Authentication pages β”‚ β”œβ”€β”€ πŸ“‚ dashboard - User dashboard β”‚ β”‚ β”œβ”€β”€ page.tsx - Notes dashboard β”‚ β”‚ └── πŸ“‚ [noteId] β”‚ β”‚ └── page.tsx - Individual note editor β”‚ β”œβ”€β”€ layout.tsx - Root layout β”‚ └── page.tsx - Landing page β”‚ β”œβ”€β”€ πŸ“‚ components - Reusable UI components β”‚ β”œβ”€β”€ πŸ“‚ ui - Shadcn components β”‚ β”œβ”€β”€ πŸ“‚ notes - Note-related components β”‚ └── πŸ“‚ auth - Auth form components β”‚ β”œβ”€β”€ πŸ“‚ lib - Core utilities and configurations β”‚ β”œβ”€β”€ supabase.ts - Supabase client β”‚ β”œβ”€β”€ utils.ts - Helper functions β”‚ β”œβ”€β”€ πŸ“‚ hooks - Custom React hooks β”‚ β”œβ”€β”€ types.ts - TypeScript type definitions β”‚ └── πŸ“‚ providers β”‚ └── query-provider.tsx - React Query setup β”‚ └── πŸ“‚ public - Static assets └── πŸ“‚ images - Logos, illustrations, etc.

πŸ› οΈ Getting Started

1. Clone the repo

git clone https://github.com/your-username/smart-notes.git
cd smart-notes

2. Install dependencies

 npm install

3. Set up environment variables

Create a .env.local file in the root directory and add the following variables:

NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
GROQ_API_KEY=your_groq_api_key
GROQ_MODEL=llama-3.1-8b-instant
MISTRAL_API_KEY=your_mistral_api_key
MISTRAL_MODEL=mistral-small-latest
NEXT_PUBLIC_APP_URL=http://localhost:3000

For Google OAuth with Supabase in local development, also add http://localhost:3000/auth/callback to your Supabase Auth Redirect URLs.

4. Start the development server

npm run dev

5. Optional live AI smoke test

npm run smoke:ai

πŸ§ͺ Future Improvements

  • ✍️ Markdown support for notes
  • πŸ—‚οΈ Folder and tag-based categorization
  • πŸ‘₯ Real-time collaborative editing
  • 🎨 AI tone/style rewriting features
  • πŸ“΄ Offline access via PWA support

πŸ“„ License

MIT License

About

AI-powered notes app for quick ideas, smart search, and organized notebooks. πŸ§ πŸ“βœ¨

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors