Skip to content

Latest commit

ย 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ATTENDI.fy

ATTENDI.fy is a desktop-based smart attendance management system designed for coaching centers and small educational institutions.

It uses computer vision and face verification to identify registered students and automatically mark their attendance. The application also provides a simple dashboard, SQLite database storage, Excel attendance reports, student registration, and a subscription/activation mechanism.


๐Ÿš€ Features

๐Ÿ‘ค Student Registration

  • Register students using a webcam.
  • Automatically detects a face using OpenCV Haar Cascade.
  • Captures and stores the student's face image.
  • Stores the student's name and image path in SQLite.
  • Prevents duplicate registration of the same username/path.

๐Ÿ“ธ Face Recognition Attendance

  • Uses the webcam to capture students.
  • Detects faces in the camera frame.
  • Uses DeepFace verification to compare the detected face against registered students.
  • Automatically marks a verified student as Present .
  • Prevents the same student from being marked multiple times on the same date.

๐Ÿ—„๏ธ SQLite Database

The application maintains two main tables:

Students

Stores:

  • Student ID
  • Student name
  • Face-image path

Attendance

Stores:

  • Student ID
  • Student name
  • Attendance status
  • Date

The database is automatically created when the application starts.

๐Ÿ“Š Attendance Dashboard

The main interface provides a visual attendance overview using a pie chart.

It displays:

  • Percentage of students present
  • Percentage of students absent
  • Total registered students
  • Today's attendance statistics

The dashboard continuously checks the database and updates the displayed percentages.

๐Ÿ“‘ Excel Reports

Attendance can be exported to Excel.

The application supports:

  • Today's attendance
  • All-ever attendance

The generated Excel file contains:

ROLL NAME ATTENDENCE DATE

Excel files are generated using OpenPyXL .

๐Ÿ’พ Local Data Storage

The application works locally and stores its data in:

attendence.db

Face images are also stored locally.

This means the basic attendance system does not require an external database server.

๐Ÿ”Š Startup Voice

At startup, the application uses pyttsx3 to provide voice announcements such as system initialization and application startup.

๐Ÿ” Activation / Subscription System

The application contains a basic activation mechanism.

It uses:

status.txt

to store the subscription expiration date.

When the subscription expires, the application displays an activation/payment screen instead of opening the main attendance dashboard.


๐Ÿง  How It Works

The basic attendance pipeline is:

Webcam
   โ†“
OpenCV Face Detection
   โ†“
Detected Face
   โ†“
DeepFace Verification
   โ†“
Registered Student
   โ†“
SQLite Database
   โ†“
Attendance Marked
   โ†“
Dashboard / Excel Report

๐Ÿ› ๏ธ Technology Stack

Technology Purpose
Python Main programming language
Flet Desktop GUI
OpenCV Camera and face detection
DeepFace Face verification
SQLite Local database
OpenPyXL Excel report generation
Flet Charts Attendance visualization
pyttsx3 Text-to-speech
threading Background processing

๐Ÿ“ Project Structure

A basic project setup can look like this:

ATTENDI.fy/
โ”‚
โ”œโ”€โ”€ main.py
โ”œโ”€โ”€ attendence.db
โ”œโ”€โ”€ attendence.xlsx
โ”œโ”€โ”€ status.txt
โ”œโ”€โ”€ payment.png
โ”œโ”€โ”€ INDUSS.png
โ”‚
โ”œโ”€โ”€ registered_face_images/
โ”‚   โ”œโ”€โ”€ Student1.png
โ”‚   โ”œโ”€โ”€ Student2.png
โ”‚   โ””โ”€โ”€ ...
โ”‚
โ””โ”€โ”€ requirements.txt

The exact files generated by the application may vary depending on how the project is packaged.


โš™๏ธ Installation

1. Install Python

Install a compatible Python version on the target computer.

Verify the installation:

python --version

or:

py --version

2. Install Dependencies

Install the required packages:

pip install opencv-python flet deepface openpyxl flet-charts pyttsx3

