A comprehensive student management system with QR code scanning, manual entry, offline support, and real-time synchronization.
.\setup.ps1 -MySQLPassword "MyCustomPassword"
- QR Code Scanning: Quick student registration using QR codes
- Manual Entry: Manual student registration with bulletproof data protection
- Offline Support: Works offline with automatic sync when reconnected
- Real-time Sync: WebSocket-based real-time data synchronization
- Massive Data Handling: Supports 1M+ students with chunked storage
- Zero Data Loss: Multiple backup layers ensure no data loss
- Multi-device Support: Multiple devices can connect and sync
- Excel Import: Import student data from Excel files with intelligent column mapping
- Node.js: Version 16 or higher
- MySQL: Version 8.0 or higher
- Modern Web Browser: Chrome, Firefox, Safari, or Edge
- Camera Access: For QR code scanning
- Internet Connection: For real-time sync (works offline too)
- Download and run
setup.bat(Windows) orsetup.sh(Linux/Mac) - Follow the on-screen instructions
- The script will automatically install and configure everything
- Download MySQL from mysql.com
- Install with default settings
- Remember the root password you set during installation
- Download Node.js from nodejs.org
- Install with default settings
git clone <repository-url>
cd stud-sys-v2npm install# Create database
mysql -u root -p < database/schema.sql
# Import sample data (optional)
mysql -u root -p < database/sample_data.sql# Copy environment template
cp .env.example .env
# Edit .env file with your database credentials# Start the server
npm start
# Or use the launcher
./LAUNCHER.bat # Windows
./LAUNCHER.sh # Linux/Mac- Install MySQL Server
- Create Database:
CREATE DATABASE student_management; USE student_management;
- Import Schema:
SOURCE database/schema.sql;
- Create User (Optional):
CREATE USER 'student_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON student_management.* TO 'student_user'@'localhost'; FLUSH PRIVILEGES;
Create a .env file in the project root:
# Database Configuration
DB_HOST=localhost
DB_PORT=3306
DB_NAME=student_management
DB_USER=root
DB_PASSWORD=your_mysql_password
# Server Configuration
PORT=3000
NODE_ENV=development
# WebSocket Configuration
WS_PORT=3000# Windows
LAUNCHER.bat
# Linux/Mac
./LAUNCHER.sh
# Or manually
npm start- Main Interface: http://localhost:3000
- Entry Scanner: http://localhost:3000/entry-scanner
- Exit Validator: http://localhost:3000/exit-validator
- Manager Dashboard: http://localhost:3000/manager
- Open Entry Scanner in your browser
- Enter device name (e.g., "Scanner-1", "Tablet-2")
- Allow camera access for QR scanning
- Start scanning or manual entry
- QR Code Scanning: Point camera at student QR codes
- Manual Entry: Add students manually with form
- Offline Mode: Works without internet connection
- Auto Sync: Automatically syncs when connected
- Student Validation: Verify student exit
- Real-time Updates: Receives student data from scanners
- Status Monitoring: Shows connection and sync status
- Overview: System status and statistics
- Device Management: Monitor connected devices
- Data Export: Export student data
- Settings: Configure system parameters
- Automatic Detection: Detects when offline
- Local Storage: Stores data locally when offline
- Auto Sync: Syncs when connection restored
- Zero Data Loss: Multiple backup layers
- Chunked Storage: Handles 1M+ students
- Batch Processing: Efficient data processing
- Progress Tracking: Real-time sync progress
- Memory Optimization: Optimized for large datasets
- Intelligent Mapping: Auto-detects column names
- Case Insensitive: Handles any column name format
- Data Validation: Validates and cleans data
- Quality Assessment: Analyzes data quality
- Instant Backup: Immediate backup of form data
- Emergency Backup: Fallback on errors
- Last Resort Backup: Memory-based final backup
- Data Validation: Comprehensive data validation
- Duplicate Prevention: Prevents duplicate entries
- Retry Logic: Automatic retry on failures
- Progress Recovery: Resumes from last position
- Integrity Checks: Data integrity verification
# Check MySQL service
sudo systemctl status mysql # Linux
net start mysql # Windows
# Test connection
mysql -u root -p# Find process using port 3000
netstat -ano | findstr :3000 # Windows
lsof -i :3000 # Linux/Mac
# Kill process
taskkill /PID <PID> /F # Windows
kill -9 <PID> # Linux/Mac- Check browser permissions
- Ensure camera is not used by another application
- Try different browser
- Check camera drivers
- Check network connection
- Verify WebSocket connection
- Check browser console for errors
- Use debug mode:
Ctrl+Shift+D
Ctrl+Shift+D: Show debug statusCtrl+Shift+S: Force sync all students- Right-click sync button: Show sync details
- Students: 1,000,000+ supported
- Devices: Unlimited concurrent devices
- Sync Speed: ~2000 records/minute
- Storage: Unlimited with chunked storage
- Memory: Optimized for large datasets
- Chrome: 90+ (Recommended)
- Firefox: 88+
- Safari: 14+
- Edge: 90+
- Local Storage: Encrypted local storage
- Backup Layers: Multiple backup systems
- Validation: Input validation and sanitization
- Error Handling: Secure error handling
- WebSocket: Secure WebSocket connections
- HTTPS: SSL/TLS encryption support
- CORS: Cross-origin resource sharing
- Rate Limiting: Request rate limiting
- Connection Status: Real-time connection monitoring
- Sync Status: Data synchronization status
- Device Status: Connected device monitoring
- Performance Metrics: System performance tracking
- Server Logs:
logs/server.log - Error Logs:
logs/error.log - Access Logs:
logs/access.log - Debug Logs: Browser console
- Check this README
- Review troubleshooting section
- Check browser console for errors
- Use debug commands
- Contact support team
- Fork the repository
- Create feature branch
- Make changes
- Test thoroughly
- Submit pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Install MySQL
- Install Node.js
- Run setup script
- Configure database
- Start the system
- Test with sample data
- Configure devices
- Start using the system
- v2.0: Complete rewrite with offline support
- v1.5: Added Excel import
- v1.0: Initial release
- Backup your data
- Download new version
- Run update script
- Test functionality
- Restore data if needed
Need Help? Check the troubleshooting section or contact support.
Happy Scanning! π