Clarity, instantly for every exam. An AI-powered study assistant that transforms how you learn by instantly resolving doubts and generating on-demand quizzes from your lecture PDFs.
- Instant Doubt Resolution: Snap a photo or type out your questions, and our AI (powered by Google Gemini) will break down complex concepts into structured, easy-to-understand explanations.
- Smart PDF Processing: Upload your lecture PDFs and extract key points and summaries in seconds.
- On-Demand Quiz Generation: Want to test your knowledge? Generate custom, context-aware quizzes from your uploaded PDFs with a single click.
- Beautiful, Cozy UI: A premium, "Ink & Paper" aesthetic designed for focus and zero distractions. Built with Tailwind CSS v4 and animated beautifully with GSAP.
- Secure Authentication: Full JWT-based user authentication system ensuring your study materials and history are kept private and secure.
- Framework: React.js with Vite
- Styling: Tailwind CSS v4 (Custom Design System)
- Animations: GSAP (GreenSock) & Reactbits
- Icons: Lucide React
- Routing: React Router DOM v6
- Notifications: React Hot Toast
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB (Mongoose)
- AI Integration: Google Gemini AI (Multimodal API)
- Authentication: JWT (JSON Web Tokens) & bcryptjs
- PDF Processing: pdf-parse
Follow these steps to run DoubtSnap locally on your machine.
git clone https://github.com/ORION-16/DoubtSnap.git
cd DoubtSnapNavigate to the server directory and install dependencies:
cd server
npm installCreate a .env file in the server directory and add the following variables:
PORT=8000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_super_secret_jwt_key
GEMINI_API_KEY=your_google_gemini_api_keyStart the backend server:
npm run devOpen a new terminal window, navigate to the client directory, and install dependencies:
cd client
npm installStart the Vite development server:
npm run devThe frontend will run on http://localhost:5173. Open this URL in your browser to start studying!
DoubtSnap/
├── client/ # React Frontend
│ ├── public/ # Static assets (Favicons, SVG)
│ ├── src/
│ │ ├── api/ # Axios instance and interceptors
│ │ ├── components/ # Reusable UI components (Buttons, Navbars)
│ │ ├── context/ # React Context (AuthContext)
│ │ ├── lib/ # Utility libraries (GSAP configs)
│ │ └── pages/ # Full page views (Dashboard, PDF, Landing)
│ └── index.html
│
└── server/ # Node/Express Backend
├── controllers/ # Route controllers (Auth, PDFs, Doubts)
├── middleware/ # Custom middleware (Auth Guard, Rate Limiter)
├── models/ # Mongoose Database Schemas
├── routes/ # Express API Routes
└── utils/ # Helper utilities (Gemini API integrations)
Contributions are always welcome! Feel free to open an issue or submit a pull request if you'd like to improve the codebase or add new features.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Designed and built to make studying less stressful and more effective.