If using a requirements.txt file:

pip install -r requirements.txt

3. Run the Application

Run:

python main.py

or:

py main.py

๐ŸŽฏ Basic Usage

Step 1 โ€” Start ATTENDI.fy

Launch the application.

The startup screen is displayed before entering the main dashboard.


Step 2 โ€” Register Students

Use the registration button.

Enter a unique username and allow the application to access the webcam.

The system detects the student's face and captures an image.

Press the capture key to register the student.


Step 3 โ€” Start Attendance

Enable the ATTENDENCE switch.

The camera starts scanning for faces.

When a registered student's face is successfully verified:

Student โ†’ Verified โ†’ Present

The attendance record is saved in SQLite.


Step 4 โ€” View Attendance

The dashboard displays the current attendance distribution.

The application continuously checks today's attendance records and updates the chart.


Step 5 โ€” Export Attendance

Use the export button.

You can choose:

TODAY

or:

ALL EVER ATTENDENCE

The corresponding Excel report is generated.


๐Ÿ”’ Data Storage

ATTENDI.fy currently uses local storage.

Database

attendence.db

Face Images

Student face images are stored as local image files.

Subscription Status

status.txt

Reports

Attendance reports are exported as .xlsx files.


โš ๏ธ Current Limitations

This is an important section because ATTENDI.fy is currently a working prototype / early production version , rather than a fully hardened enterprise attendance platform.

1. Face Verification Performance

The current implementation performs DeepFace verification against registered students sequentially.

For a large number of students, this can become slower because multiple face comparisons may be required.

For a small coaching center, however, this approach can be practical.

2. Lighting and Camera Conditions

Recognition performance can be affected by:

  • Poor lighting
  • Low-quality cameras
  • Extreme face angles
  • Occlusion
  • Motion blur
  • Significant changes in appearance

3. Local Database

The current application uses SQLite locally.

There is no built-in cloud synchronization or multi-computer database.

4. Basic Security

The current activation mechanism should not be considered cryptographically secure licensing .

A production licensing system should use proper cryptographic verification and server-side validation.

5. Face Storage

Face images are stored locally rather than using a dedicated encrypted biometric-storage system.

For real-world deployment, access control and stronger protection of biometric data should be considered.

6. Attendance Logic

The current system primarily records:

Present

for successfully verified students.

A complete institutional attendance platform could additionally implement:

  • Late
  • Absent
  • Leave
  • Multiple sessions
  • Entry/exit time
  • Manual corrections
  • Teacher/admin overrides

๐Ÿ”ฎ Future Improvements

Possible future versions could include:

  • โšก Faster face recognition using face embeddings
  • ๐Ÿง  Dedicated face-embedding database
  • ๐Ÿ“ฑ Parent notifications
  • ๐Ÿ“Š Advanced attendance analytics
  • ๐Ÿ‘จโ€๐Ÿซ Teacher/admin accounts
  • โ˜๏ธ Cloud synchronization
  • ๐Ÿ” Secure authentication
  • ๐Ÿ”’ Encrypted biometric storage
  • ๐Ÿ“… Monthly attendance reports
  • ๐Ÿ“ˆ Attendance history graphs
  • ๐Ÿ–ฅ๏ธ Multi-camera support
  • ๐Ÿ“ท Better face detection
  • ๐Ÿš€ GPU acceleration where available
  • ๐Ÿ“ฆ Improved standalone executable packaging

๐Ÿ—๏ธ Architecture

The current application can be viewed as four major layers:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚          Flet GUI            โ”‚
โ”‚ Dashboard / Registration    โ”‚
โ”‚ Export / Activation         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
               โ”‚
               โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚       Application Logic      โ”‚
โ”‚ Attendance / Registration    โ”‚
โ”‚ Subscription / Statistics   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
               โ”‚
       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
       โ†“                โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Computer     โ”‚  โ”‚ DeepFace     โ”‚
