Zarvis is your intelligent AI-powered virtual assistant built using the MERN stack, with seamless voice and text interaction powered by the Gemini AI API. Whether you want to have a conversation, do quick web tasks, hear a joke, or check the time โ Zarvis is always ready!
With a beautiful, animated interface and a human-like assistant experience, Zarvis bridges the gap between smart technology and friendly interaction.
๐ Try it now: zarvis.render.app
๐ค Always-On Voice Recognition
Just speak โ no wake word required! Zarvis listens continuously and responds instantly.
๐ง Conversational Intelligence (Gemini AI)
Ask anything! Gemini API handles natural language understanding to deliver helpful responses.
๐ฌ Dual Interaction Modes
Speak or type โ switch effortlessly based on your preference.
๐ผ๏ธ Custom Assistant Name & Image
Personalize your assistant's name and avatar to match your vibe.
๐ Smart Web Actions
Say "Open YouTube" or "Search Google" โ Zarvis opens websites for you in a new tab.
๐ Real-Time Info & Fun
Ask for the current time, date, or even crack a joke โ Zarvis keeps it fun and informative.
๐จ Stunning Animated UI
Includes:
- Waveform animation while listening ๐๏ธ
- Typewriter effect for replies โจ๏ธ
- Avatar reactions ๐งโ๐
- Responsive design with a clean layout
- MongoDB โ For storing user data and assistant preferences
- Express.js โ Backend API routes
- React.js โ Dynamic and animated user interface
- Node.js โ Runtime environment for the server
- Google Gemini API โ Handles all assistant responses
Web Speech APISpeechRecognitionfor voice inputspeechSynthesisfor voice output
- React.js
- Tailwind CSS โ For modern responsive UI
- Framer Motion โ Smooth animations and transitions
- React Icons โ Icons for UI elements
- React Router DOM โ Routing between pages
- Axios โ For API requests
- Node.js + Express.js โ REST API
- MongoDB (via Mongoose) โ Database
- CORS, dotenv, bcrypt โ Auth and config helpers
git clone https://github.com/Uddipta7/virtualAssistant.git
cd virtualAssistantnpm install
cd client
npm installIn the root folder, create a .env file with:
PORT=8000
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_key
CLOUDINARY_API_SECRET=your_secretIn the /client folder, create a .env with:
VITE_GEMINI_API_KEY=your_google_gemini_api_keyIn root (backend)
npm run devIn /client (frontend)
npm run devโโโ client/ # React frontend
โ โโโ components/
โ โโโ context/
โ โโโ assets/
โ โโโ pages/
โ โโโ App.jsx
โ โโโ main.jsx
โโโ server/ # Express backend
โ โโโ controllers/
โ โโโ models/
โ โโโ routes/
โ โโโ config/
โ โโโ index.js
โโโ .env
โโโ README.md