Skip to content

A Serverless Facial Recognition Voting Application built entirely using AWS services and adheres to established best practices and uses the Event-Driven pattern.

License

Notifications You must be signed in to change notification settings

chyke007/facial-vote

Repository files navigation


Voting Flow
Face Polls

FacePolls, is Serverless Facial Recognition voting application built entirely using AWS services and adheres to established best practices and uses the Event-Driven pattern.

License: MIT

Folder StructureServices UsedHow To UseArchitectureDocumentationRelatedLicense

Folder Structure

This project contains source code for a serverless that can be deployed using the serverless framework. It also contains frontend code built using Next.js that can also be easily deployed or run locally. Also added are the architecture diagrams for the project.

Services Used

The application utilizes the event driven architecure and is built using AWS services powered by the serverless framework. The following are the AWS services explicitly used

  • Amazon EventBridge
  • Amazon S3
  • Amazon DynamoDB
  • Amazon SES
  • AWS Lambda
  • Amazon API Gateway
  • AWS Step Functions
  • AWS IoT
  • Amazon Rekognition
  • Amazon Cognito
  • AWS CloudFormation
  • AWS Amplify
  • AWS STS

How To Use

To clone and run this application, you'll need Git and Node.js v16+ (which comes with npm) installed on your computer. Also create an account with AWS, install the AWS CLI in locally, create an IAM user and add this user to AWS CLI as a profile. This profile user should have necessary permissions to deploy the backend section to AWS. Next, add required credentials to the .env file created from the command below. From your command line:

# Clone this repository
$ git clone https://github.com/chyke007/facial-vote.git

# Go into the repository
$ cd facial-vote

# Copy environment variable
$ cp facial-vote-admin/.env.example facial-vote-admin/.env && cp facial-vote-backend/.env.example facial-vote-backend/.env  && cp facial-vote-frontend/.env.example facial-vote-frontend/.env

# Deploy backend (run from folder root)
$ npm i serverless -g
$ cd facial-vote-backend && npm i && serverless deploy

# Remove backend resources (run from folder root)
$ cd facial-vote-backend && sls remove

# Run Frontend (run from folder root)
$ cd facial-vote-frontend && npm i && npm run dev

# Run Admin (run from folder root)
$ cd facial-vote-admin && npm i && npm run dev

Architecture

Face Index Flow

Face Index Flow

Face Recognition/Voting Flow

Voting Flow

Live Result flow

Live Result Flow

Admin Flow

Admin Flow

Documentation

You can find an article that explains the project here

You may also like...

  • YumFood - An An online food ordering application
  • TrackIt - A WhatsApp messages tracker

License

MIT


chibuikenwa.com  ·  GitHub @chyke007  ·  LinkedIn @chibuikenwachukwu