โ”‚ Vision       โ”‚  โ”‚ Verification โ”‚
โ”‚ OpenCV       โ”‚  โ”‚              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ”‚                โ”‚
       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
               โ†“
       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
       โ”‚ SQLite        โ”‚
       โ”‚ Database      โ”‚
       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
               โ†“
       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
       โ”‚ Excel Reports โ”‚
       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“Œ Intended Use

ATTENDI.fy is primarily intended for:

  • Coaching centers
  • Small educational institutes
  • Computer labs
  • Training centers
  • Small classrooms

It is designed to reduce manual attendance work by using automated face verification.


โšก Performance

The application is designed around a workflow where a student remains in front of the camera for a short period while the system detects and verifies the face.

For small groups such as approximately 20โ€“30 students , the current architecture can be usable, but recognition speed depends heavily on the computer's CPU, camera, DeepFace backend, and number of registered students.

It should not currently be advertised as instantaneous or guaranteed real-time recognition for very large databases.


๐Ÿ“œ Project Status

Current Status: Working Prototype / Early Production

ATTENDI.fy already contains the core workflow:

Register Student
       โ†“
Store Face
       โ†“
Detect Face
       โ†“
Verify Identity
       โ†“
Mark Attendance
       โ†“
Store Record
       โ†“
Generate Report

The project is being developed toward a more scalable and production-ready attendance platform.


๐Ÿ‘จโ€๐Ÿ’ป Developer

Indus Groups

Project:

ATTENDI.fy โ€” Smart Attendance System

Built with Python and computer vision.


โญ Future Direction

The next major technical upgrade is moving from repeated DeepFace image verification toward a proper face-embedding pipeline .

That architecture would look more like:

Camera
   โ†“
Face Detection
   โ†“
Face Alignment / Crop
   โ†“
Face Embedding
   โ†“
Vector Database
   โ†“
Similarity Search
   โ†“
Student Identity
   โ†“
Attendance

This can substantially reduce repeated model computation and make the system more suitable for larger student databases.

๐Ÿ“ฆ Required Project Assets

Before running ATTENDI.fy, make sure the following files are present in the same directory as main.py :

ATTENDI.fy/
โ”‚
โ”œโ”€โ”€ main.py
โ”œโ”€โ”€ payment.png       โ† REQUIRED: payment/activation QR image
โ”œโ”€โ”€ INDUSS.png        โ† REQUIRED: startup image
โ”œโ”€โ”€ status.txt        โ† REQUIRED: subscription status
โ”‚
โ”œโ”€โ”€ attendence.db     โ† created/used by the application
โ”œโ”€โ”€ attendence.xlsx   โ† attendance workbook
โ”‚
โ””โ”€โ”€ registered_face_images/

๐Ÿ’ณ payment.png โ€” Required

You must add your own payment.png file to the project directory.

This image is displayed on the Payment / Activation screen when the subscription expires.

The application expects the file to be named exactly :

payment.png

and located beside main.py:

main.py
payment.png

Do not rename it to:

payment.jpg
Payment.png
payment.PNG
qr.png

unless you also change the filename in the Python source code.

The current program loads the image using:

ft.Image('payment.png', ...)

Therefore, if payment.png is missing, the payment screen may fail to load correctly.

๐Ÿ–ผ๏ธ INDUSS.png โ€” Required

The startup screen also expects:

INDUSS.png

Keep this file beside main.py as well.

๐Ÿ“„ status.txt โ€” Required

The application reads the subscription expiration date from:

status.txt

Example:

2026-12-31

The file should contain the expiration date used by the application.


โš ๏ธ Important

If you are downloading/cloning this project, do not forget to add payment.png and INDUSS.png .

The minimum required asset structure is:

๐Ÿ“ Project Folder
โ”‚
โ”œโ”€โ”€ main.py
โ”œโ”€โ”€ payment.png
โ”œโ”€โ”€ INDUSS.png
โ””โ”€โ”€ status.txt

The database and Excel files can be generated/used by the application as required.

Important: Replace the example payment.png with your own payment QR/image before distributing the application.

About

sqlite3 based attendence system

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages