mavis-creator / blockchain-attendance-system
A secure, blockchain-verified attendance management system with device fingerprinting, IP tracking, and log-based storage (no SQL required)
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
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
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
📦 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/
- This project is licensed under the MIT LICENSE – see the LICENSE file for details.
👤 Author
- Mavis – Gamer, Web Developer, Security Enthusiast
- 📧 Email: mavisenquires@gmail.com
- 🐙 GitHub: MAVIS-creator 💻 Co Author SamexHighshow
