https://github.com/skp3214/inotebook
https://github.com/skp3214/inotebook
bootstrap expressjs mern-stack mongodb nodejs note-taking-app reactjs
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/skp3214/inotebook
- Owner: skp3214
- Created: 2024-07-21T17:06:00.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-20T16:52:15.000Z (over 1 year ago)
- Last Synced: 2025-02-24T12:25:30.509Z (over 1 year ago)
- Topics: bootstrap, expressjs, mern-stack, mongodb, nodejs, note-taking-app, reactjs
- Language: JavaScript
- Homepage: https://inotebook-live.vercel.app/
- Size: 242 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# 📝 iNotebook - Modern AI-Powered Note Management Application
[](https://inotebook-live.vercel.app/)
[](https://inotebook-api.vercel.app)
[](https://github.com/skp3214/inotebook)
[](LICENSE)
*A full-stack intelligent note management application built with the MERN stack, featuring AI-powered assistance, advanced tag management, dark mode, offline support, and modern glassmorphism UI.*

## 🚀 Overview
iNotebook is a next-generation note management application that combines traditional note-taking with cutting-edge AI technology. Built with a completely decoupled architecture, it showcases modern web development practices while providing an intuitive, feature-rich experience for users to manage their digital notes efficiently.
https://github.com/user-attachments/assets/e08d49a7-bc7f-43e6-87a3-3f56f9650d5e
## 🌟 Latest Features & Updates
### 🎤 Speech Recognition Feature
- **Voice-to-Text Conversion** - Convert spoken words directly into note content
- **Real-time Speech Processing** - Live transcription with instant feedback
- **Multi-language Support** - Support for multiple languages and accents
- **Voice Commands** - Control note operations using voice commands
- **Hands-free Note Taking** - Create and edit notes without typing
### 🤖 AI-Powered Note Assistant
- **Natural Language Processing** - Interact with your notes using conversational AI
- **Smart CRUD Operations** - Create, read, update, and delete notes through AI chat
- **Intelligent Search** - AI-powered note discovery and content analysis
- **Google Gemini Integration** - Powered by Google's advanced AI technology
### 🏷️ Advanced Tag Management System
- **Dynamic Tag Assignment** - Organize notes with customizable tags (Work, Urgent, Personal, Important, Completed)
- **Color-Coded Categories** - Visual tag system with predefined gradient colors
- **Smart Filtering** - Filter notes by tags with advanced search capabilities
- **Tag-Based Organization** - Hierarchical note organization with visual indicators
### 🌙 Dark Mode Support
- **Theme Toggle** - Seamless switching between light and dark modes
- **System Preference Detection** - Automatically adapts to OS theme settings
- **Persistent Theme** - Remembers user preference across sessions
- **Modern UI Consistency** - Cohesive design in both themes
### 📱 Offline Support
- **Offline Note Creation** - Create and edit notes without internet connection
- **Data Synchronization** - Automatic sync when connection is restored
- **Local Storage Management** - Efficient offline data persistence
- **Network Status Detection** - Smart handling of connectivity changes
- **Pending Actions Queue** - Manages offline operations for later sync
### ⚡ Enhanced User Experience
- **Loading Spinners** - Beautiful loading indicators for login/signup processes
- **Responsive Animations** - Smooth transitions and micro-interactions
- **Advanced Search & Filter** - Powerful search functionality with real-time filtering
### ✨ Core Highlights
- **🔐 Secure Authentication** - JWT-based user authentication with bcrypt password hashing
- **📱 Responsive Design** - Mobile-first approach with Bootstrap integration
- **🌐 RESTful APIs** - Well-structured API endpoints with proper error handling
- **⚡ Real-time Updates** - Dynamic note management with instant UI updates
- **🛡️ Security First** - Environment-based configuration and security best practices
- **📊 Clean Architecture** - Separation of concerns with DAO, Service, and Controller layers
## 🛠️ Tech Stack
### Frontend
- **React.js** - Modern UI library with hooks and context API
- **Bootstrap** - Responsive CSS framework
- **React Router** - Client-side routing
- **Context API** - State management
- **FontAwesome** - Icon library for modern UI
- **Service Workers** - For offline functionality
- **Web Speech API** - For speech recognition capabilities
### Backend
- **Node.js** - JavaScript runtime environment
- **Express.js** - Web application framework
- **MongoDB** - NoSQL database with Mongoose ODM
- **JWT** - JSON Web Tokens for authentication
- **bcrypt.js** - Password hashing library
- **Google Gemini AI** - AI-powered note assistance
### DevOps & Deployment
- **Vercel** - Frontend and backend deployment
- **Environment Variables** - Secure configuration management
- **Git** - Version control with proper .gitignore setup
## 📸 Screenshots


*Clean and intuitive user interface with modern glassmorphism design*
## ⚡ Quick Start
### Prerequisites
- **Node.js** (v14 or higher)
- **MongoDB** (local installation or MongoDB Atlas)
- **Google AI API Key** (for AI features)
- **Git** for version control
### 🔧 Backend Setup
1. **Clone the repository**
```bash
git clone https://github.com/skp3214/inotebook.git
cd inotebook/backend
```
2. **Install dependencies**
```bash
npm install
```
3. **Configure environment variables**
```bash
# Create .env file with the following configuration
MONGODB_URI=mongodb://localhost:27017/inotebook
PORT=5000
NODE_ENV=development
ALLOWED_ORIGINS=http://localhost:3000
FRONTEND_URL=http://localhost:3000
ACCESS_TOKEN_SECRET=replace_with_strong_access_secret
REFRESH_TOKEN_SECRET=replace_with_strong_refresh_secret
JWT_SECRET=replace_with_legacy_jwt_secret
GOOGLE_AI_API_KEY=replace_with_google_ai_api_key
EMAIL_USER=your_gmail_address@gmail.com
EMAIL_PASS=your_gmail_app_password
```
4. **Start the development server**
```bash
npm start
```
🎉 Backend server running on `http://localhost:5000`
### 🎨 Frontend Setup
1. **Navigate to frontend directory**
```bash
cd ../frontend
```
2. **Install dependencies**
```bash
npm install
```
3. **Configure environment variables**
```bash
# Create .env file
REACT_APP_API_BASE_URL=http://localhost:5000
NODE_ENV=development
```
4. **Start the development server**
```bash
npm start
```
🎉 Frontend application running on `http://localhost:3000`
## 📋 API Endpoints
### 🔐 Authentication Routes
- `POST /api/auth/createuser` - User registration with spinner loading
- `POST /api/auth/login` - User login with spinner loading
- `POST /api/auth/getuser` - Get user profile (Protected)
### 📝 Notes Routes
- `GET /api/notes/fetchallnotes` - Get all user notes with tags (Protected)
- `POST /api/notes/addnotes` - Create new note with tag assignment (Protected)
- `PUT /api/notes/updatenotes/:id` - Update existing note and tags (Protected)
- `DELETE /api/notes/deletenotes/:id` - Delete note (Protected)
### 🤖 AI Assistant Routes
- `POST /api/ai-agent/chat` - Chat with AI for note operations (Protected)
## 🤝 Contributing
We welcome contributions! Please follow these steps:
1. **Fork the repository**
2. **Create a feature branch**
```bash
git checkout -b feature/amazing-feature
```
3. **Commit your changes**
```bash
git commit -m 'Add amazing feature'
```
4. **Push to the branch**
```bash
git push origin feature/amazing-feature
```
5. **Open a Pull Request**
## 📞 Contact & Support
[](https://github.com/skp3214)
[](https://linkedin.com/in/yourprofile)
**Found this project helpful? Give it a ⭐ on GitHub!**
---