Professional IT Technician Management Software built with Electron, React, and TypeScript.
A comprehensive desktop application designed for IT technicians to manage customers, jobs, invoices, and perform technical operations all in one place.
- Customer Management - Complete CRM for managing customer information, contacts, and history
- Job Tracking - Track jobs with status, priority, device info, and detailed checklists
- Invoice Generation - Create and manage invoices with automatic calculations and PDF export
- Reports & Analytics - Dashboard with statistics, job performance tracking
- Central hub for all technical tools
- Tool availability indicators
- Recent operations tracking
- Quick access to all features
- Device detection and information
- Full device backup and restore
- APK installation
- File transfer (push/pull)
- Screenshot capture
- Device reboot (system/recovery/bootloader)
- Operation history logging
- Wizard-based file transfer between PCs
- Quick select common folders (Desktop, Documents, Pictures, etc.)
- Size estimation and space verification
- Real-time progress with speed and ETA
- File integrity verification (MD5)
- Ping and Traceroute
- Port scanner (1-65535) with service detection
- Network information (interfaces, gateway, DNS, public IP)
- Speed test (download/upload/ping)
- ARP network device scanner
- Endpoint connectivity testing
- Complete hardware information (CPU, RAM, Storage, GPU, Motherboard)
- Real-time CPU usage monitoring
- Installed drivers list
- Installed programs list
- System report export (TXT/JSON)
- Post-Format Installer - Automated software installation with custom bundles
- Software Bundle Manager - Create and manage software packages
- Silent installation support
- Installation validation
- Node.js 18+ and npm
- Git
- Windows 10/11 (for full features)
# Clone the repository
git clone https://github.com/yourusername/TechnicianHub.git
cd TechnicianHub
# Install dependencies
npm install
# Start development server
npm run dev# Build for production
npm run build
# Build Windows installer
npm run build:win
# Build for macOS
npm run build:mac
# Build for Linux
npm run build:linuxTechnicianHub/
├── electron/ # Electron main process
│ ├── services/ # Backend services
│ ├── database/ # SQLite database & migrations
│ ├── main.ts # Electron entry point
│ └── preload.ts # IPC bridge
├── src/ # React frontend
│ ├── pages/ # Application pages
│ ├── components/ # Reusable components
│ ├── types/ # TypeScript definitions
│ └── App.tsx # Main app component
├── public/ # Static assets
└── package.json # Dependencies and scripts
- React 18 - UI framework
- TypeScript - Type safety
- Tailwind CSS - Styling
- React Router - Navigation
- React Hook Form - Form management
- Zod - Schema validation
- React Hot Toast - Notifications
- Lucide React - Icons
- Electron - Desktop framework
- Node.js - Runtime
- Better SQLite3 - Database
- IPC Communication - Frontend-Backend bridge
- ADB (Android Debug Bridge) - Android operations
- Native Windows Commands - System information and network tools
- Electron IPC - Secure communication between frontend and backend
- SQLite Database - Local data persistence with migrations
- Service Layer Pattern - Clean architecture with separated concerns
- Type-Safe APIs - Full TypeScript coverage
- Progress Tracking - Real-time operation progress with IPC events
- Connect Android device via USB
- Enable USB debugging on device
- Navigate to Tools > Android Tools
- Click "Refresh" to detect device
- Select desired operation (Backup, Restore, Install APK, etc.)
- Navigate to Tools > Data Transfer
- Follow the 4-step wizard:
- Select source folders
- Select destination
- Review and verify space
- Start transfer
- Navigate to Tools > Network Tools
- Select operation tab (Ping, Port Scan, Speed Test, etc.)
- Enter target host/IP
- Execute operation
- Navigate to Tools > System Info
- View comprehensive hardware/software information
- Export report if needed
- No external API calls for sensitive operations
- Local database storage
- IPC context isolation enabled
- Sandboxed renderer process
The application uses SQLite for local data storage:
- Customers and contacts
- Jobs and checklists
- Invoices and line items
- Software bundles and items
- Operational logs (Android, Network, Data Transfer)
- Settings and preferences
Migrations are automatically applied on startup.
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE file for details
For issues and feature requests, please use the GitHub issue tracker.
Made with ❤️ for IT Technicians