AttendPro is a modern, self-hosted attendance management system designed for organizations with on-site, remote, and hybrid employees.
| app | ||
| assets | ||
| data | ||
| uploads | ||
| admin_backup.php | ||
| admin_settings.php | ||
| admin_sites.php | ||
| admin_teams.php | ||
| annual_summary.php | ||
| api.php | ||
| audit_logs.php | ||
| dashboard.php | ||
| docker-compose.yml | ||
| Dockerfile | ||
| documents.php | ||
| face_register.php | ||
| get_models.php | ||
| holidays.php | ||
| index.php | ||
| install.php | ||
| kiosk.php | ||
| leave_approvals.php | ||
| leaves.php | ||
| live_dashboard.php | ||
| login.php | ||
| logout.php | ||
| manifest.json | ||
| password.php | ||
| punch.php | ||
| README.md | ||
| reports.php | ||
| sw.js | ||
| update_db.php | ||
| update_db_1.php | ||
| update_db_2.php | ||
| update_db_3.php | ||
| update_db_4.php | ||
| users.php | ||
AttendPro 🕒
Smart attendance for on-site and remote teams.
AttendPro is a lightweight, self-hosted attendance management system with selfie-based punch-in, geo-fencing, remote attendance support, overtime calculation, and leave management.
🚀 Features
👤 Employee
- Selfie punch-in (camera capture)
- Punch-out (selfie optional)
- GPS location capture
- Works for remote & on-site employees
- Daily attendance summary
- Leave request submission
🧭 Geo-Fencing
- Office/site based geo-fence (latitude, longitude, radius)
- Blocks punch-in if user is outside allowed radius (if required)
- Distance-from-site calculation stored per punch
🧑💼 Team Leaders / HR
- View team attendance
- Track working hours & overtime
- Identify missing punches
- Approve or reject leave requests
🛠 Admin
- Create users (admin / hr / leader / employee)
- Assign teams and sites
- Configure:
- On-site required
- Remote allowed
- Shift hours
- Manage office locations (geo-fences)
📊 Reports
- Date-range attendance reports
- Worked hours & overtime calculation
- Present / Absent / Leave status
- Employee-wise and team-wise summaries
🧱 Tech Stack
- Frontend: HTML, CSS, Vanilla JavaScript
- Backend: PHP 8.2
- Database: SQLite (no external DB)
- Deployment: Docker & Docker Compose
- Security: Sessions, CSRF protection, password hashing
🖥️ Installation (VPS / Local)
1️⃣ Download & Extract
unzip attendpro_attendance_app.zip
cd attendancepro
2️⃣ Start with Docker
docker compose up -d --build
3️⃣ Install Database (One Time)
Open in browser:
http://YOUR_SERVER_IP:8094/install.php
4️⃣ Default Users
| Role | Username | Password |
|---|---|---|
| Admin | admin | admin123 |
| HR | hr | hr123 |
| Leader | leader | lead123 |
| Employee | employee | emp123 |
⚠️ After installation:
rm install.php
📂 File Storage
- Database:
./data/attendance.db - Selfie images:
./uploads/
⚠️ Fix: SQLite “unable to open database file”
Run on host:
mkdir -p data uploads
sudo chown -R 33:33 data uploads
sudo chmod -R 775 data uploads
docker compose restart
🔐 Permissions & Privacy
- Selfies are stored securely on the server
- GPS data stored per punch for audit
- No third-party tracking or cloud dependency
📌 Use Cases
- Remote & hybrid teams
- On-site office attendance
- Field workforce tracking
- Small companies & startups
- Self-hosted HR systems
📜 License
MIT License — free to use, modify, and self-host.
🙌 Author
Built for teams that value transparency, accountability, and flexibility.
---
If you want next, I can:
- Create a **minimal logo** for AttendPro
- Build a **landing page (index.html)**
- Add **CSV/PDF export**
- Add **holiday calendar + leave balance**
- Add **mobile PWA support**
Just tell me 👍