Skip to content

Pdf reader app designed to Revolutionise your Learning Experience, with Note taking, Annotations, collaboration, LLM integration, Flashcards generation (w. feedbacks)!

Notifications You must be signed in to change notification settings

dheerajcl/Ignite

Repository files navigation

Built using

  • Nextjs Frontend and Serverless api routes
  • tRPC For typesafe apis
  • Zod For validation
  • Typescript For type safety
  • Tailwind CSS For CSS
  • React Query for data fetching
  • React Hook Form for form handling
  • Shadcn UI + Radix UI For UI components
  • Supabase As the database
  • Prisma As the ORM
  • Blocknote for note taking
  • Uploadthing for storing pdfs
  • Next Auth for authentication
  • React-pdf-highlighter for pdf rendering,highlighting
  • Vercel AI SDK, Langchain for AI responses and streaming, generating flashcards + evaluating them
  • Pinecone DB for storing embeddings of pdfs
  • Fireworks AI for LLM
  • Huggingface Model for generating Embeddings
  • Liveblocks for realtime collaboration

Features:

  • Note taking, later download the note as markdown
  • Summarise, ask questions about the PDFs
  • Chat and collab with others
  • Custom blocks in editor
  • Highlights block which on click takes you to that highlight on the doc.
  • AI-powered text autocompletion
  • Craft simple flashcards to test your knowledge, answer questions, and receive instant feedback through AI evaluation.

🧰 Getting Started

  1. Make sure Git and NodeJS is installed.
  2. Clone this repository to your local computer.
  3. Create .env file in root directory.
  4. Contents of .env:
# .env

DATABASE_URL=postgres://postgres.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.supabase.com:5432/postgres     #visit Supabase

NEXTAUTH_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
NEXTAUTH_URL=http://localhost:3000    #or  url

GOOGLE_CLIENT_ID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
GOOGLE_CLIENT_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

NODE_ENV=development

UPLOADTHING_SECRET=sk_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
UPLOADTHING_APP_ID=XXXXXXXXXX

OPENAI_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX           #Fireworks API not openai

PINECONE_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

HUGGINGFACE_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

NEXT_PUBLIC_LIVEBLOCKS_PUBLIC_API_KEY=pk_prod_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX       #visit Liveblocks

Pinecone Setting up guide

  • Create index => Dimensions = 768, Metric = Cosine.

You can get your Google Client ID and secret from the Google API Console.

Run npm install or pnpm install or yarn to install your node_modules

Now app is fully configured 👍 and you can start using this app using either one of npm run dev or yarn dev or pnpm dev.

And make sure to push your db to prisma npx prisma db push before starting.

NOTE: Please make sure to keep your API keys and configuration values secure and do not expose them publicly.

⚙️ Tech Stack

React JS Next JS Typescript Tailwind CSS Vercel Postgresql

About

Pdf reader app designed to Revolutionise your Learning Experience, with Note taking, Annotations, collaboration, LLM integration, Flashcards generation (w. feedbacks)!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published