Skip to content

Dhruv0306/Antivirus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Antivirus Project

A full-stack antivirus application built with Spring Boot (Backend) and React (Frontend) that provides real-time file scanning, quarantine management, and system protection.

πŸš€ Project Overview

This project implements a comprehensive antivirus solution following the X.800 security architecture standard, with the following key features:

  • Real-time file scanning and monitoring
  • Quarantine management system
  • System protection and security
  • Scan history tracking and reporting
  • User-friendly dashboard interface
  • File analysis and threat detection
  • Database-driven virus signature management

πŸ› οΈ Tech Stack

Backend

  • Framework: Spring Boot
  • Database: H2 Database
  • Build Tool: Maven
  • Java Version: 17+
  • Key Dependencies:
    • Spring Web
    • Spring Data JPA
    • Spring Security
    • H2 Database
    • Lombok
    • JUnit 5

Frontend

  • Framework: React.js
  • State Management: React Hooks
  • UI Library: Material-UI
  • Build Tool: npm/yarn
  • Key Dependencies:
    • React Router
    • Axios
    • Material-UI
    • React Query
    • Jest & React Testing Library

πŸ“ Project Structure

antivirus/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”œβ”€β”€ java/com/antivirus/
β”‚   β”‚   β”‚   β”œβ”€β”€ config/         # Configuration classes
β”‚   β”‚   β”‚   β”œβ”€β”€ controller/     # REST controllers
β”‚   β”‚   β”‚   β”œβ”€β”€ model/          # Data models
β”‚   β”‚   β”‚   β”œβ”€β”€ repository/     # JPA repositories
β”‚   β”‚   β”‚   β”œβ”€β”€ service/        # Business logic
β”‚   β”‚   β”‚   └── util/           # Utility classes
β”‚   β”‚   └── resources/
β”‚   β”‚       β”œβ”€β”€ application.properties
β”‚   β”‚       └── static/         # Static resources
β”‚   └── test/
β”‚       └── java/com/antivirus/ # Test classes
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/         # React components
β”‚   β”‚   β”œβ”€β”€ pages/             # Page components
β”‚   β”‚   β”œβ”€β”€ services/          # API services
β”‚   β”‚   β”œβ”€β”€ utils/             # Utility functions
β”‚   β”‚   └── App.js             # Main App component
β”‚   └── public/                # Static assets
β”œβ”€β”€ quarantine/                # Quarantine storage
β”œβ”€β”€ logs/                      # Application logs
└── flowchart/                # Project documentation

πŸš€ Getting Started

Prerequisites

  • JDK 17 or higher
  • Node.js 14.x or higher
  • Maven 3.6.x or higher
  • npm 6.x or higher

Backend Setup

  1. Navigate to the project root directory
  2. Run Maven build:
    mvn clean install
  3. Start the Spring Boot application:
    mvn spring-boot:run
  4. Backend will be available at http://localhost:8080
  5. H2 Console will be available at http://localhost:8080/h2-console

Frontend Setup

  1. Navigate to the frontend directory:
    cd frontend
  2. Install dependencies:
    npm install
  3. Start the development server:
    npm start
  4. Frontend will be available at http://localhost:5000

πŸ”§ Configuration

Backend Configuration

  • Database configuration: src/main/resources/application.properties
  • Logging configuration: src/main/resources/logback.xml
  • Security configuration: src/main/java/com/antivirus/config/SecurityConfig.java

Frontend Configuration

  • API endpoint configuration: frontend/src/config.js
  • Environment variables: frontend/.env
  • Theme configuration: frontend/src/theme.js

πŸ“ Development Guidelines

Code Style

  • Backend: Follow Google Java Style Guide
  • Frontend: Follow Airbnb React/JSX Style Guide

Git Workflow

  1. Create feature branches from develop
  2. Use conventional commits
  3. Submit PRs for review
  4. Merge to develop after approval

Testing

  • Backend: JUnit 5 for unit tests
  • Frontend: Jest and React Testing Library
  • Run tests:
    # Backend
    mvn test
    
    # Frontend
    npm test

πŸ” Key Features Implementation

File Scanning System

  • Real-time file monitoring using Java NIO
  • Signature-based detection using virus database
  • Heuristic analysis for unknown threats
  • File quarantine system with isolation
  • Scan history tracking and reporting

Dashboard Features

  • Real-time system status monitoring
  • Scan history visualization
  • Quarantine management interface
  • System health metrics
  • Threat detection statistics

Security Features

  • Role-based access control
  • Secure file handling
  • Quarantine isolation
  • API authentication
  • Session management

πŸ“Š Logging and Monitoring

  • Application logs: logs/ directory
  • Scan history: scan_history.log
  • Database logs: antivirus_db.trace.db
  • Performance metrics: Prometheus integration
  • Health checks: Actuator endpoints

πŸ”’ Security Considerations

  • File system permissions
  • Quarantine isolation
  • API authentication
  • Secure file handling
  • Input validation
  • XSS protection
  • CSRF protection

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘₯ Authors

πŸ™ Acknowledgments

  • Spring Boot team
  • React team
  • Material-UI team
  • All contributors and maintainers

About

A full-stack antivirus application built with Spring Boot and React, following X.800 security architecture. Features real-time file scanning, quarantine management, and system protection with a modern dashboard interface. Built with security-first approach and comprehensive threat detection capabilities.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors