{"id":37230309,"url":"https://github.com/shreyashpatel5506/virtual-assistant-core","last_synced_at":"2026-01-15T03:37:48.074Z","repository":{"id":310517978,"uuid":"1034482542","full_name":"shreyashpatel5506/virtual-assistant-core","owner":"shreyashpatel5506","description":"🎙️ Virtual AI Voice Assistant - A modern full-stack voice and chat assistant powered by Google Gemini AI. Built with React, Node.js, Express, and MongoDB.","archived":false,"fork":false,"pushed_at":"2026-01-12T15:28:55.000Z","size":72881,"stargazers_count":3,"open_issues_count":3,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-12T19:49:05.869Z","etag":null,"topics":["authorization","express-js","fullstack","generative-ai","javascript","jwt-authentication","nodejs","reactjs","tailwindcss","unique","virtualassistant"],"latest_commit_sha":null,"homepage":"https://virtualassistant-wxxq.onrender.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shreyashpatel5506.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-08T13:11:17.000Z","updated_at":"2026-01-12T15:28:59.000Z","dependencies_parsed_at":"2025-08-18T17:30:37.881Z","dependency_job_id":"2a4b1caa-3018-4bbe-8ff8-fa8c736bd2cb","html_url":"https://github.com/shreyashpatel5506/virtual-assistant-core","commit_stats":null,"previous_names":["shreyashpatel5506/virtualassistant","shreyashpatel5506/virtual-assistant-core"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/shreyashpatel5506/virtual-assistant-core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shreyashpatel5506%2Fvirtual-assistant-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shreyashpatel5506%2Fvirtual-assistant-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shreyashpatel5506%2Fvirtual-assistant-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shreyashpatel5506%2Fvirtual-assistant-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shreyashpatel5506","download_url":"https://codeload.github.com/shreyashpatel5506/virtual-assistant-core/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shreyashpatel5506%2Fvirtual-assistant-core/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28442300,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:55:22.719Z","status":"online","status_checked_at":"2026-01-15T02:00:08.019Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authorization","express-js","fullstack","generative-ai","javascript","jwt-authentication","nodejs","reactjs","tailwindcss","unique","virtualassistant"],"created_at":"2026-01-15T03:37:47.433Z","updated_at":"2026-01-15T03:37:48.068Z","avatar_url":"https://github.com/shreyashpatel5506.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎙️ Virtual AI Voice \u0026 Text Assistant\n\nA modern, full-stack voice and chat assistant powered by AI (Gemini). Built with React, Node.js, Express, and MongoDB. This assistant can handle voice commands, perform web searches, control media, manage tasks, and much more through an intuitive web interface.\n\n![Tech Stack](https://img.shields.io/badge/Stack-MERN-blue)\n![License](https://img.shields.io/badge/License-ISC-green)\n\n## ✨ Features\n\n### 🗣️ Conversational AI\n- Natural chat or voice interactions\n- Human-like tone and friendly responses\n- Smart context understanding powered by Google Gemini AI\n\n### 🔍 Search \u0026 Knowledge\n- Google search with direct result links\n- News, sports, finance \u0026 trending topics\n- Wikipedia summaries\n- Fast fallback search when query not matched\n\n### 🎵 Media Control\n- Play YouTube videos or search playlists\n- Spotify music links\n- Trending music \u0026 entertainment lookups\n\n### 🛠️ Utilities\n- Time, date, day, month queries\n- Calculator\n- Calendar\n- Notes\n- Reminders \u0026 alarms\n\n### 🌦️ Weather \u0026 Travel\n- City-wise weather information\n- Google Maps routing\n- Flight status \u0026 booking helpers\n- Hotel search\n\n### 📰 News \u0026 Sports\n- Latest headlines\n- Cricket \u0026 football live scores\n- Sports news summaries\n\n### 📱 Social Apps\nQuick-launch links to:\n- Instagram • Facebook • Twitter/X • WhatsApp Web • Telegram • Snapchat • LinkedIn\n\n### 💹 Finance\n- Live stock prices\n- Crypto price updates\n- Finance news\n\n### 🤖 Built-in AI Tools\n- Image generation\n- Code generation\n- Document summarization\n- Smart conversation fallback\n\n## 🛠️ Tech Stack\n\n### Frontend\n- **React 19** - UI library\n- **Vite** - Build tool and dev server\n- **Tailwind CSS** - Styling\n- **Framer Motion** - Animations\n- **Zustand** - State management\n- **React Router** - Routing\n- **Axios** - HTTP client\n- **React Hot Toast** - Notifications\n\n### Backend\n- **Node.js** - Runtime environment\n- **Express 5** - Web framework\n- **MongoDB** - Database\n- **Mongoose** - ODM\n- **JWT** - Authentication\n- **Bcrypt** - Password hashing\n- **Multer** - File uploads\n- **Cloudinary** - Image storage\n- **Nodemailer** - Email service\n- **Google Gemini AI** - AI integration\n\n## 📋 Prerequisites\n\n- Node.js (v20.x or higher)\n- MongoDB (local or cloud instance)\n- npm or yarn\n- Google Gemini API key\n- Cloudinary account (for image uploads)\n- Gmail account (for OTP emails)\n\n## 🚀 Installation\n\n### 1. Clone the repository\n\n```bash\ngit clone https://github.com/shreyashpatel5506/VirtualAssistant.git\ncd VirtualAssistant\n```\n\n### 2. Install dependencies\n\n```bash\n# Install root dependencies\nnpm install\n\n# Install backend dependencies\ncd backend\nnpm install\n\n# Install frontend dependencies\ncd ../frontend\nnpm install\n```\n\n### 3. Environment Variables\n\nCreate a `.env` file in the `backend` directory:\n\n```env\n# Server Configuration\nPORT=8080\nNODE_ENV=development\nFRONTEND_URL=http://localhost:5173\n\n# Database\nMONGO_URI=your_mongodb_connection_string\n\n# JWT Secret\nJWT_SECRET=your_jwt_secret_key\n\n# Email Configuration (for OTP)\nMY_MAIL=your_email@gmail.com\nMY_PASSWORD=your_app_password\n\n# Cloudinary Configuration\nCLOUDINARY_CLOUD_NAME=your_cloud_name\nCLOUDINARY_API_KEY=your_api_key\nCLOUDINARY_API_SECRET=your_api_secret\n\n# Gemini AI Configuration\nGEMINI_API_URL=https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=YOUR_API_KEY\n\n# Optional: API Template (for document generation)\nAPITEMPLATE_API_KEY=your_api_key\nAPITEMPLATE_TEMPLATE_ID=your_template_id\n```\n\nCreate a `.env` file in the `frontend` directory (optional):\n\n```env\nVITE_API_URL=http://localhost:8080/api\n```\n\n### 4. Run the application\n\n#### Development Mode\n\n**Terminal 1 - Backend:**\n```bash\ncd backend\nnpm run dev\n```\n\n**Terminal 2 - Frontend:**\n```bash\ncd frontend\nnpm run dev\n```\n\nThe application will be available at:\n- Frontend: `http://localhost:5173`\n- Backend API: `http://localhost:8080`\n\n#### Production Mode\n\n```bash\n# Build frontend\nnpm run build\n\n# Start backend (serves both API and frontend)\nnpm start\n```\n\n## 📁 Project Structure may be different\n\n```\nVirtualAssistant/\n├── backend/\n│   ├── config/\n│   │   ├── cloudinary.js      # Cloudinary configuration\n│   │   └── db.js              # MongoDB connection\n│   ├── controllers/\n│   │   ├── auth.controller.js # Authentication logic\n│   │   └── token.js           # JWT token utilities\n│   ├── middleware/\n│   │   ├── auth.middleware.js # Authentication middleware\n│   │   └── multer.js          # File upload middleware\n│   ├── models/\n│   │   └── user.model.js      # User schema\n│   ├── routes/\n│   │   ├── auth.route.js      # Authentication routes\n│   │   └── geminiRoute.js     # AI assistant routes\n│   ├── src/\n│   │   └── index.js           # Server entry point\n│   ├── gemini.js              # Gemini AI integration\n│   └── package.json\n├── frontend/\n│   ├── src/\n│   │   ├── components/        # Reusable components\n│   │   ├── Context/           # React context providers\n│   │   ├── pages/             # Page components\n│   │   ├── stores/            # Zustand state stores\n│   │   ├── utils/             # Utility functions\n│   │   ├── assets/           # Static assets\n│   │   ├── App.jsx           # Main app component\n│   │   └── main.jsx          # Entry point\n│   └── package.json\n├── .gitignore\n├── package.json\n└── README.md\n```\n\n## 🎯 Usage\n\n### Getting Started\n\n1. **Sign Up**: Create an account with email verification (OTP)\n2. **Customize Assistant**: Set your assistant's name and avatar\n3. **Start Chatting**: Use text or voice commands to interact with your assistant\n\n### Example Commands\n\n- **General**: \"How are you?\", \"Tell me a joke\"\n- **Search**: \"Search Google for React tutorials\"\n- **Media**: \"Play Ed Sheeran on Spotify\", \"Search YouTube for cooking recipes\"\n- **Time**: \"What time is it?\", \"What's today's date?\"\n- **Tools**: \"Open calculator\", \"Open calendar\"\n- **Weather**: \"What's the weather in London?\"\n- **News**: \"Show me latest news\"\n- **Finance**: \"What's the stock price of Apple?\"\n\n## 🔐 Authentication\n\nThe application uses JWT-based authentication with HTTP-only cookies for secure session management. Passwords are hashed using bcrypt.\n\n## 📸 Screenshots\n\n\u003c!-- Add screenshots here --\u003e\n_Placeholder for application screenshots_\n\n## 🚧 Future Improvements\n\n- [ ] Offline mode support\n- [ ] Multi-language voice support\n- [ ] Personalization profiles\n- [ ] Smart home integrations\n- [ ] Chat history \u0026 memory persistence\n- [ ] Voice command customization\n- [ ] Mobile app (React Native)\n- [ ] Real-time collaboration features\n- [ ] Advanced analytics dashboard\n- [ ] Plugin system for extensibility\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 📝 Commit Message Guidelines\n\nWe follow conventional commit messages:\n\n- `feat:` - New feature\n- `fix:` - Bug fix\n- `docs:` - Documentation changes\n- `style:` - Code style changes (formatting, etc.)\n- `refactor:` - Code refactoring\n- `test:` - Adding or updating tests\n- `chore:` - Maintenance tasks\n\nExample: `feat: Add voice recognition support`\n\n## 🐛 Known Issues\n\n- Gemini API integration may require API key configuration\n- Some features may not work in production without proper environment variables\n\n## 📜 License\n\nThis project is licensed under the ISC License.\n\n## 👤 Author\n\n**Shreyash Patel**\n\n- GitHub: [@shreyashpatel5506](https://github.com/shreyashpatel5506)\n- Project Link: [https://github.com/shreyashpatel5506/VirtualAssistant](https://github.com/shreyashpatel5506/VirtualAssistant)\n\n## ⭐ Support\n\nIf you like this project, please give it a star ⭐ on GitHub. It motivates further development and helps the project grow!\n\n## 🙏 Acknowledgments\n\n- Google Gemini AI for the powerful AI capabilities\n- All the open-source libraries that made this project possible\n- Contributors and users of this project\n\n---\n\n**Note**: Make sure to configure all environment variables before running the application. The Gemini API key is required for the assistant to function properly.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshreyashpatel5506%2Fvirtual-assistant-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshreyashpatel5506%2Fvirtual-assistant-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshreyashpatel5506%2Fvirtual-assistant-core/lists"}