Deep Shield is a comprehensive deepfake detection platform designed for interviewers to verify the authenticity of candidates during video calls. The platform combines real-time deepfake detection with a powerful dashboard for analyzing detection results.
- Real-time Deepfake Detection: Capture and analyze screenshots from Google Meet calls using NVIDIA Hive AI
- Chrome Extension: Seamless integration with Google Meet for instant detection
- Analytics Dashboard: Comprehensive dashboard with charts, statistics, and detection history
- MongoDB Storage: Persistent storage of all detection results for analysis
- Modern UI: Beautiful, responsive Next.js dashboard with real-time data visualization
Deep Shield consists of three main components:
- Chrome Extension - Captures screenshots from Google Meet and sends them for analysis
- Backend API - Express.js server that processes images using NVIDIA Hive API and stores results in MongoDB
- Frontend Dashboard - Next.js application for viewing and analyzing detection results
- Node.js with Express.js
- MongoDB with Mongoose
- NVIDIA Hive API for deepfake detection
- RESTful API architecture
- Next.js 15 with React 19
- TypeScript for type safety
- Tailwind CSS for styling
- Recharts for data visualization
- shadcn/ui components
- Manifest V3
- Service Worker for background processing
- Content Scripts for Google Meet integration
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- pnpm (or npm/yarn)
- MongoDB (local installation or MongoDB Atlas account)
- Chrome Browser (for the extension)
- NVIDIA API Key (for deepfake detection)
git clone https://github.com/fashton28/DeepShield.git
cd DeepShieldcd backend
npm installCreate a .env file in the backend directory:
cp .env.example .envEdit .env with your configuration:
PORT=3000
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/deepfake-detection
NVIDIA_API_KEY=your_nvidia_api_key_herenpm start
# or for development with auto-reload
npm run devThe backend will start on http://localhost:3000
cd frontend
pnpm installCreate a .env.local file in the frontend directory:
NEXT_PUBLIC_API_URL=http://localhost:3000pnpm devThe frontend will start on http://localhost:3001 (or the next available port)
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" (toggle in the top right)
- Click "Load unpacked"
- Select the
chrome-extensiondirectory from this project - The extension should now appear in your extensions list
The extension requires icon files. Create or add the following to chrome-extension/icons/:
icon16.png(16x16 pixels)icon48.png(48x48 pixels)icon128.png(128x128 pixels)
See chrome-extension/icons/README.md for more details.
- Navigate to
https://meet.google.com/and join or start a meeting - Click the Deep Shield extension icon in your Chrome toolbar
- Click "Capture & Analyze" to capture a screenshot and analyze it
- View the results showing:
- Fake Probability percentage
- Confidence score
- Status (Likely Real, Uncertain, or Likely Deepfake)
- Open the dashboard at
http://localhost:3001/dashboard - View real-time statistics:
- Average Deepfake Percentage
- Total Detections
- Authentic Detections
- Recent Activity (last 24 hours)
- Explore charts and visualizations:
- Deepfake Detection Trend (line chart)
- Fake Probability Distribution (bar chart)
- Review detection history in the table with:
- Date and time
- Fake probability and confidence scores
- Status indicators
DeepShield/
βββ backend/ # Express.js backend API
β βββ db/ # MongoDB models and connection
β β βββ connection.js # Database connection
β β βββ models.js # Mongoose schemas
β βββ routes/ # API routes
β β βββ deepfake.js # Deepfake detection endpoints
β βββ services/ # Business logic
β β βββ hiveService.js # NVIDIA Hive API integration
β βββ server.js # Express server entry point
β βββ package.json # Backend dependencies
β
βββ frontend/ # Next.js frontend
β βββ app/ # Next.js app router
β β βββ dashboard/ # Dashboard page
β β βββ layout.tsx # Root layout
β β βββ page.tsx # Landing page
β βββ components/ # React components
β β βββ ui/ # shadcn/ui components
β β βββ header.tsx # Navigation header
β β βββ hero-content.tsx # Landing page hero
β βββ lib/ # Utilities
β β βββ api.ts # API client functions
β βββ package.json # Frontend dependencies
β
βββ chrome-extension/ # Chrome extension
β βββ manifest.json # Extension manifest
β βββ background.js # Service worker
β βββ content.js # Content script
β βββ popup.html # Extension popup UI
β βββ popup.js # Popup logic
β βββ popup.css # Popup styles
β βββ icons/ # Extension icons
β
βββ README.md # This file
Analyze an image for deepfake detection.
Request:
{
"image": "<base64_encoded_image>",
"timestamp": "2024-01-01T12:00:00.000Z"
}Response:
{
"success": true,
"result": {
"fake_probability": 0.164,
"confidence": 0.874,
"bounding_boxes": [...],
"timestamp": "2024-01-01T12:00:00.000Z"
}
}Get detection results from the database.
Query Parameters:
limit(optional): Number of results (default: 50)sort(optional): Sort order -ascordesc(default:desc)startDate(optional): Filter by start date (ISO string)endDate(optional): Filter by end date (ISO string)
Response:
{
"success": true,
"data": [
{
"_id": "...",
"deepfakePercentage": 0.164,
"confidence": 0.874,
"createdAt": "2024-01-01T12:00:00.000Z",
"updatedAt": "2024-01-01T12:00:00.000Z"
}
],
"total": 100,
"limit": 50
}Check if the server is running.
Response:
{
"status": "ok",
"timestamp": "2024-01-01T12:00:00.000Z"
}{
_id: ObjectId,
deepfakePercentage: Number, // 0-1 (probability of being fake)
confidence: Number, // 0-1 (model confidence)
createdAt: Date,
updatedAt: Date
}- PORT: Server port (default: 3000)
- MONGODB_URI: MongoDB connection string
- NVIDIA_API_KEY: Your NVIDIA Hive API key
- NEXT_PUBLIC_API_URL: Backend API URL (default: http://localhost:3000)
- BACKEND_URL: Backend API endpoint (configured in
background.js)
MongoDB Connection Error:
- Verify your
MONGODB_URIin.envis correct - Ensure MongoDB is running (local) or your Atlas cluster is accessible
- Check network connectivity
NVIDIA API Errors:
- Verify your
NVIDIA_API_KEYis correct and has proper permissions - Check API rate limits
- Ensure image size is within limits (< 180KB base64 for direct upload)
API Connection Errors:
- Verify
NEXT_PUBLIC_API_URLmatches your backend URL - Ensure the backend server is running
- Check CORS settings in the backend
No Data Displayed:
- Check browser console for errors
- Verify backend API is returning data
- Check network tab for failed requests
Extension Not Loading:
- Ensure all required files are present
- Check
manifest.jsonfor syntax errors - Verify icons are in the correct location
Screenshot Not Working:
- Ensure you're on a Google Meet page
- Check browser permissions for the extension
- Verify the backend URL is correct in
background.js
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the ISC License.
- NVIDIA Hive API for deepfake detection capabilities
- Next.js and React communities
- shadcn/ui for beautiful UI components
For issues, questions, or contributions, please open an issue on the GitHub repository.
Built with β€οΈ for reliable candidate verification