Loading repository dataβ¦
Loading repository dataβ¦
shreyashpatel5506 / repository
ποΈ 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.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
A 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.
Quick-launch links to:
git clone https://github.com/shreyashpatel5506/VirtualAssistant.git
cd VirtualAssistant
# Install root dependencies
npm install
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install
Create a .env file in the backend directory:
# Server Configuration
PORT=8080
NODE_ENV=development
FRONTEND_URL=http://localhost:5173
# Database
MONGO_URI=your_mongodb_connection_string
# JWT Secret
JWT_SECRET=your_jwt_secret_key
# Email Configuration (for OTP)
MY_MAIL=your_email@gmail.com
MY_PASSWORD=your_app_password
# Cloudinary Configuration
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
# Gemini AI Configuration
GEMINI_API_URL=https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=YOUR_API_KEY
# Optional: API Template (for document generation)
APITEMPLATE_API_KEY=your_api_key
APITEMPLATE_TEMPLATE_ID=your_template_id
Create a .env file in the frontend directory (optional):
VITE_API_URL=http://localhost:8080/api
Terminal 1 - Backend:
cd backend
npm run dev
Terminal 2 - Frontend:
cd frontend
npm run dev
The application will be available at:
http://localhost:5173http://localhost:8080# Build frontend
npm run build
# Start backend (serves both API and frontend)
npm start
VirtualAssistant/
βββ backend/
β βββ config/
β β βββ cloudinary.js # Cloudinary configuration
β β βββ db.js # MongoDB connection
β βββ controllers/
β β βββ auth.controller.js # Authentication logic
β β βββ token.js # JWT token utilities
β βββ middleware/
β β βββ auth.middleware.js # Authentication middleware
β β βββ multer.js # File upload middleware
β βββ models/
β β βββ user.model.js # User schema
β βββ routes/
β β βββ auth.route.js # Authentication routes
β β βββ geminiRoute.js # AI assistant routes
β βββ src/
β β βββ index.js # Server entry point
β βββ gemini.js # Gemini AI integration
β βββ package.json
βββ frontend/
β βββ src/
β β βββ components/ # Reusable components
β β βββ Context/ # React context providers
β β βββ pages/ # Page components
β β βββ stores/ # Zustand state stores
β β βββ utils/ # Utility functions
β β βββ assets/ # Static assets
β β βββ App.jsx # Main app component
β β βββ main.jsx # Entry point
β βββ package.json
βββ .gitignore
βββ package.json
βββ README.md
The application uses JWT-based authentication with HTTP-only cookies for secure session management. Passwords are hashed using bcrypt.
Placeholder for application screenshots
Contributions 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.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)We follow conventional commit messages:
feat: - New featurefix: - Bug fixdocs: - Documentation changesstyle: - Code style changes (formatting, etc.)refactor: - Code refactoringtest: - Adding or updating testschore: - Maintenance tasksExample: feat: Add voice recognition support
This project is licensed under the ISC License.
Shreyash Patel
If you like this project, please give it a star β on GitHub. It motivates further development and helps the project grow!
Note: Make sure to configure all environment variables before running the application. The Gemini API key is required for the assistant to function properly.