scaleracademy / hackx-submissions

Submissions for HackX Hackathon by Scaler Academy
10 stars 7 forks source link

Zero Gravity - VMeet - Education #212

Open Zeph-T opened 2 years ago

Zeph-T commented 2 years ago

Zero Gravity - VMeet - Education

ℹ️ Project information

A web application to help students and teachers for their easier management of classes. The app includes authentications for both students and teachers where students would be able to join classes, look at the announcements in the classes and join the class meets, and teachers can create classes and make any announcements needed after logging in. The application also includes joining a meet which is build using socket.io. Before joining the meet the application prompts to capture an image of self with the help of a webcam where the image would be sent to the ML model which returns the clones score of the image taken and the image of the user residing in the database. If the person present before the screen is same as the user then the attendance will be started for that user and he will be navigated to the meet page.

  1. Your Theme : Education

  2. Project Name: VMeet

  3. Short Project Description: In this project, we have made an web application that makes student-teacher interaction much easier along with the facility to join a meeting that records attendance using face recognition.

  4. Team Name: Zero Gravity

  5. Team Members: Thari Zephaniah - https://github.com/Zeph-T Somya Surendra Singh - https://github.com/tend2infinity M.Nithin Kumar Reddy - https://github.com/Nithin-Reddy-02 , Vishnu Agarwal - https://github.com/vishnuagbly

  6. Demo Link: https://youtu.be/JFIgEfwCtv4

  7. Presentation Link: https://docs.google.com/presentation/d/1fO79IKIiXOyzFL6LZkYLQKmOqyZ9Ox9jVj9QxmxGtXw/edit#slide=id.gf70debfe52_0_30

  8. Repository Link: https://github.com/Zeph-T/VMeet

🔥 Your Pitch

We have created a classroom app, where we can do the following: Before anything, you will be needed to create your account on our application. Create Class: In our app, you can create your own class and share link/code with others who you want to join your class. Join Class: One can join any class they have a link/code of. Once entering the class we ask the student to capture an image of him/her from his/her web camera. This will be stored in our database and will be later on used for attendance. Post Announcement: The creator of the class, the teacher, can post announcements too for the whole class, which will be visible to every student in the class. Get Attendance: For taking automatic attendance we will automatically capture an image from the webcam and check if the person on the webcam is the same person as the holder of the account. For this functionality, we are using MLModel to calculate the euclidean distance between two faces. For this first using cascade classifier we will be finding the location of the face in the image then, we will crop the faces from both images and then pass it through a FaceNet Model which will generate image embeddings for both faces, and then we will calculate Euclidean distance between both. Finally, the threshold of 0.7 is used to determine whether they are the same person or not. For flexibility and scalability, we have then created a different mini API for this MLModel using Flask and then wrapped this whole API and Model using docker, to create a docker image. Now to deploy this image we have first created a container registry in AWS ECR then, created a container instance in AWS EC2, from there we deployed the model and were successfully able to create an HTTP-based REST API to interact with the model. Once we have verified the student is the same person as the account holder, the student gets entry using Socket. Now, when the student exits, then his/her attendance and duration are recorded and stored in our database, to be accessed by the teacher.

In this way we were able to achieve auto-attendance using facial recognition, this application remarkably makes the whole attendance procedure completely effortless for the teachers and students.

🔦 Any other specific thing you want to highlight?

The ML model, that we have used for face recognition, is containerised and deployed on the AWS EC2 instance. The deployed model takes two images as parameters and returns a closness score between them. Here’s the link of the model - http://ec2-18-188-117-109.us-east-2.compute.amazonaws.com/api/distance

✅ Checklist

Before you post the issue:

sakshamtaneja21 commented 2 years ago

Frontend Deployed Link - https://vmeet-hackx.netlify.app/ React App Web site created using create-react-app Backend Deployed Link - https://vmeet-backend.herokuapp.com/' ML Model EC2 Deployed Link - http://ec2-18-188-117-109.us-east-2.compute.amazonaws.com/api/distance by the way, can we edit our readme now?