- Build a
java
Tweet Collector to collect real-time tweets with Twitter Streaming API - Push collected tweets to
Kafka
cluster - Utilize
Apache Flink
Streaming to process (parse, filter and tranform) tweets - Ingest processed tweets to
Elasticsearch
for data persistance and index - Develop
SpringBoot
RESTful API server
to query tweets from Elasticsearch - Visualize real time tweet trends with Frontend
Angular
web application - Show Geographical Tweet Heat Map with
Kibana
- Create
Docker
image and deploymicroservices
toKubernetes
cluster
-
tweet-collector: collect real-time tweets with Twitter Streaming API and push to Kafka cluster.
- To support other social media, implement SocialMediaCollector interface.
- To support other message queues, implement Sinkable interface.
-
rest-api-server: A RESTful API server querying tweets from Elasticsearch using SpringBoot framework.
-
flink-processor: Streaming process tweets and ingest into Elasticsearch.
-
frontend-website: Visualize Tweet Map with Angular framework. (developing)
JDK version:
- master branch and dev-jdk11 branch: JDK 11
- dev-jdk8 branch: JDK 8
./gradlew :tweet-collector:clean :tweet-collector:build :tweet-collector:dockerPush
java -jar tweet-collector/build/libs/tweet-collector-1.1-SNAPSHOT.jar
./gradlew :flink-processor:clean :flink-processor:build