A complete attendance tracking system with barcode scanning capabilities, designed for organizations that need to track member attendance and generate detailed reports.
- Add, edit, and delete members
- Assign unique barcodes to each member
- Real-time member list management
- Barcode scanner integration for member registration
- Generate attendance reports by date range
- View total hours worked by each member
- Calendar view showing attendance patterns
- Detailed attendance records with check-in/check-out times
- Filter reports by specific members
- Export functionality (CSV format)
- Simple, touch-friendly interface for attendance tracking
- Barcode scanner integration for quick check-in/check-out
- Real-time feedback for successful scans
- Display of recent activity
- Automatic check-in/check-out detection
- Manual ID entry option as fallback
- Session-based authentication
- Password-protected admin areas
- Secure database storage
- Default admin credentials (changeable)
- Backend: Node.js with Express.js
- Database: SQLite3 (local file-based)
- Frontend: Vanilla HTML/CSS/JavaScript
- Authentication: bcrypt password hashing with sessions
- Styling: Custom CSS with responsive design
-
Clone or download the project files
-
Install dependencies:
npm install
-
Start the server:
npm start
For development with auto-restart:
npm run dev
-
Access the application:
- Kiosk Interface: http://localhost:3000
- Admin Login: http://localhost:3000/login
- Management: http://localhost:3000/management (after login)
- Reports: http://localhost:3000/reports (after login)
- Username: admin
- Password: admin123
- Navigate to the Management interface
- Use the "Add New Member" form
- Enter member details and scan/enter their barcode
- The barcode will be used for attendance tracking
The system supports various barcode formats and can work with:
- USB barcode scanners (HID keyboard emulation)
- Manual barcode entry
- QR codes
- Any scannable identifier
- Members approach the kiosk interface
- Scan their barcode or enter their ID manually
- System automatically determines check-in vs check-out
- Real-time feedback confirms the action
- Recent activity is displayed on screen
- Access the Reports interface
- Select date range for the report
- Optionally filter by specific member
- View summary cards, calendar view, and detailed records
- Export data to CSV if needed
The system includes an automatic logout feature that helps ensure accurate attendance tracking by automatically checking out members who may have forgotten to scan out at the end of the day.
- Configurable Time: Set any time for daily automatic logout (default: 6:00 PM)
- Smart Detection: Only affects members currently checked in
- Flagged Records: All automatic logouts are flagged for review
- Manual Override: Admins can review and approve automatic logouts
- Manual Trigger: Test the system with a manual trigger button
- Access the Management interface with admin credentials
- Navigate to the "Auto-Logout Settings" section
- Enable/disable the automatic logout feature
- Set the desired logout time (24-hour format)
- Save settings to apply changes
- Access the Reports interface
- View the "Records Requiring Review" section
- Review flagged automatic logout records
- Mark records as reviewed to maintain data integrity
The system automatically creates checkout records for all currently checked-in members at the specified time each day. These records are clearly marked as automatic logouts and require administrative review to ensure accuracy.
id: Primary keyname: Member's full namebarcode: Unique barcode/IDcreated_at: Registration timestamp
id: Primary keymember_id: Foreign key to membersscan_time: Timestamp of scanis_checkin: Boolean (true=check-in, false=check-out)is_auto_logout: Boolean (true if automatically logged out)needs_review: Boolean (true if requires admin review)
id: Primary keyusername: Admin usernamepassword_hash: bcrypt hashed passwordcreated_at: Account creation timestamp
PORT: Server port (default: 3000)
Sessions are configured in server.js:
- Session secret: Change for production
- Session timeout: 24 hours default
- Secure cookies: Enable for HTTPS in production
chainlynx-attendance/
βββ server.js # Main server file
βββ database.js # Database operations
βββ package.json # Node.js dependencies
βββ attendance.db # SQLite database (created automatically)
βββ public/
β βββ css/
β βββ style.css # CSS styles
βββ views/
βββ kiosk.html # Kiosk interface
βββ login.html # Admin login page
βββ management.html # Member management
βββ reports.html # Reports interface
POST /login- Admin loginPOST /logout- Admin logout
GET /api/members- Get all membersPOST /api/members- Add new memberPUT /api/members/:id- Update memberDELETE /api/members/:id- Delete member
POST /api/attendance/scan- Record attendance scanGET /api/attendance- Get attendance recordsGET /api/attendance/summary- Get attendance summary
- Any USB HID barcode scanner
- Recommended: Honeywell Voyager 1200g
- Handheld or hands-free models supported
- Tablet or computer with web browser
- Touch screen recommended
- Network connection required
- Consider mounting solutions for fixed installations
- Change default admin credentials
- Use HTTPS in production
- Regular database backups
- Network security for kiosk installations
- Physical security for kiosk hardware
Barcode scanner not working:
- Ensure scanner is in HID keyboard mode
- Test scanner in text editor first
- Check USB connection
Database errors:
- Ensure write permissions for database file
- Check disk space
- Restart server if needed
Session issues:
- Clear browser cache and cookies
- Check server logs for session errors
Network connectivity:
- Verify all devices can reach the server
- Check firewall settings
- Ensure proper IP address configuration
To modify or extend the system:
- Backend changes: Modify
server.jsanddatabase.js - Frontend changes: Update HTML files in
views/ - Styling: Modify
public/css/style.css - Database schema: Add migrations to
database.js
The system is designed to be extensible. Consider these enhancements:
- Photo capture during check-in
- Integration with HR systems
- Email notifications
- Advanced reporting features
- Multi-location support
- Mobile app companion
This project is licensed under the ISC License - see the package.json file for details.
For support and questions:
- Check this README for common solutions
- Review server logs for error messages
- Test with default credentials and sample data
- Verify hardware compatibility
Version: 1.0.0
Last Updated: September 2025