Skip to content
This repository has been archived by the owner on Apr 2, 2023. It is now read-only.

zS1L3NT/whosthat

Repository files navigation

WhosThat

License Languages Top Language Commit Activity Last commit

A very scuffed usage of AWS Cloud to build an extremely simple security system that probably shouldn't be used in production.

The simple idea is that you should have many areas registered with this system. Each area can have multiple cameras and multiple users authorized to be in the area. These users could be security guards or administrators. The location of these users will be constantly sent out from their device via MQTT to IoT Core so it knows where they are (near or away from the area).

If one of the cameras detect motion, it will capture the current camera feed and upload it to the S3 bucket. This should by right trigger a Lambda to check for people in the camera feed.

If all users are outside the area AND there are people detected in the camera feed, SNS will send an email to a registered email address to alert them of unauthorized precense in the area. The Lambda will also capture all the information and upload it to DynamoDB for tracking purposes.

WhosThat Cloud Architecture Diagram

Motivation

I need a deliverable for my school subject called IoT Application Development (ITAD)

Subrepositories

This is the the Flutter app that runs on the user's device as the IoT Device

This is the AWS Lambda function's code

This is the React frontend testing dashboard built for the live demonstration of WhosThat

Usage

Setup the AWS Project

Good luck...
AWS-Setup.md

Setup the Flutter project

Copy the env.example.dart file to env.dart then fill in the correct project credentials

$ flutter pub get
$ flutter run --no-sound-null-safety

Setup the React frontend

Copy the .env.example file to .env then fill in the correct project credentials

$ npm i
$ npm run dev

Credits

@rxtay for the extensive help on AWS Cloud Infrastructure

Built with

  • Amazon Web Services
    • IoT Core
    • DynamoDB
    • Lambda
    • S3 Bucket
    • API Gateway
    • Simple Notification Service
    • Rekognition
  • Lambda
    • TypeScript
      • @types/aws-lambda
      • @types/node
      • ts-node
      • typescript
    • AWS SDK
      • aws-lambda
      • aws-sdk
  • Flutter
    • AWS SDK
      • aws_iot_data_api
    • Miscellaneous
      • flutter_lints
      • geolocator
      • http
      • timeago