https://github.com/saswatsam786/gatekeeper
A one of a kind attendance management system built using facial recognition and integrated with a decentralised payment system built on hedera network.
https://github.com/saswatsam786/gatekeeper
chartjs firebase hedera-hashgraph javascript nodejs oauth reactjs tenserflow
Last synced: 2 months ago
JSON representation
A one of a kind attendance management system built using facial recognition and integrated with a decentralised payment system built on hedera network.
- Host: GitHub
- URL: https://github.com/saswatsam786/gatekeeper
- Owner: saswatsam786
- Created: 2022-05-04T16:27:31.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2023-09-05T18:07:41.000Z (almost 3 years ago)
- Last Synced: 2025-02-09T19:42:14.591Z (over 1 year ago)
- Topics: chartjs, firebase, hedera-hashgraph, javascript, nodejs, oauth, reactjs, tenserflow
- Language: JavaScript
- Homepage: https://gatekeeper-2a20c.web.app/
- Size: 13.3 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## About The Project
GateKeeper is one of a kind real-time attendance management system built using face-api on top of TensorFlow and has a decentralized payment system built using Hedera Hashgraph
### Demo
https://github.com/saswatsam786/gateKeeper/assets/77463804/d27909e6-42d6-45a1-8568-b937989729f7
### Built With
- **[Tensorflow](https://justadudewhohacks.github.io/face-api.js/docs/index.html)** for face-API
- **[ReactJS](https://reactjs.org/docs/getting-started.html)** for front-end
- **[NodeJS]([https://reactjs.org/docs/getting-started.html](https://nodejs.org/docs/latest-v20.x/api/))** for server
- **[Hedera Hashgraph-SDK](https://docs.hedera.com/guides/)** for creating decentralised accounts and payment system
- **[Express](https://expressjs.com/)** middleware on the backend to handle api routes and requests
- **[Firebase](https://firebase.google.com/)** database and also used for authentication
- **[Heroku](https://www.heroku.com/)** used for deploying and hosting the project
- **[Github](https://github.com/)** for CI/CD and git
- **[Firebase](https://firebase.google.com/)** for hosting frontend
### Features
1. **Recording attendance** - Uses Tensorflow's advanced real-time face recognition algorithm to verify registered users only and track attendance.
2. **Statistics** - Complex real-time data visualization made easy using chart.js
3. **Rewards** - Collect crypto-credits(in hbars) for successfully maintaining streak of attendance at 28th of every month.
4. **Uploading Photo** - Users are required to register their photo into the database in order for the application to work.
5. **Built on the Hedera network** - An attendance management system built on the decentralized Hedera network using the Hashgraph SDK with decentralized payment system to transfer crypto hbars with other users.
6. **Check balance** - Settings page has been made for the user, where one can see his Hedera account id, account balance, account creation date, and transaction history.
### Planned features for the project
- A built-in store to spend your earned credits on college merch
- Upload and check the status of the leave application in the student portal.
- Verification system for leave application on the college portal
## Server Routes
| Type | Route | Description |
| :--: | -------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| GET | /createAccount | Creates an account for the user on the Hedera Network with a unique account ID |
| POST | /balance | Checks the balance of the user |
| POST | /transferMoney | Used for making a transaction between users |
| POST | /deleteAccount | Called when the user deletes his/her account essentially deleting their account from the Hedera network and Firestore database |
## Getting started
```bash
git clone https://github.com/saswatsam786/gateKeeper.git
git checkout dev-branch
```
Create a .env file in the root directory:
```
REACT_APP_FIREBASE_API_KEY=
REACT_APP_FIREBASE_AUTH_DOMAIN=.firebaseapp.com
REACT_APP_FIREBASE_PROJECT_ID=
REACT_APP_FIREBASE_STORAGE_BUCKET=.appspot.com
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=
REACT_APP_FIREBASE_APP_ID=
REACT_APP_ACCOUNT_ID=
REACT_APP_PRIVATE_KEY=
REACT_APP_FACT_KEY=
```
Now create a .env file in the server directory:
```bash
MY_ACCOUNT_ID=
MY_PRIVATE_KEY=
MY_PUBLIC_KEY=
# (for new user, they can register themselves at link given below and get the above credentials)
https://portal.hedera.com/login
```
Run the command in the **root directory and the server directory to install all the dependencies**:
```
npm install
npm start
```
To run the server on the local machine:
```bash
cd server
npm i
npm start
```
```if error then just refresh the page```
```Attendance is recorded between 11:00 AM and 11:00 PM```
View Slides for more details