Modern Face Recognition Attendance Management System
Powered by JavaFX 23 | OpenCV 4.9 | JDK 23.0.1
IceFX is a professional-grade facial recognition attendance management system built with modern Java technologies. It features a clean, intuitive white-themed UI, real-time face detection, and comprehensive user management capabilities.
- π₯ Real-Time Face Detection - Live camera feed with instant face recognition
- π€ User Management - Complete CRUD operations for user accounts
- π Dashboard Analytics - Real-time attendance statistics and insights
- π Model Training - Built-in face recognition model training
- π Secure Authentication - BCrypt password hashing
- πΎ Database Integration - MySQL/MariaDB with HikariCP connection pooling
- π¨ Modern UI - Clean white design with Material Design principles
- π± Responsive Layout - Adaptive interface for different screen sizes
- JDK 23.0.1 or later
- Maven 3.8+
- MySQL 8.0 or MariaDB 10.4+
- Webcam (for face recognition features)
git clone https://github.com/yourusername/IceFX.git
cd IceFX# Login to MySQL/MariaDB
mysql -u root -p
# Create database and import schema
CREATE DATABASE icefx_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE icefx_db;
SOURCE database_setup_simple.sql;Edit src/main/resources/application.properties (created on first run):
# Database Configuration
db.url=jdbc:mysql://localhost:3306/icefx_db
db.username=root
db.password=yourpassword
# Camera Configuration
camera.index=0
camera.fps=30
# Face Recognition
recognition.threshold=80.0
recognition.model.path=models/trained_model.xml# Clean and compile
mvn clean compile
# Run application
mvn javafx:runUsername: ADMIN001
Password: admin123
IceFX/
βββ src/
β βββ main/
β β βββ java/com/icefx/
β β β βββ config/ # Configuration management
β β β βββ controller/ # JavaFX controllers
β β β βββ dao/ # Data access objects
β β β βββ model/ # Data models
β β β βββ service/ # Business logic
β β β βββ util/ # Utility classes
β β β βββ IceFXApplication.java
β β βββ resources/
β β βββ com/icefx/
β β β βββ view/ # FXML layouts
β β β βββ styles/ # CSS stylesheets
β β β βββ images/ # Application icons
β β βββ haar/ # OpenCV classifiers
β β βββ logback.xml # Logging configuration
β βββ test/ # Unit tests
βββ docs/ # Documentation
βββ database_setup_simple.sql # Database schema
βββ pom.xml # Maven configuration
βββ README.md
- White-dominant theme with subtle shadows and gradients
- Material Design inspired components
- Smooth animations and transitions
- Responsive layouts that adapt to screen size
- Login - Clean authentication with user code and password
- Dashboard - Live camera feed with real-time face recognition
- Admin Panel - Comprehensive user and model management
- Java 23.0.1 - Latest LTS with modern language features
- JavaFX 23.0.1 - Rich desktop UI framework
- Maven 3.8+ - Dependency management and build tool
- OpenCV 4.9.0 - Computer vision and face recognition
- JavaCV 1.5.10 - Java interface to OpenCV
- MySQL Connector 9.1.0 - Database connectivity
- HikariCP 6.2.1 - High-performance connection pooling
- BCrypt - Secure password hashing
- SLF4J + Logback - Comprehensive logging
- JUnit 5 - Testing framework
- Haar Cascade classifiers for face detection
- LBPH (Local Binary Patterns Histograms) recognizer
- Confidence threshold filtering
- Debounce logic to prevent duplicate recognition
- Model persistence for trained data
- Role-based access (Admin, User, Student)
- Status management (Active, Inactive, Suspended)
- Secure password hashing with BCrypt cost factor 10
- Email validation and user search
- Bulk operations support
- Automatic logging on face recognition
- Timestamp tracking with timezone support
- Confidence score recording
- Duplicate prevention with configurable cooldown
- Export capabilities (CSV, PDF)
# Database
db.url=jdbc:mysql://localhost:3306/icefx_db
db.username=root
db.password=password
# Camera
camera.index=0
camera.fps=30
camera.width=640
camera.height=480
# Recognition
recognition.threshold=80.0
recognition.model.path=models/trained_model.xml
recognition.debounce.seconds=5
# UI
theme=lightCustomize logging levels, file outputs, and patterns.
# Run all tests
mvn test
# Run specific test
mvn test -Dtest=UserServiceTest
# Generate coverage report
mvn clean test jacoco:reportmvn clean packageOutput: target/IceFX-1.0.0.jar
java -jar target/IceFX-1.0.0.jar# Windows Installer
mvn jpackage:jpackage -Pwindows
# macOS App
mvn jpackage:jpackage -Pmacos
# Linux Package
mvn jpackage:jpackage -PlinuxSolution: Ensure OpenCV native libraries are in java.library.path
Solution: Check database credentials and ensure MySQL/MariaDB is running
Solution: Verify camera index in config (try 0, 1, 2)
Check camera permissions on your OS
Solution: Train model with more images per person (minimum 10-20)
Ensure good lighting conditions
Adjust recognition threshold in config
- Dark theme support
- Multi-language support (i18n)
- Cloud database integration
- Mobile app companion
- Attendance reports and analytics
- Email notifications
- REST API for integration
- Docker containerization
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Java naming conventions
- Use meaningful variable names
- Add JavaDoc comments for public methods
- Keep methods focused and concise
- Write unit tests for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- IceFX Team - Initial work
- OpenCV community for excellent computer vision tools
- JavaFX team for the modern UI framework
- All contributors who helped improve this project
- Issues: GitHub Issues
- Email: support@icefx.com
- Documentation: Wiki
Made with β€οΈ by IceFX Team
β Star us on GitHub if you find this project useful!