Peaceland is a full project made with scala, spark, kafka, node and react to design a big data architecture.
Our choices led us to the following architecture:
architecture.png
is our architecture solution for Peaceland project.subject.pdf
contains the details of the Peaceland project.
first_presentation/report.*
contains our detailed answers to the four questions asked;first_presentation/spark_soutenance_intermediaire.pdf
contains our slides for the presentation, as well as our architecture blueprint;
alert_screen/
contains the front end that peacekeepers use to see alerts
alert_consumer/
contains the module for the consumer that reads over a Kafka stream of peacewatcher reports and sends the ones with low peacescores on the alert stream
analytics/
contains the module that downloads data from AWS S3, and then computes analytics to answer the following questions:- Days of the week with the most pissed off people
- Number of agitated person per words heard
- Agitation per peacewatcher id
- Agitation per location
- Agitation per hour
api_consumer/
contains the module that reads the alert stream and hooks its data to both a Discord and an API endpoint
peacewatcher_simulator/
contains the module for the producer that generates reports and put them on the Kafka stream of peacewatcher reports
archives_store/
contains the module for the consumer that reads a batch of messages on the Kafka stream of peacewatcher reports, and aggregate them into a single object file, which is then put on AWS S3
- Launch your zookeeper server
- Launch your kafka server
- Launch the alert_consumer module using
sbt "project alert_consumer" "run"
- Launch the archives_store module using
sbt "project archives_store" "run"
- Launch the api_consumer module using
npm i
to install dependencies and start in one terminalnode consumer.js
and in anothernode redirect_server.js
- Launch the analytics module using
sbt "project analytics" "run"
- Launch the alert_screen front end using
npm i && npm start
- Launch the peacewatcher_simulator using
sbt "peacewatcher_simulator" "run"