A modern voice-powered journaling app with AI-powered insights and weekly analytics. Transform your thoughts into organized notes with intelligent summaries, sentiment analysis, and personalized suggestions. Video showcasing the app:https://www.loom.com/share/8c5d9eee5243412f874afa67c3baa030?sid=c3694bcc-bfb2-4cdb-be0f-eabb00305097
- 🎤 Voice-to-Text: Speak your thoughts naturally with real-time transcription
- 🤖 AI-Powered Summaries: Get intelligent summaries and actionable suggestions
- 📊 Sentiment Analysis: Track your emotional patterns over time
- 📈 Weekly Reports: Beautiful analytics with charts and insights
- 🔐 Secure Authentication: JWT-based user authentication
- 📱 Responsive Design: Modern glassmorphism UI that works on all devices
- 🏷️ Smart Tagging: Automatic categorization of your notes
- React 19.1.0 - Modern React with hooks
- Vite - Fast build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- Chart.js - Beautiful data visualization
- React Speech Recognition - Voice input functionality
- Node.js - JavaScript runtime
- Express.js - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- JWT - JSON Web Token authentication
- Google Gemini AI - AI-powered text processing
- Node.js (v16 or higher)
- MongoDB Atlas account
- Google Gemini API key
git clone https://github.com/lazerbeam47/WhisprNote.git
cd WhisprNotecd backend
npm installCreate a .env file in the backend directory:
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/whisprnote
JWT_SECRET=your_jwt_secret_key
GEMINI_API_KEY=your_gemini_api_keyStart the backend server:
npm run devcd frontend
npm installStart the frontend development server:
npm run dev- Create a MongoDB Atlas account
- Create a new cluster
- Create a database user
- Add your IP to the network access list
- Get your connection string and add it to
.env
- Go to Google AI Studio
- Create a new API key
- Add it to your
.envfile
- Navigate to "Create Note"
- Click "Start Recording" to begin voice input
- Speak your thoughts naturally
- Click "Stop Recording" when finished
- Edit the transcribed text if needed
- Click "Save Note" to store with AI analysis
- All Notes: Browse all your saved notes with sentiment indicators
- Weekly Report: See analytics, charts, and AI insights for the past week
- Sentiment Analysis: Each note is analyzed for positive, neutral, or negative sentiment
- AI Summaries: Get concise summaries of your thoughts
- Smart Suggestions: Receive personalized tips based on your content
- Weekly Analytics: Track your writing patterns and emotional trends
- Total Notes: Count of notes created this week
- Total Words: Sum of all words written
- Longest Note: Character count of your most detailed entry
- Productivity Score: Based on positive sentiment ratio (★☆☆☆☆ to ★★★★★)
- Category Breakdown: Visual chart of your note topics
- Daily Activity: Bar chart showing notes per day
- Recent Highlights: Summary of your latest entries
WhisprNote/
├── backend/
│ ├── config/ # Database configuration
│ ├── controllers/ # Route handlers
│ ├── middleware/ # Authentication middleware
│ ├── models/ # Database models
│ ├── Routes/ # API routes
│ └── utils/ # Gemini AI integration
├── frontend/
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ └── utils/ # Utility functions
│ └── public/ # Static assets
└── README.md
POST /user/signup- User registrationPOST /user/login- User authenticationPOST /notes/createNote- Create new noteGET /notes/getUserNote- Get user's notesGET /report/weekly-reports- Get weekly analytics
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini AI for intelligent text processing
- MongoDB Atlas for cloud database
- Chart.js for data visualization
- React Speech Recognition for voice input
If you have any questions or need help, please open an issue on GitHub.
Made with ❤️ by lazerbeam47