An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          





GateKeeper Logo

Gatekeeper


A one of kind attendance management system


Tensorflow Face-API >




View Deployment





  1. About The Project




  2. Server routes


  3. Getting Started



## 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

(Back to top)

## 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 |

(Back to top)

## 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

(Back to top)