|
1 | | -# React + Vite |
| 1 | +# SmartNotesAI 🧠✨ |
2 | 2 |
|
3 | | -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. |
| 3 | +SmartNotesAI is a modern notes app with built-in AI-powered study tools. Create, edit, and delete notes with ease — then take it a step further by summarizing them or generating flashcards using AI. |
4 | 4 |
|
5 | | -Currently, two official plugins are available: |
| 5 | +🔗 [Live Demo](https://smartnotes-b128a.web.app/) |
6 | 6 |
|
7 | | -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh |
8 | | -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh |
| 7 | +--- |
9 | 8 |
|
10 | | -## Expanding the ESLint configuration |
| 9 | +## 🚀 Features |
11 | 10 |
|
12 | | -If you are developing a production application, we recommend using TypeScript and enable type-aware lint rules. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. |
| 11 | +- 🔐 Firebase Authentication (Google login) |
| 12 | +- 📝 Create, update, and delete notes |
| 13 | +- 🤖 AI tools powered by OpenAI: |
| 14 | + - Summarize notes |
| 15 | + - Generate flashcards |
| 16 | +- 🎯 Daily limit of 5 AI uses per user |
| 17 | +- 📱 Fully responsive design |
| 18 | +- 🛡️ reCAPTCHA verification for reset password |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +## 🧰 Tech Stack |
| 23 | + |
| 24 | +- **Frontend:** React.js, Tailwind CSS, React Router, React Hook Form, React Icons, Google reCAPTCHA |
| 25 | +- **Backend/Services:** Firebase (Auth, Firestore, Functions, Hosting) |
| 26 | +- **AI Integration:** OpenAI API via Firebase Cloud Functions |
| 27 | + |
| 28 | +--- |
| 29 | + |
| 30 | +## 🖼️ Screenshots |
| 31 | + |
| 32 | +Comming soon... |
| 33 | + |
| 34 | +--- |
| 35 | + |
| 36 | +## ⚙️ Getting Started |
| 37 | + |
| 38 | +Note: You'll need a Firebase project and OpenAI key |
| 39 | + |
| 40 | +To run SmartNotesAI locally: |
| 41 | + |
| 42 | +```bash |
| 43 | +# Clone the repository |
| 44 | +git clone https://github.com/your-username/smartnotesai.git |
| 45 | +cd smartnotesai |
| 46 | + |
| 47 | +# Install dependencies |
| 48 | +npm install |
| 49 | + |
| 50 | +# Start the development server |
| 51 | +npm run dev |
| 52 | +``` |
| 53 | + |
| 54 | +# 🔑 Environment Variables |
| 55 | +Create a `.env` file in the root directory and add your Firebase config: |
| 56 | + |
| 57 | +```env |
| 58 | +VITE_FIREBASE_API_KEY=your_key_here |
| 59 | +VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com |
| 60 | +VITE_FIREBASE_PROJECT_ID=your_project_id |
| 61 | +VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket |
| 62 | +VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id |
| 63 | +VITE_FIREBASE_APP_ID=your_app_id |
| 64 | +VITE_OPENAI_API_KEY=your_openai_key # Only if used on client side |
| 65 | +``` |
| 66 | + |
| 67 | +Create a `.env` file in root/functions directory and add your OpenAI key: |
| 68 | + |
| 69 | +```env |
| 70 | +OPENAI_API_KEY=your_key_here |
| 71 | +``` |
| 72 | + |
| 73 | +## 🚀 Deploying Firebase Functions |
| 74 | + |
| 75 | +To deploy the Firebase Functions (backend API), follow these steps: |
| 76 | + |
| 77 | +```bash |
| 78 | +# Install Firebase CLI (if not installed already): |
| 79 | +npm install -g firebase-tools |
| 80 | + |
| 81 | +# Login to firebase |
| 82 | +firebase login |
| 83 | + |
| 84 | +# Navigate to your project directory(should be root/functions): |
| 85 | +cd your_project_dir |
| 86 | + |
| 87 | +# Deploy the functions |
| 88 | +firebase deploy --only functions |
| 89 | +``` |
| 90 | +# 📝 Notes |
| 91 | +This was my first time creating a AI powered app aswell as using firebase functions, so I learned a lot overall from this project and cant wait to build more cool things using the new tools I learned in the future |
| 92 | +To prevent abuse, AI usage is currently limited to 5 requests per day. In the future, I plan to add an upgrade system to allow for more. |
| 93 | + |
| 94 | +# 📌 Future Improvements |
| 95 | +- Subscription to access more usages/ ai features |
| 96 | +- AI powered quizes |
| 97 | +- Improvements on current features(summaries/ flashcards) |
0 commit comments