A full-stack antivirus application built with Spring Boot (Backend) and React (Frontend) that provides real-time file scanning, quarantine management, and system protection.
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
- 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
- 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
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
- JDK 17 or higher
- Node.js 14.x or higher
- Maven 3.6.x or higher
- npm 6.x or higher
- Navigate to the project root directory
- Run Maven build:
mvn clean install
- Start the Spring Boot application:
mvn spring-boot:run
- Backend will be available at
http://localhost:8080 - H2 Console will be available at
http://localhost:8080/h2-console
- Navigate to the frontend directory:
cd frontend - Install dependencies:
npm install
- Start the development server:
npm start
- Frontend will be available at
http://localhost:5000
- Database configuration:
src/main/resources/application.properties - Logging configuration:
src/main/resources/logback.xml - Security configuration:
src/main/java/com/antivirus/config/SecurityConfig.java
- API endpoint configuration:
frontend/src/config.js - Environment variables:
frontend/.env - Theme configuration:
frontend/src/theme.js
- Backend: Follow Google Java Style Guide
- Frontend: Follow Airbnb React/JSX Style Guide
- Create feature branches from
develop - Use conventional commits
- Submit PRs for review
- Merge to
developafter approval
- Backend: JUnit 5 for unit tests
- Frontend: Jest and React Testing Library
- Run tests:
# Backend mvn test # Frontend npm test
- 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
- Real-time system status monitoring
- Scan history visualization
- Quarantine management interface
- System health metrics
- Threat detection statistics
- Role-based access control
- Secure file handling
- Quarantine isolation
- API authentication
- Session management
- Application logs:
logs/directory - Scan history:
scan_history.log - Database logs:
antivirus_db.trace.db - Performance metrics: Prometheus integration
- Health checks: Actuator endpoints
- File system permissions
- Quarantine isolation
- API authentication
- Secure file handling
- Input validation
- XSS protection
- CSRF protection
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Dhruv0306 - Initial work
- Sameer7188 - Front-End work
- Spring Boot team
- React team
- Material-UI team
- All contributors and maintainers