mavis-creator / blockchain-attendance-system
A secure, blockchain-verified attendance management system with device fingerprinting, IP tracking, and log-based storage (no SQL required)
Package info
github.com/MAVIS-creator/Blockchain-Based-Attendance-System
Type:project
pkg:composer/mavis-creator/blockchain-attendance-system
Requires
- php: >=7.4
- ext-json: *
- ext-mbstring: *
- ext-openssl: *
- dompdf/dompdf: ^3.1
- phpmailer/phpmailer: ^7.0
- web3p/web3.php: ^0.3.2
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2026-03-29 20:40:43 UTC
README
🛡 Blockchain-Secured Log-Based Attendance System
A secure, IP-fenced, blockchain-verified attendance management system that does not use SQL — all records are stored in `.log` files and chained with blockchain-style hashing.
🚀 Features
🔒 Security Highlights
- Input sanitization (
filter_var& trimming on all POST data) - IP logging and device fingerprinting to prevent spoofing
- Duplicate prevention (same matric or IP cannot perform the same action twice per day)
- Checkout restriction — cannot checkout without a prior check-in
- Invalid attempts log for all failed check-ins/outs
- Blockchain log chaining to make tampering detectable
- Optional Polygon integration for decentralized hash storage
- CSRF protection on admin write operations
- Optional geo-fence, IP whitelist, cooldown, and user-agent lock rules
- Locked file writes (
LOCK_EX/flock) on critical log/JSON update paths
📚 Feature Inventory (Full)
For a full repo-wide breakdown of implemented capabilities by module, see:
📦 Installation
Via Composer (Recommended)
composer create-project mavis-creator/blockchain-attendance-system attendance-system cd attendance-system cp .env.example .env # Edit .env with your configuration php -S localhost:8000
Manual Installation
git clone https://github.com/MAVIS-creator/Blockchain-Based-Attendance-System.git cd Blockchain-Based-Attendance-System composer install cp .env.example .env # Configure your .env file
📖 For detailed setup instructions, see QUICKSTART.md
⚙️ Configuration
All configuration is done via the .env file:
# SMTP Email Settings SMTP_HOST=smtp.gmail.com SMTP_PORT=587 SMTP_USER=your-email@gmail.com SMTP_PASS=your-app-password SMTP_SECURE=tls FROM_EMAIL=no-reply@example.com FROM_NAME=Attendance System # Application Settings APP_ENV=production APP_DEBUG=false APP_TIMEZONE=Africa/Lagos # Security Settings FINGERPRINT_ENABLED=true MAX_CHECKINS_PER_DAY=1
See .env.example for all available options.
⚙️ Running Locally
Using PHP Built-in Server
php -S localhost:8000
Visit: http://localhost:8000
Using XAMPP or WAMP
- Install XAMPP or WAMP
- Place project in
htdocs(XAMPP) orwww(WAMP) - Start Apache
- Visit:
http://localhost/blockchain-attendance-system/
🤝 Community & Contributions
- Report bugs with structured issue forms in GitHub Issues
- Request features, ask support questions, or open task/improvement issues
- Contribute via Pull Requests using the project PR template
- See contribution details in CONTRIBUTING.md
- This project is licensed under the MIT LICENSE – see LICENSE for details.
👤 Author
- Mavis – Gamer, Web Developer, Security Enthusiast
- 📧 Email: mavisenquires@gmail.com
- 🐙 GitHub: MAVIS-creator 💻 Co Author SamexHighshow
