Attendance Tracking Using Face Recognition
It's a web application crafted with HTML, Tailwind CSS, JavaScript, Node.js, EJS, Express.js, MongoDB, Passport.js, and Face-api.js, aimed at enhancing student attendance management through innovative features like face detection and robust user authentication.
StreakTrack
StreakTrack is a web application designed to manage student attendance using face detection and user authentication. This application allows for seamless student registration, attendance tracking, and data management, providing an efficient way to maintain accurate attendance records.
Features
- User Authentication: Secure login, registration, and logout functionality.
- Student Registration: Allows students to register by uploading three images for face recognition.
- Attendance Tracking: Uses face detection technology to track and record student attendance.
- Dashboard: View registered students and their current attendance status.
- Edit Dashboard: Manually mark attendance for students when necessary.
- Download Attendance Data: Export attendance records as an Excel sheet.
Technologies Used
- Node.js: Server-side JavaScript runtime.
- Express.js: Web application framework for Node.js.
- MongoDB (Mongoose): NoSQL database for storing student data.
- Passport.js: Middleware for authentication.
- Face-api.js: Library for face detection and recognition.
- EJS: Embedded JavaScript templates for views.
- PERISKOPE API: API integration for sending WhatsApp messages.
Setup
Prerequisites
- Node.js: Ensure Node.js is installed on your system.
- MongoDB: Have MongoDB installed locally or have a MongoDB Atlas account.
Installation
Clone the repository:
git clone https://github.com/aaupatel/Attendance-Tracking-using-Face-Recognition
cd StreakTrack
Install dependencies:
npm install
Create a .env
file:
touch .env
Add the following environment variables in the .env
file:
PORT=8080
MONGODB_URI=<your_mongodb_connection_string>
EMAIL_HOST=<your_email_smtp_host>
EMAIL_PORT=<your_email_smtp_port>
EMAIL_USER=<your_email_address>
EMAIL_PASS=<your_email_password>
SESSION_SECRET=<your_secret_key>
PERISKOPE_API_KEY=<your_Periskope_api_key>
PERISKOPE_X_PHONE=<your_Periskope_phone_number>
IMAGEKIT_PUBLIC_KEY=<your_public_key>
IMAGEKIT_PRIVATE_KEY=<your_private_key>
IMAGEKIT_URL_ENDPOINT=<https://ik.imagekit.io/your_imagekit_id>
Run the application:
npm start
Access the application:
Open your browser and navigate to http://localhost:8080
.