An advanced archive management application with intelligent file exploration, AI-powered insights, and a sophisticated navigation system.
- Multiple Format Support: Work with ZIP, TAR, GZ, and other archive formats
- Smart File Tree: Hierarchical view with expandable folders
- Quick Upload: Drag-and-drop interface for easy archive uploads
- Archive Comparison: Side-by-side comparison of multiple archives
- Intelligent Insights: AI-generated summaries and recommendations
- Smart Clustering: Automatic file organization based on content
- Pattern Recognition: Identify common patterns and structures
- Code Analysis: Metrics and quality analysis for source code files
- Keyboard Shortcuts: Press 1-9 to jump between views instantly
- Arrow Navigation: Use arrow keys to navigate between tabs
- Quick Access: Home/End keys to jump to first/last view
- Badge System: NEW, BETA, and dynamic count indicators
- Grouped Views: Organized by category (Core, Tools, Security, Analysis, Advanced)
- Mobile Optimized: Responsive design with dropdown navigation
- Vulnerability Scanner: Detect security issues in files
- Privacy Shield: Data encryption and protection
- Circuit Breaker: Automatic error recovery and resilience
- Security Monitoring: Real-time threat detection
- Usage Analytics: Track file access patterns
- Performance Metrics: Monitor application performance
- Code Metrics: Analyze code quality and complexity
- Dependency Graphs: Visualize file and module dependencies
- Wu Wei Interface: Zen-inspired, distraction-free mode
- Mushin State: Flow-optimized interface for deep work
- Cognitive Load Reducer: Simplified views when needed
- Incremental Processing: Handle large files efficiently
- Memory Compression: Optimized memory usage for big archives
ZIP Wizard uses a modern, layered architecture designed for performance, security, and extensibility:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Client Layer (React) β
β βββββββββββββββ¬βββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ β
β β Enhanced β AI Tools β Security β Analytics β β
β β Navigation β & Analysis β Scanner β Dashboard β β
β βββββββββββββββ΄βββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β State Management (TanStack Query) β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β HTTP/REST
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Server Layer (Express) β
β βββββββββββββββ¬βββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ β
β β Archive β File Parser β Circuit β Observer β β
β β Manager β & Analyzer β Breaker β Pattern β β
β βββββββββββββββ΄βββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Storage & Database (Drizzle ORM) β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PostgreSQL Database + File Storage β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key Processing Flow:
- Upload β Archive validation β Virus scan β Storage
- Parse β Streaming extraction β Metadata indexing β Tree generation
- Analyze β AI insights β Pattern recognition β Vulnerability scan
- Present β Cached results β Real-time updates β Interactive UI
Vulnerability Scanning:
- Real-time file scanning during upload and extraction
- Pattern-based detection for known vulnerabilities
- Heuristic analysis for zero-day threats
- Configurable scan depth and sensitivity levels
- Quarantine system for suspicious files
Circuit Breaker Protection:
- Automatic throttling on abnormal activity patterns
- Graceful degradation under load
- Error rate monitoring and auto-recovery
- User notification and manual override options
- Configurable thresholds per operation type
Privacy Shield:
- End-to-end encryption for sensitive archives
- Secure deletion with multi-pass overwrite
- Redacted file previews for sensitive content
- Configurable data retention policies
- GDPR-compliant data lifecycle management
Audit & Compliance:
- Immutable audit logs for all security events
- Exportable compliance reports (JSON, CSV, PDF)
- Role-based access control (RBAC) system
- Session tracking and anomaly detection
- Support for SOC 2, GDPR, and HIPAA workflows
Access Control:
- Fine-grained permissions per archive/file
- User roles: Admin, Analyst, Viewer, Guest
- API key management for programmatic access
- IP allowlisting and rate limiting
- OAuth 2.0 integration support
# Enable all security features in production
DATABASE_URL=postgresql://...
ENABLE_VIRUS_SCAN=true
ENABLE_CIRCUIT_BREAKER=true
ENABLE_AUDIT_LOG=true
MAX_UPLOAD_SIZE=100MB
SCAN_TIMEOUT=30sTested Limits:
- β Archives up to 10 TB in size
- β Files with 50+ million entries
- β Concurrent processing of 100+ archives
- β Sub-second navigation on commodity hardware
Performance Techniques:
Streaming Processing:
- Chunked reading of archives (no full memory load)
- Progressive UI updates during extraction
- Background workers for heavy computation
- Automatic memory cleanup and compression
Smart Caching:
- LRU cache for frequently accessed files
- Metadata indexing for instant search
- Virtual scrolling for large file trees
- Lazy loading of preview content
Parallel Processing:
- Web Workers for CPU-intensive tasks
- Parallel file parsing and analysis
- Concurrent archive comparison
- Background AI inference
Memory Optimization:
- Incremental garbage collection
- Memory pressure monitoring
- Automatic quality reduction under load
- Configurable memory limits per operation
Hardware Recommendations:
- Small Archives (<100MB): 2GB RAM, 2 CPU cores
- Medium Archives (100MB-1GB): 4GB RAM, 4 CPU cores
- Large Archives (1GB-10GB): 8GB RAM, 8 CPU cores
- Enterprise (10GB+): 16GB+ RAM, 16+ CPU cores, SSD storage
- Node.js 22.x or higher
- npm or yarn
- PostgreSQL database (for persistence)
- 4GB+ RAM recommended for large archives
# Clone the repository
git clone https://github.com/AUo959/zip_wizard.git
cd zip_wizard
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env and set your DATABASE_URL
# Push database schema
npm run db:push
# Start development server
npm run devThe application will be available at http://localhost:5000
# Build the application
npm run build
# Start production server
npm start# Run tests in watch mode
npm run test
# Run tests once
npm run test:run
# Run tests with UI
npm run test:ui
# Generate coverage report
npm run test:coverageTest Coverage:
- 39 tests passing
- Component tests for enhanced navigation
- Hook tests for state management
- Accessibility compliance testing
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run check # TypeScript type checking
npm run test # Run tests in watch mode
npm run test:ui # Interactive test UI
npm run test:coverage # Coverage report
npm run lint # Lint code
npm run lint:fix # Auto-fix linting issues
npm run format # Format code with Prettier
npm run format:check # Check code formatting
npm run validate # Full validation (types + format + tests)
npm run db:push # Push database schemazip_wizard/
βββ client/ # Frontend React application
β βββ src/
β βββ components/ # React components
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utilities and helpers
β βββ pages/ # Page components
β βββ __tests__/ # Test files
βββ server/ # Backend Express server
β βββ routes/ # API routes
β βββ db.ts # Database configuration
β βββ storage.ts # File storage handling
βββ shared/ # Shared types and schemas
β βββ schema.ts # Database schemas
β βββ types.ts # TypeScript types
β βββ views.ts # View definitions
βββ docs/ # Documentation
βββ .github/
βββ workflows/ # CI/CD workflows
ZIP Wizard is designed for extensibility. You can add custom functionality through:
// server/formats/custom-format.ts
import { FormatHandler } from '../lib/format-handler';
export class CustomFormatHandler implements FormatHandler {
canHandle(buffer: Buffer): boolean {
return buffer.toString('hex', 0, 4) === 'cafebabe';
}
async parse(buffer: Buffer): Promise<ArchiveMetadata> {
// Your parsing logic
}
}
// Register in server/index.ts
registerFormatHandler(new CustomFormatHandler());// server/scanners/custom-scanner.ts
export class CustomScanner implements VulnerabilityScanner {
async scan(file: FileEntry): Promise<ScanResult> {
// Your scanning logic
return {
threats: [],
severity: 'none',
recommendations: [],
};
}
}// server/ai/custom-analyzer.ts
export class CustomAnalyzer implements AIAnalyzer {
async analyze(files: FileEntry[]): Promise<Insights> {
// Your AI analysis logic
}
}Plugin Development Guide: See PLUGIN_GUIDE.md for detailed examples and best practices.
ZIP Wizard is built with accessibility as a core principle:
- Full keyboard support - No mouse required
- Tab navigation - Logical tab order throughout
- Keyboard shortcuts - 1-9, arrows, Home/End for quick access
- Focus indicators - Clear visual focus states
- Skip links - Jump to main content
- ARIA labels - Comprehensive labeling for all interactive elements
- ARIA live regions - Dynamic content announcements
- Semantic HTML - Proper heading hierarchy and landmarks
- Alt text - Descriptive text for all images and icons
- Status messages - Clear feedback for all actions
- High contrast - WCAG AA compliant color ratios (4.5:1+)
- Customizable themes - Light, dark, and high-contrast modes
- Scalable text - Supports browser zoom up to 200%
- No color-only indicators - Icons and patterns supplement colors
- Reduced motion - Respects
prefers-reduced-motion
- Automated testing with axe-core
- Manual testing with NVDA, JAWS, and VoiceOver
- Keyboard-only navigation testing
- Color contrast validation
Accessibility Level: WCAG 2.1 Level AA compliant
- πΊπΈ English (default)
- πͺπΈ Spanish
- π«π· French
- π©πͺ German
- π―π΅ Japanese
- π¨π³ Chinese (Simplified)
// client/src/locales/es.json
{
"navigation.files": "Archivos",
"navigation.status": "Estado",
"actions.upload": "Subir archivo"
}To contribute translations:
- Copy
client/src/locales/en.json - Translate all strings
- Submit a PR with your locale file
# Environment variable
LOCALE=es npm run dev
# Or in user preferences
Settings β Language β EspaΓ±olStructured JSON logs for all operations:
{
"timestamp": "2025-10-28T12:34:56Z",
"level": "info",
"service": "archive-parser",
"action": "extract",
"archiveId": "abc123",
"fileCount": 1500,
"duration_ms": 234
}Log Levels:
error- Critical failures requiring immediate attentionwarn- Degraded performance or recoverable errorsinfo- Normal operations and milestonesdebug- Detailed diagnostic information
Built-in metrics tracked:
- Upload/download throughput
- Parse and extraction times
- Memory and CPU usage
- API response times
- Cache hit rates
- Error rates by operation
Export formats:
- Prometheus (metrics endpoint:
/metrics) - JSON (API:
/api/metrics) - CloudWatch (AWS integration)
Distributed tracing for request flows:
- Trace ID propagation across services
- Span annotations for key operations
- Performance bottleneck identification
- Error correlation
Integration: OpenTelemetry compatible
Real-time dashboard at /status shows:
- Active circuit breaker states
- Error rates per operation
- Recovery timelines
- Manual override controls
GDPR Compliance:
- β Right to access (export all user data)
- β Right to erasure (secure deletion)
- β Data portability (JSON/CSV export)
- β Consent management
- β Data processing agreements
HIPAA Considerations:
- β Encryption at rest and in transit
- β Audit logging of all PHI access
- β Role-based access controls
- β Automatic session timeouts
β οΈ Requires additional BAA for healthcare use
SOC 2 Type II:
- β Security controls documented
- β Continuous monitoring
- β Incident response procedures
- β Regular security audits
Default policies:
- Archives: 90 days after last access
- Audit logs: 2 years
- User data: Until account deletion
- Temporary files: 24 hours
Configurable via:
DATA_RETENTION_DAYS=90
AUDIT_LOG_RETENTION_YEARS=2
TEMP_FILE_CLEANUP_HOURS=24See LICENSE-THIRD-PARTY.md for all dependencies and their licenses.
Q: Upload fails with "File too large"
# Increase upload limit in .env
MAX_UPLOAD_SIZE=500MBQ: Extraction is slow for large archives
- Enable streaming mode (default for archives >100MB)
- Increase memory allocation:
NODE_OPTIONS=--max-old-space-size=4096 - Use SSD storage for better I/O performance
Q: Circuit breaker is blocking operations
- Check
/statusdashboard for error details - Review audit logs:
npm run logs:audit - Manual reset:
curl -X POST http://localhost:5000/api/circuit-breaker/reset
Q: Vulnerability scanner shows false positives
- Adjust scan sensitivity in Settings β Security
- Add exceptions for known-safe patterns
- Submit feedback to improve detection
Q: Tests are failing
# Clear test cache
rm -rf node_modules/.vitest
npm run test:run- π Documentation: docs/
- π Bug Reports: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π Security Issues: security@zipwizard.example (private disclosure)
Enable debug logging:
DEBUG=zip-wizard:* npm run devProfile performance:
NODE_ENV=production npm run build
npm run start -- --profileCheck database health:
npm run db:check- WebAssembly support for faster parsing
- Real-time collaborative archive exploration
- Advanced AI repair suggestions
- S3-compatible cloud storage integration
- Browser extension for direct download analysis
- Mobile app (React Native)
- GraphQL API
- Webhook notifications
- Custom report templates
- Large archive comparison (>5GB each) may timeout - #42
- Safari <15 has limited Web Worker support - #67
- Dark mode theme needs refinement - #89
See full roadmap: GitHub Projects
| Shortcut | Action |
|---|---|
1-9 |
Jump to view 1-9 |
β β |
Navigate between tabs |
Home |
Jump to first tab |
End |
Jump to last tab |
Esc |
Close dialogs/dropdowns |
- Enhanced Navigation - Navigation system documentation
- Navigation Integration - Implementation guide
- Testing Guide - Testing documentation
- Testing Infrastructure - Test setup and configuration
- Architecture - System architecture overview
- React 18 - UI framework
- TypeScript - Type safety
- Vite - Build tool and dev server
- TanStack Query - Server state management
- Tailwind CSS - Styling
- Radix UI - Accessible component primitives
- Lucide React - Icons
- Express - Web server
- Drizzle ORM - Database ORM
- PostgreSQL - Database
- tsx - TypeScript execution
- Vitest - Test framework
- Testing Library - React component testing
- jsdom - DOM testing environment
- ESLint - Linting
- Prettier - Code formatting
- TypeScript - Type checking
- GitHub Actions - Automated testing and deployment
- Codecov - Code coverage tracking
- Trivy - Security scanning
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
We follow Conventional Commits:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changestest:- Test additions or changesrefactor:- Code refactoringstyle:- Code style changes (formatting, etc.)chore:- Maintenance tasksperf:- Performance improvementssecurity:- Security-related changes
- Create a feature branch from
main - Make your changes with tests
- Run
npm run validateto ensure all checks pass - Submit PR with clear description
- Address review feedback
- Merge after approval
- Tests added/updated and passing
- Documentation updated
- Accessibility checked (keyboard, screen reader)
- Security implications reviewed
- Performance impact assessed
- Breaking changes documented
DO NOT open public issues for security vulnerabilities.
Instead:
- Email: security@zipwizard.example
- Use GitHub Security Advisories (private disclosure)
- Expected response time: 48 hours
- Critical: Patched within 24 hours
- High: Patched within 7 days
- Medium: Patched in next release
- Low: Addressed in regular maintenance
All contributors must:
- Enable 2FA on GitHub account
- Sign commits with GPG key (preferred)
- Follow OWASP secure coding guidelines
- Never commit secrets or credentials
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with modern web technologies
- Inspired by Zen philosophy for productivity features
- Community-driven development
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Made with β€οΈ by the ZIP Wizard team