Skip to content

Application that checks the attendance of students based on a photo

Notifications You must be signed in to change notification settings

tsuruguu/FaceScan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FaceScan

FaceScan is a local desktop application used for automatically registering student attendance based on real-time face recognition. It uses JavaFX for the user interface and OpenCV for face detection and recognition.

📌 Features

  • User registration and login (professors)
  • Managing student groups
  • Adding and editing students (first name, last name, photo)
  • Live camera preview with face detection
  • Recognizing students’ faces based on previously stored images
  • Recording attendance in a local SQLite database
  • Viewing attendance history for a selected group

🧱 Architecture

The project follows the MVC + DAO architecture pattern.

src/
└── main/
└── java/
└── com/
└── faceScan/
├── controller/    # JavaFX controllers (LoginController, AttendanceHistoryController, etc.)
├── dao/      # DAO layer: UserDAO, GroupDAO, AttendanceDAO, etc.
├── model/      # Data classes: User, Student, Group, Attendance, StudentPresence
├── iface/       # Interfaces for face detection and recognition
├── util/        # Utility classes: DatabaseManager, ImagesUtils, AlertFactory
├── session/      # Session management: SessionManager
└── Main.java     # Application entry point

📁 Directory overview:

  • controller/ – JavaFX controllers (Login, Register, Dashboard, StudentDetails, AttendanceHistory)
  • dao/ – DAO layer: UserDAO, GroupDAO, AttendanceDAO, GroupMemberDAO
  • model/ – Data models: User, Group, Student, Attendance, StudentPresence
  • iface/ – Interfaces: IFaceDetector, IFaceRecognizer
  • util/ – Utilities: DatabaseManager, ImagesUtils, AlertFactory
  • session/ – Session management: SessionManager
  • Main.java – Application start point

🛠️ Technologies

  • Java 17
  • JavaFX
  • OpenCV 4.12.0
  • SQLite (JDBC)
  • JUnit 5

▶️ Running the App

  1. Make sure Java 17 and JavaFX are installed.
  2. Compile the project using an IDE (e.g., IntelliJ) or command line.
  3. Run the Main.java class.
  4. If needed, the database (face_scan.db) will be created automatically.

🧪 Testing

The project includes unit tests (JUnit 5) located in src/test/java. They cover DAO classes, data models, and controllers.

About

Application that checks the attendance of students based on a photo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •