This project is an Intrusion detection system (IDS) to detect anomalies in vehicles using AWS Cloud.
In this project, I develop ETL (Extract, transform, load) data pipelines to gather data from a vehicle and put them into a single location to query and extract insights.
I used mock data of reports located in root dir called reports.json
.
Created S3 bucket to storage all the reports of anomalies.
Created DynamoDB table for all the items from reports with vehicleId
as primary key.
Lambda function for dealing with http requests with report\s in json format and saving them in S3 bucket
Lambda function that invoke every time a report is uploaded to S3 bucket., and ingesting the reports from S3 bucket to DynamoDB table cymotiveTable
.
Lambda Function that connects http request to query data in cymotiveTable
, can get Number of:
- Number of reports.
- Number of anomalies.
- Number of vehicle.
Allow to invoke lambda function through http requests.
-
POST / - send report\s in json format, invoke
porter
. -
GET /numberofreports - get number of reports, invoke
analyzer
. -
GET /numberofanomalies - get number of anomalies, invoke
analyzer
. -
GET /numberofvehicles - get number of vehicles, invoke
analyzer
.
AWS-CDK allows me to upload a stack to CloudFormation
using TS.
CloudFormation is not a simple service, but it is a powerful tool that allows you to create and manage your infrastructure.
CDK has the option to test templates and not to deal with zipping Lambda and other services. I've created all the AWS-Services above with CDK and not touched the Console, it helps to maintain the stack and let other devs work on the project.
Simple Template:
Simple Front, Created with React to mobile and desktop.
- Clone the repo - https://github.com/yakovcohen4/CymotiveChallenge
- Run
npm i
in dirfront
to install all the dependencies - Run
npm start
onfront
directory.
- The App - 🔗 Cymotive Statistics
All the right reserved for @Cymotive