- Prototype
- Basic UI
- AI Chatbot
- Live Attendance Tracking
- Mobile App
- Improved UI
- Cost Optimization
- Inefficient and prone to inaccuracies
- Can be easily manipulated
SwiftAttend addresses these issues by leveraging advanced AI and cloud technologies to streamline and secure the attendance tracking process.
The project aims to deliver a modern and efficient attendance tracking system that:
- Utilizes Face Recognition:
- Reduces Administrative Time:
- Enhances Learning Experience:
- Employs Cloud Computing:
Every time a lecturer or student wants to perform an action, they must be authorized through AWS Cognito. Additionally, Fargate and Lambda each have their respective IAM roles, which control their access to other AWS services. This architecture is designed to follow a typical three-tier structure, standard for web-native applications hosted on cloud platforms. It includes a frontend, a processing backend, and a database backend. As shown in the figure below, the two dashed lines separate the three tiers in this architecture.
- Frontend: Hosted on AWS Fargate, allowing users to access the web page seamlessly.
- Processing Backend: Includes AWS Lambda and Rekognition, which process data received from the frontend and the database backend, performing necessary computations and returning the output to the frontend.
- Database Backend: Composed of DynamoDB tables that store records needed by the processing backend.
This separation of concerns ensures a scalable, efficient, and maintainable architecture for Swift Attend.
When a class is being created, a course name, course code, the day of the class, and the class time will be required. For example, a class could have the following information:
- Course Name: Capstone 1
- Course Code: CP1
- Day: Wednesday
- Time: 5 pm
Then, students will need to be selected to enroll in the class, and a lecturer will be selected to be in charge of the class.
There are currently three ways a lecturer can take attendance: they could either use their device camera to capture an image of the students present in the class, upload an image that has been taken during the class or use live mode. For capturing image and uploading image, after submitting the image, the attendance records will be displayed to the lecturer, as shown below.
For live mode, it will start the camera will will track every face that appears in the frame. The attendance of students that appeared in the frame will be stored until the lecturer ends the session. When a lecturer wants to retrieve past attendance records, they can search for records by course, by date, and time, or by both simultaneously. These options provides flexibility for the lecturer to filter specific attendance records. Each course will be displayed on its card with basic information when browsing through courses. To retrieve more information on each class, the user can click on the card to get more information and add or remove students, as shown in the image below.
- Python
- boto3==1.34.91
- botocore==1.34.91
- Flask==3.0.3
- Flask_Cors==5.0.0
- Flask_SocketIO==5.3.6
- flask_wtf==1.2.1
- mediapipe==0.10.14
- numpy==2.1.2
- opencv_contrib_python==4.10.0.84
- opencv_python-headless
- Pillow==10.4.0
- WTForms==3.1.2
- email_validator
- Repository cloning and virtual environment setup
git clone https://github.com/jasonlow2307/swiftAttend.git
cd swiftAttend
python -m venv venv # Create virtual environment
venv\Scripts\activate # For Windows
pip install -r requirements.txt # Install dependencies
- Starting web server
python3 app.py
- Visit local IP address at port 5000 to view web page
If you would like to contact me, you can drop me an email at jason.lowjx@gmail.com
Thank you for reading! 💫