How phuc1810/attendance-system works
Smart Attendance is a Streamlit application for employee administration and face-based attendance. Users register employees and face samples, then run camera-based IN/OUT recognition; the system checks attendance rules and records events for dashboards and filtered history/export. Separate pages provide face-detection and recognition test benches. The graph reflects README capabilities and indexed references; unsampled page implementations are represented by their exact paths, but their internal calls are not assumed.
Main entry points: app.py App navigation · database.py Employee repository · attendance_repo.py IN/OUT rules · 3_Register_Face.py Face registration
Components 20
Streamlit app
- App navigation
app.py - UI styling
ui/styles.py - Dashboard
pages/1_Dashboard.py - Employee management
pages/2_Employees.py
Vision and enrollment
- Face registration
pages/3_Register_Face.py - Detection test
pages/6_Face_Detection.py - Recognition test
pages/7_Face_Recognition.py - Camera streaming
core/camera_stream.py - Face detection
core/face_detect.py - Face image storage
core/save_face.py - Training dataset
core/face_dataset.py - Face recognition
core/face_recognizer.py
Attendance operations
- Check-in camera
pages/4_Attendance.py - History and export
pages/5_History.py - IN/OUT rules
db/attendance_repo.py
Data layer
- Employee repository
db/database.py - ORM models
db/models.py - DB sessions
db/session.py - SQLite database
Other components
- Operator
Connections 37
- Operator → App navigation: opens
README.md - App navigation → UI styling: applies
app.py - App navigation → Dashboard: navigates
app.py - App navigation → Employee management: navigates
app.py - App navigation → Face registration: navigates
app.py - App navigation → Check-in camera: navigates
app.py - App navigation → History and export: navigates
app.py - App navigation → Detection test: navigates
app.py - App navigation → Recognition test: navigates
app.py - App navigation → Employee repository: initializes
app.py - App navigation → IN/OUT rules: initializes
app.py - Dashboard → Employee repository: queries
pages/1_Dashboard.py - Dashboard → IN/OUT rules: queries
pages/1_Dashboard.py - Employee management → Employee repository: manages
pages/2_Employees.py - Face registration → Camera streaming: reads frames
pages/3_Register_Face.py - Face registration → Face detection: detects faces
pages/3_Register_Face.py - Face registration → Face image storage: saves samples
pages/3_Register_Face.py - Face registration → Employee repository: loads employees
pages/3_Register_Face.py - Check-in camera → Camera streaming: reads frames
pages/4_Attendance.py - Check-in camera → Face detection: detects faces
pages/4_Attendance.py - Check-in camera → Face recognition: predicts identity
pages/4_Attendance.py - Check-in camera → IN/OUT rules: registers event
pages/4_Attendance.py - History and export → IN/OUT rules: queries history
pages/5_History.py - Detection test → Camera streaming: reads frames
pages/6_Face_Detection.py - Detection test → Face detection: detects faces
pages/6_Face_Detection.py - Recognition test → Camera streaming: reads frames
pages/7_Face_Recognition.py - Recognition test → Face detection: detects faces
pages/7_Face_Recognition.py - Recognition test → Face recognition: predicts identity
pages/7_Face_Recognition.py - Face recognition → Training dataset: loads training data
core/face_recognizer.py - Face recognition → Employee repository: resolves labels
core/face_recognizer.py - Employee repository → Face image storage: syncs employee folders
db/database.py - IN/OUT rules → DB sessions: opens sessions
db/attendance_repo.py - IN/OUT rules → ORM models: queries models
db/attendance_repo.py - Employee repository → DB sessions: opens sessions
db/database.py - Employee repository → ORM models: queries models
db/database.py - DB sessions → ORM models: creates schema
db/session.py - DB sessions → SQLite database: connects
db/session.py