PHPackages                             mavis-creator/blockchain-attendance-system - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Security](/categories/security)
4. /
5. mavis-creator/blockchain-attendance-system

ActiveProject[Security](/categories/security)

mavis-creator/blockchain-attendance-system
==========================================

A secure, blockchain-verified attendance management system with device fingerprinting, IP tracking, and log-based storage (no SQL required)

v2.0.0(5mo ago)00MITPHPPHP &gt;=7.4CI passing

Since Nov 26Pushed 1mo agoCompare

[ Source](https://github.com/MAVIS-creator/Blockchain-Based-Attendance-System)[ Packagist](https://packagist.org/packages/mavis-creator/blockchain-attendance-system)[ Docs](https://github.com/MAVIS-creator/Blockchain-Based-Attendance-System)[ RSS](/packages/mavis-creator-blockchain-attendance-system/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (4)Versions (3)Used By (0)

 [![Blockchain-Secured Attendance System](asset/banner.png)](asset/banner.png)

🛡 Blockchain-Secured Log-Based Attendance System
================================================

[](#-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.

 [![PHP](https://camo.githubusercontent.com/1ebba278495cb8f01bbca83ca71a31b68a629b5679ff06850d98e771a171febb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e782d626c7565)](https://camo.githubusercontent.com/1ebba278495cb8f01bbca83ca71a31b68a629b5679ff06850d98e771a171febb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e782d626c7565) [![License](https://camo.githubusercontent.com/5caa455d8debc46fb23abbadb45a733a937f3910a73fc875c2f7820468e1bb54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e)](https://camo.githubusercontent.com/5caa455d8debc46fb23abbadb45a733a937f3910a73fc875c2f7820468e1bb54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e) [![Log Files](https://camo.githubusercontent.com/97a3d595ab1007b337462bcece54ac6a4500c591fe592dca16b8a4cba73b8fcd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53746f726167652d4c6f6725323046696c65732d6c6967687467726579)](https://camo.githubusercontent.com/97a3d595ab1007b337462bcece54ac6a4500c591fe592dca16b8a4cba73b8fcd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53746f726167652d4c6f6725323046696c65732d6c6967687467726579)

---

🚀 Features
----------

[](#-features)

### 👤 Client/User

[](#-clientuser)

- Check-in / Check-out attendance [![Check-in](https://camo.githubusercontent.com/345c00fedfb4e3f6358841b354df5c5a0a20c7249d11584c066979b626e061dd/68747470733a2f2f692e6962622e636f2f714d6779316764782f696d6167652e706e67)](https://camo.githubusercontent.com/345c00fedfb4e3f6358841b354df5c5a0a20c7249d11584c066979b626e061dd/68747470733a2f2f692e6962622e636f2f714d6779316764782f696d6167652e706e67)[![Check-out](https://camo.githubusercontent.com/783b3575e0c134c52cdc9cb968744fb302db2c87fc5b1888493e64726d1915c4/68747470733a2f2f692e6962622e636f2f475370564d39792f696d6167652e706e67)](https://camo.githubusercontent.com/783b3575e0c134c52cdc9cb968744fb302db2c87fc5b1888493e64726d1915c4/68747470733a2f2f692e6962622e636f2f475370564d39792f696d6167652e706e67)
- Create support tickets [![Support Tickets](https://camo.githubusercontent.com/d1e5541d69f51cb6afb098debbf291126a01fd01359a64a705130233ec6ecc31/68747470733a2f2f692e6962622e636f2f73644478665646742f696d6167652e706e67)](https://camo.githubusercontent.com/d1e5541d69f51cb6afb098debbf291126a01fd01359a64a705130233ec6ecc31/68747470733a2f2f692e6962622e636f2f73644478665646742f696d6167652e706e67)
- View announcements [![View Announcements](https://camo.githubusercontent.com/9bd776312877dcfaa8197440890f57583f87216d028dc5ac6f488502cb81bdde/68747470733a2f2f692e6962622e636f2f6d434736686b50642f696d6167652e706e67)](https://camo.githubusercontent.com/9bd776312877dcfaa8197440890f57583f87216d028dc5ac6f488502cb81bdde/68747470733a2f2f692e6962622e636f2f6d434736686b50642f696d6167652e706e67)
- Closed-state handling for inactive/disabled attendance windows
- Device-aware attendance validation

### 🛠 Admin

[](#-admin)

- Enable/Disable check-in and check-out modes [![Enable/Disable Modes](https://camo.githubusercontent.com/3d0a16935da34e82f6b1fe6e84f5031044b1f93cce3998980dd9bebae20f8aeb/68747470733a2f2f692e6962622e636f2f5146794c42446a4a2f696d6167652e706e67)](https://camo.githubusercontent.com/3d0a16935da34e82f6b1fe6e84f5031044b1f93cce3998980dd9bebae20f8aeb/68747470733a2f2f692e6962622e636f2f5146794c42446a4a2f696d6167652e706e67)
- View all logs (valid &amp; failed attempts) [![Valid Logs](https://camo.githubusercontent.com/d6871e5eca8b7fea523b6850aff3ca40a2edfc3723465630d4aeaa00180e0fa0/68747470733a2f2f692e6962622e636f2f59373336585170352f696d6167652e706e67)](https://camo.githubusercontent.com/d6871e5eca8b7fea523b6850aff3ca40a2edfc3723465630d4aeaa00180e0fa0/68747470733a2f2f692e6962622e636f2f59373336585170352f696d6167652e706e67)[![Failed Logs](https://camo.githubusercontent.com/ada22ef02ccbd7ee1a46ebc2dd6dee91097e36ab64fc2e7f2531409459fa2387/68747470733a2f2f692e6962622e636f2f6b7254724a70732f696d6167652e706e67)](https://camo.githubusercontent.com/ada22ef02ccbd7ee1a46ebc2dd6dee91097e36ab64fc2e7f2531409459fa2387/68747470733a2f2f692e6962622e636f2f6b7254724a70732f696d6167652e706e67)
- **Email log exports** with advanced filtering:
    - Multi-file selection (date &amp; course groups)
    - Filter by date range, time range, course
    - Select specific columns to include
    - Export as CSV or PDF
    - Send individual files or grouped batches
- Automated log sending via scheduled task (`auto_send_logs.php`)
- Create, edit, and delete courses [![Manage Courses](https://camo.githubusercontent.com/b6c43ac5dadf7146c22038c3795ec244f411568cbc5531b3be947cfc8ba6224b/68747470733a2f2f692e6962622e636f2f7a565273706b38762f696d6167652e706e67)](https://camo.githubusercontent.com/b6c43ac5dadf7146c22038c3795ec244f411568cbc5531b3be947cfc8ba6224b/68747470733a2f2f692e6962622e636f2f7a565273706b38762f696d6167652e706e67)
- Set active courses for attendance [![Set Active Courses](https://camo.githubusercontent.com/26950beb34f87c8495d7e2eb751ebe0e7f7fc94f71261cdb3bf6c6b2d1f4e20f/68747470733a2f2f692e6962622e636f2f3630385430534a322f696d6167652e706e67)](https://camo.githubusercontent.com/26950beb34f87c8495d7e2eb751ebe0e7f7fc94f71261cdb3bf6c6b2d1f4e20f/68747470733a2f2f692e6962622e636f2f3630385430534a322f696d6167652e706e67)
- Make manual attendance entries [![Manual Attendance](https://camo.githubusercontent.com/abe1f66f6329993f188a3705f917caa3e084ee54349bb6855f3285cbf1778c91/68747470733a2f2f692e6962622e636f2f4c646e71306a63502f696d6167652e706e67)](https://camo.githubusercontent.com/abe1f66f6329993f188a3705f917caa3e084ee54349bb6855f3285cbf1778c91/68747470733a2f2f692e6962622e636f2f4c646e71306a63502f696d6167652e706e67)
- Unlink fingerprints from users [![Unlink Fingerprints](https://camo.githubusercontent.com/cf1ddc9f18f3415003e3794492680645e5a17fbfdd1d90a467aae69455b59d74/68747470733a2f2f692e6962622e636f2f647364314e566b442f696d6167652e706e67)](https://camo.githubusercontent.com/cf1ddc9f18f3415003e3794492680645e5a17fbfdd1d90a467aae69455b59d74/68747470733a2f2f692e6962622e636f2f647364314e566b442f696d6167652e706e67)
- Clear device mappings and manage revocations (token/IP/MAC)
- Backup / restore logs + chain data from ZIP
- Audit log viewer and retention purge controls
- Admin internal chat (post/fetch/delete)
- View Support Tickets [![View Support Tickets](https://camo.githubusercontent.com/d7abac0687013177bcfe01d00a7ce08ada34cff30d14313ed9030cd98752ea20/68747470733a2f2f692e6962622e636f2f587251477a5235522f696d6167652e706e67)](https://camo.githubusercontent.com/d7abac0687013177bcfe01d00a7ce08ada34cff30d14313ed9030cd98752ea20/68747470733a2f2f692e6962622e636f2f587251477a5235522f696d6167652e706e67)
- Post announcements [![Post Announcements](https://camo.githubusercontent.com/eccff29f13d4a7c22cf7530b5eaf418cea65c3efba19271826c4ea06c60886ac/68747470733a2f2f692e6962622e636f2f5670503446794b662f696d6167652e706e67)](https://camo.githubusercontent.com/eccff29f13d4a7c22cf7530b5eaf418cea65c3efba19271826c4ea06c60886ac/68747470733a2f2f692e6962622e636f2f5670503446794b662f696d6167652e706e67)
- Blockchain verification of logs [![Blockchain Verification](https://camo.githubusercontent.com/1026cb362474573cef855d74d5e79d40f021951ede5518005e9dcd1473d114a8/68747470733a2f2f692e6962622e636f2f6a6b505768424b592f696d6167652e706e67)](https://camo.githubusercontent.com/1026cb362474573cef855d74d5e79d40f021951ede5518005e9dcd1473d114a8/68747470733a2f2f692e6962622e636f2f6a6b505768424b592f696d6167652e706e67)

---

🔒 Security Highlights
---------------------

[](#-security-highlights)

- **Input sanitization** (`filter_var` &amp; 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)
--------------------------

[](#-feature-inventory-full)

For a full repo-wide breakdown of implemented capabilities by module, see:

- [FEATURES\_IMPLEMENTED.md](FEATURES_IMPLEMENTED.md)

---

📦 Installation
--------------

[](#-installation)

### Via Composer (Recommended)

[](#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

[](#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](QUICKSTART.md)**

---

⚙️ Configuration
----------------

[](#️-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](.env.example) for all available options.

### Hybrid File + Supabase (Optional)

[](#hybrid-file--supabase-optional)

If you want cloud-backed dual-write while keeping local file reliability, follow:

- [`supabase/schema.sql`](supabase/schema.sql) to create required tables
- [`supabase/HYBRID_SETUP.md`](supabase/HYBRID_SETUP.md) for rollout steps

---

⚙️ Running Locally
------------------

[](#️-running-locally)

### Using PHP Built-in Server

[](#using-php-built-in-server)

```
php -S localhost:8000
```

Visit: `http://localhost:8000`

### Using XAMPP or WAMP

[](#using-xampp-or-wamp)

1. Install [XAMPP](https://www.apachefriends.org/) or [WAMP](https://www.wampserver.com/)
2. Place project in `htdocs` (XAMPP) or `www` (WAMP)
3. Start Apache
4. Visit: `http://localhost/blockchain-attendance-system/`

---

🤝 Community &amp; Contributions
-------------------------------

[](#-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](CONTRIBUTING.md)

---

- This project is licensed under the MIT LICENSE – see [LICENSE](LICENSE) for details.

👤 Author

- Mavis – Gamer, Web Developer, Security Enthusiast
- 📧 Email:
- 🐙 GitHub: [MAVIS-creator](https://github.com/MAVIS-creator)💻 Co Author [SamexHighshow](https://github.com/SamexHighshow)

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance83

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 99% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

165d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0e0fa62bbab3b37f42c716f9d2d97aeb1a70b173d86a8f239ff5a1106cb86be6?d=identicon)[MAVIS-creator](/maintainers/MAVIS-creator)

---

Top Contributors

[![MAVIS-creator](https://avatars.githubusercontent.com/u/174819191?v=4)](https://github.com/MAVIS-creator "MAVIS-creator (289 commits)")[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (3 commits)")

---

Tags

attendance-systemblockchaincssphpprivate-blockchainprivate-repositoryphpsecurityPolygonweb3blockchainfingerprintingattendanceattendance-systemlog-based

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/mavis-creator-blockchain-attendance-system/health.svg)

```
[![Health](https://phpackages.com/badges/mavis-creator-blockchain-attendance-system/health.svg)](https://phpackages.com/packages/mavis-creator-blockchain-attendance-system)
```

###  Alternatives

[typo3/phar-stream-wrapper

Interceptors for PHP's native phar:// stream handling

5938.0M8](/packages/typo3-phar-stream-wrapper)[asbiin/laravel-webauthn

Laravel Webauthn support

309574.8k](/packages/asbiin-laravel-webauthn)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
