Smart India Hackathon 2025 - Problem Statement ID: 25070
Secure Data Wiping for Trustworthy IT Asset Recycling
A professional-grade React application for secure data wiping that ensures sensitive information is completely and permanently removed from IT assets before recycling or disposal.
- Overview
- Features
- Tech Stack
- Project Structure
- Getting Started
- Environment Variables
- Available Scripts
- Usage Guide
- Security Features
- API Integration
- Contributing
- Roadmap
- Team
DataWipe addresses the critical need for secure data disposal in IT asset recycling. When organizations dispose of or recycle IT equipment, residual data can pose significant security risks. This frontend application provides:
- Hardware-level data destruction using industry-standard tools (hdparm, nvme-cli)
- Multi-platform support for Windows, Linux, and Android devices
- Compliance certificates for audit trails and regulatory requirements
- User-friendly interface for both technical and non-technical users
- Real-time monitoring of data wiping operations
Organizations face challenges in ensuring complete data removal from IT assets before recycling. Traditional deletion methods leave recoverable data traces, creating security vulnerabilities and compliance issues. DataWipe solves this by implementing secure erase protocols at the hardware level.
-
Multi-Platform Data Wiping
- Windows (NTFS, FAT32, BitLocker integration)
- Linux (ext4, xfs, btrfs, LUKS encryption support)
- Android (Factory reset enhancement, secure storage clearing)
-
Hardware-Level Security
- hdparm ATA Secure Erase for SATA/IDE drives
- NVMe Crypto Erase for NVMe SSDs
- CLI mock interface for testing and development
-
Certificate Generation
- Official compliance certificates for every wipe operation
- Detailed reports with timestamps and verification data
- Downloadable PDF certificates for audit trails
-
Authentication System
- Secure user registration and login
- JWT-based authentication
- Protected routes and session management
-
Interactive Dashboard
- Real-time statistics (total wipes, success rate, data secured)
- Quick access to platform-specific solutions
- User profile management
-
History Tracking
- Complete log of all wipe operations
- Searchable and filterable history
- Export capabilities for reporting
-
Responsive Design
- Mobile-first approach
- Modern UI with TailwindCSS
- Smooth animations and transitions
- React 19.1.0 - Modern UI library with latest features
- React Router 7.6.3 - Client-side routing and navigation
- Vite 7.1.7 - Lightning-fast build tool and dev server
- TailwindCSS 4.1.11 - Utility-first CSS framework
- @tailwindcss/vite - Vite integration for Tailwind
- Custom CSS - Additional styling and animations
- React Context API - Global state management (AuthContext)
- Axios 1.12.0 - HTTP client for API requests
- React Toastify 11.0.5 - Toast notifications for user feedback
- ESLint 9.29.0 - Code linting and quality
- Vite Plugin React 4.7.0 - React fast refresh support
- Cookie Parser 1.4.7 - Cookie handling utilities
Frontend/
βββ public/ # Static assets
βββ src/
β βββ assets/ # Images, icons, and media files
β βββ components/ # React components
β β βββ Auth/ # Authentication components
β β β βββ Login.jsx
β β β βββ Register.jsx
β β βββ Certificates/ # Certificate generation & display
β β β βββ Certificates.jsx
β β βββ Dashboard/ # Main dashboard
β β β βββ Dashboard.jsx
β β β βββ Navbar.jsx
β β βββ Footer/ # Footer component
β β β βββ Footer.jsx
β β βββ Header/ # Header component
β β β βββ Header.jsx
β β βββ History/ # Wipe history tracking
β β β βββ History.jsx
β β βββ Landing/ # Landing page
β β β βββ LandingPage.jsx
β β βββ Layout/ # Layout wrapper
β β β βββ Layout.jsx
β β βββ Solutions/ # Platform-specific solutions
β β β βββ WindowsSolution.jsx
β β β βββ LinuxSolution.jsx
β β βββ User/ # User profile management
β β βββ User.jsx
β βββ context/ # React Context providers
β β βββ AuthContext.jsx # Authentication context
β βββ utils/ # Utility functions
β βββ App.css # Global styles
β βββ App.jsx # Root component
β βββ index.css # Base CSS
β βββ layout.jsx # Layout configuration
β βββ main.jsx # Application entry point
βββ .env # Environment variables (not in git)
βββ .gitignore # Git ignore rules
βββ eslint.config.js # ESLint configuration
βββ index.html # HTML template
βββ package.json # Dependencies and scripts
βββ package-lock.json # Locked dependencies
βββ README.md # This file
βββ vite.config.js # Vite configuration
Ensure you have the following installed:
- Node.js (v18.0.0 or higher)
- npm (v9.0.0 or higher) or yarn (v1.22.0 or higher)
- Git for version control
-
Clone the repository
git clone https://github.com/Poonam146/DataWipe.git cd DataWipe/Frontend -
Install dependencies
npm install
or
yarn install
-
Set up environment variables
Create a
.envfile in the root directory:VITE_API_BASE_URL=http://localhost:5000/api VITE_APP_NAME=DataWipe VITE_APP_VERSION=1.0.0
-
Start the development server
npm run dev
The application will be available at
http://localhost:5173
Create a .env file in the root directory with the following variables:
# API Configuration
VITE_API_BASE_URL=http://localhost:5000/api
# Application Configuration
VITE_APP_NAME=DataWipe
VITE_APP_VERSION=1.0.0
# Optional: Feature Flags
VITE_ENABLE_ANALYTICS=false
VITE_ENABLE_DEBUG=trueNote: All environment variables must be prefixed with VITE_ to be accessible in the application.
npm run dev # Start development server with hot reloadnpm run build # Build for production
npm run preview # Preview production build locallynpm run lint # Run ESLint to check code quality- Navigate to the landing page at
http://localhost:5173 - Click "Register" to create a new account
- Fill in your details (name, email, password)
- After registration, log in with your credentials
After logging in, you'll see:
- Welcome message with your name and email
- Quick stats showing total wipes, success rate, and data secured
- Quick actions to access Windows or Linux solutions
- Click "Windows Solution" from the dashboard
- Select the drive or folder to wipe
- Choose the wiping method (Quick, DoD 5220.22-M, Gutmann)
- Click "Start Wipe" and confirm
- Monitor progress in real-time
- Download the certificate upon completion
- Click "Linux Solution" from the dashboard
- Select the device or partition
- Choose the wiping algorithm (shred, dd, hdparm)
- Execute the wipe operation
- Verify completion and download certificate
- Navigate to "History" from the navbar
- View all past wipe operations
- Filter by date, platform, or status
- Export reports for compliance
- Access "Certificates" from the navbar
- View all generated certificates
- Download individual certificates as PDF
- Share certificates for audit purposes
- JWT-based authentication with secure token storage
- Password hashing on the backend (bcrypt)
- Protected routes requiring authentication
- Session management with automatic logout on token expiry
- Hardware-level erasure using industry-standard tools
- Multiple wiping algorithms (DoD 5220.22-M, Gutmann, etc.)
- Verification mechanisms to ensure complete data removal
- Audit trails for compliance and accountability
- Input validation on all forms
- XSS protection through React's built-in escaping
- CSRF protection via token-based authentication
- Secure cookie handling for session management
The frontend communicates with a backend API for all operations. Key endpoints include:
POST /api/auth/register // User registration
POST /api/auth/login // User login
GET /api/auth/profile // Get user profile
POST /api/auth/logout // User logoutPOST /api/wipe/windows // Initiate Windows wipe
POST /api/wipe/linux // Initiate Linux wipe
GET /api/wipe/status/:id // Check wipe status
POST /api/wipe/cancel/:id // Cancel ongoing wipeGET /api/history // Get wipe history
GET /api/certificates // Get all certificates
GET /api/certificates/:id // Download specific certificate
DELETE /api/history/:id // Delete history entryExample API Call:
import axios from 'axios';
const initiateWipe = async (data) => {
try {
const response = await axios.post(
`${import.meta.env.VITE_API_BASE_URL}/wipe/windows`,
data,
{
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`
}
}
);
return response.data;
} catch (error) {
console.error('Wipe failed:', error);
throw error;
}
};We welcome contributions to improve DataWipe! Here's how you can help:
-
Fork the repository
git clone https://github.com/YOUR_USERNAME/DataWipe.git
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow the existing code style
- Add comments for complex logic
- Update documentation if needed
-
Test your changes
npm run lint npm run build
-
Commit your changes
git commit -m "feat: add your feature description" -
Push to your fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Provide a clear description of changes
- Reference any related issues
- Wait for review and approval
- Use functional components with hooks
- Follow React best practices
- Use TailwindCSS for styling (avoid inline styles)
- Write meaningful commit messages (conventional commits)
- Add comments for complex logic
- Keep components small and focused
- β User authentication and authorization
- β Windows and Linux data wiping solutions
- β Certificate generation and management
- β History tracking and reporting
- β Responsive UI with TailwindCSS
- π Android solution implementation
- π Advanced reporting and analytics
- π Bulk operations support
- π Real-time progress tracking with WebSockets
- π Multi-language support (i18n)
- π Enterprise features (multi-user, roles, permissions)
- π Integration with asset management systems
- π Mobile application (React Native)
- π Advanced compliance reporting (GDPR, HIPAA)
- π Cloud storage integration
- π Scheduled wiping operations
Problem Statement ID: 25070
Theme: Secure Data Wiping for Trustworthy IT Asset Recycling
Organization: Smart India Hackathon 2025
For questions, issues, or suggestions:
- GitHub Issues: Create an issue
- Email: support@datawipe.com
- Documentation: Wiki
- Smart India Hackathon for the opportunity to solve real-world problems
- React Team for the amazing framework and ecosystem
- Vite Team for the blazing-fast build tool
- TailwindCSS for the utility-first CSS framework
- Open Source Community for inspiration and support
This project is developed for Smart India Hackathon 2025 and is subject to the competition's terms and conditions.
Built with β€οΈ for Smart India Hackathon 2025
β Star this repository if you find it helpful!