Skip to content

tabishraza302/SecureScan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ”’ SecureScan Suite β€” Real-Time Threat Detection Platform

JavaScript Node.js Express.js MySQL React TailwindCSS License: MIT

SecureScan is a modern, privacy-first suite for real-time website threat analysis. It includes a browser extension with modern gradient UI, an interactive web dashboard, and a robust backend API with comprehensive logging and validation. Powered by VirusTotal and URLScan, it detects malicious domains before they can do damage.


✨ Key Highlights

βœ… Modern Tech Stack - Built with JavaScript and latest frameworks βœ… Beautiful Gradient UI - Professional blue-cyan design system across all components βœ… Enterprise Logging - Winston-based centralized logging in backend βœ… Robust Validation - Email, URL, domain validation utilities βœ… Production Ready - Full error handling, environment validation, security hardened βœ… Complete Documentation - Comprehensive READMEs with setup guides and API documentation


πŸ“ Project Structure

SecureScan/
β”œβ”€β”€ Extension/           # Browser extension (React + Chrome APIs)
β”‚   β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ dist/           # Production build
β”‚   └── README.md       # Extension documentation
β”œβ”€β”€ Frontend/            # Web dashboard (React 19 + TailwindCSS)
β”‚   β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ dist/           # Production build
β”‚   └── README.md       # Frontend documentation
β”œβ”€β”€ Backend/             # Node.js + Express API
β”‚   β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ logs/           # Application logs
β”‚   β”œβ”€β”€ dist/           # Compiled JavaScript
β”‚   └── README.md       # Backend documentation
β”œβ”€β”€ screenshots/         # Demo images
└── README.md

πŸš€ Quick Start

Prerequisites

  • Node.js (v18+)
  • npm or yarn
  • Chrome browser (for extension)
  • API keys: VirusTotal, URLScan

1. Clone Repository

git clone https://github.com/tabishraza302/SecureScan.git
cd SecureScan

🧩 Component Setup

Browser Extension

cd Extension
npm install
npm run build

Load in Chrome:

  1. Go to chrome://extensions/
  2. Enable "Developer Mode"
  3. Click "Load unpacked"
  4. Select the dist/ folder

πŸ“– Extension Documentation


Frontend Web Dashboard

cd Frontend
npm install
npm run dev

Open http://localhost:5174

πŸ“– Frontend Documentation


Backend API Server

cd Backend
npm install

Create .env file:

# API Keys (Get from VirusTotal and URLScan)
VIRUS_TOTAL_KEY=your_virustotal_api_key
URLSCANIO_KEY=your_urlscan_api_key

# JWT Configuration
JWT_SECRET=your_secret_key_change_in_production
JWT_EXPIRY=7d

# Database
DB_HOST=localhost
DB_PORT=3306
DB_NAME=securescan_db
DB_USER=root
DB_PASSWORD=your_db_password

# Server
NODE_ENV=development
PORT=3000
ORIGIN=http://localhost:5173,http://localhost:5174

# Logging
LOG_LEVEL=info

Run development server:

npm run dev

πŸ“– Backend Documentation


πŸ“Έ Screenshots

Threat Detected Β  Summary Overview

Home page website Β  Scan detail summary

Scan detail antivirus result Β  Scan detail external links


βš™οΈ How It Works

  1. πŸ”— User visits a website
  2. 🧩 Extension extracts the domain and sends it to the backend
  3. πŸ“‘ Backend queries VirusTotal and URLScan APIs
  4. πŸ“Š Results are displayed with threat level, risk summary, and visualizations
  5. πŸ“ Scan history is stored in MySQL database

πŸ› οΈ Tech Stack

Frontend

  • React 19 (latest)
  • TailwindCSS 4 (styling)
  • Radix UI (components)
  • Lucide Icons

Backend

  • Node.js + Express.js
  • MySQL + Sequelize
  • Winston (logging)
  • JWT (authentication)

Extension

  • React 19
  • Chrome APIs (Manifest V3)
  • TailwindCSS 4
  • Recharts (visualization)

✨ Key Features

  • πŸ” Real-time Detection - Scan domains instantly
  • πŸ“Š Beautiful Visualizations - Radial charts and statistics
  • 🎨 Modern UI - Gradient design system (blue-cyan)
  • πŸ” Secure - JWT authentication, encrypted communication
  • 🧩 Modular - Clean architecture, easy to extend
  • πŸ“± Responsive - Works on desktop and mobile
  • 🌍 Privacy-First - No tracking, minimal data collection
  • ⚑ Fast - Optimized builds, quick load times
  • πŸ“ Well Documented - Complete setup and API docs

πŸ“Š Build Status

Frontend

  • βœ… Bundle: 324.74 kB (gzipped: 101.76 kB)
  • βœ… Build time: < 2 seconds
  • βœ… Status: Production ready

Backend

  • βœ… Environment validation: βœ“
  • βœ… Logging: Winston configured
  • βœ… Status: Production ready

Extension

  • βœ… Bundle: 1.95 MB total
  • βœ… Build time: ~10 seconds
  • βœ… Status: Production ready

πŸ“š Documentation


πŸ”’ Security Features

  • Input Validation - Comprehensive email, URL, domain validation
  • Error Handling - No sensitive data in error messages
  • Authentication - JWT-based with configurable expiry
  • CORS - Configurable origin restrictions
  • Logging - Centralized logging without sensitive data
  • Environment Validation - Required variables checked at startup

πŸ“‹ Available Scripts

Frontend

npm run dev           # Development server
npm run build         # Production build
npm run preview       # Preview build
npm run lint          # ESLint check

Backend

npm run dev           # Development with auto-reload
npm run build         # TypeScript compilation
npm start             # Production server
npm test              # Run tests
npm run lint          # ESLint check

Extension

npm run dev           # Development server
npm run build         # Production build
npm run preview       # Preview build
npm run lint          # ESLint check

πŸ› Troubleshooting

Port Already in Use?

# Find and kill process (macOS/Linux)
lsof -i :3000 | grep LISTEN | awk '{print $2}' | xargs kill -9

Extension Not Loading?

  • Ensure you're loading from dist/ folder
  • Check Chrome DevTools console for errors
  • Reload extension in Extensions page

Database Connection Error?

  • Verify MySQL is running
  • Check DB credentials in .env
  • Ensure database exists

API Keys Not Working?

  • Verify keys in .env
  • Check API service status
  • Ensure keys have correct permissions

See individual README files for more detailed troubleshooting.


πŸ“„ License

This project is licensed under the MIT License. See LICENSE for details.


πŸ‘₯ Contributing

We welcome contributions! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a detailed pull request

πŸ™‹β€β™‚οΈ Author

Tabish Raza


πŸŽ‰ Acknowledgments


Built with ❀️ for safer web browsing

Version: 1.0.0 Last Updated: December 10, 2024 Status: βœ… Production Ready

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors