First release of marcelmaatkamp/steemit-data-analysis-platform

in #utopian-io6 years ago (edited)

Release v1.0

https://github.com/marcelmaatkamp/steemit-data-analysis-platform/releases/tag/1.0

I hereby release the first version of my project where I ingest Steem data in JSON format, put it in RabbitMQ via and ingest the data via java Spring Boot into Neo4j where I can query the data to find interesting patterns. I focussed for the first version on the votes coming from Steem to analyse who is voting on what and made a screenshot available to show the first results of what I found in the data.

I do all this in my spare time so I hope that I can find some time to add more domain objects and make more sense of the data produced by the Steemit platform.

Documentation I added in this initial release:

  • Installation
  • Documentation on how/to ingest and display data
  • Added urls for external resources and
  • Screenshots added showing patterns in the data ( and thus mission v1.0 accomplished!)

The code so far:

  • is a fully working version
  • has examples in src/scratchbook
  • contains unit and integration tests and queries in src/test/java
  • contains a dockerfile and has
  • docker-compose file added to bootstrap the project

Once the ingest is running Neo4j can be queried to find patterns in the data:
graph_version_1.0.png

(The green nodes are "Authors", red nodes are "Voters" and grey nodes are "posts")

Plans to enhance this project could be:

  • To make the data accessible and interactive via a web-interface
  • Generate a docker container with this project and
  • Instantiate a working version on a platform like "Heroku".

Its a pity Steem does not let a author include interactive elements in its posts.

Prerequisites

To run this project the system needs the following locally installed:

  • docker and
  • docker-compose

Installation

Start the whole stack with just these 4 statements:

$ # Start proxy rabbitmq and neo4j services
$ git clone https://github.com/marcelmaatkamp/marcelmaatkamp/steemit-data-analysis-platform.git &&\
  cd marcelmaatkamp/steemit-data-analysis-platform &&\
  docker-compose up -d socksproxy rabbitmq neo4j
$ # Start the live data stream from steemit into rabbitmq
$ RABBITMQ_HOSTNAME=rabbitmq \
   RABBITMQ_EXCHANGE=steemit.api  \ 
   STEEMIT_ACCOUNT_NAME=<OUR_STEEMIT_NAME> \
   STEEMIT_ACCOUNT_ACTIVE_KEY=<YOUR_STEEMIT_ACTIVE_KEY> \
   docker-compose up steemit-live-data
$ # Ingest data from rabbitmq into neo4j
$  steemit_account_name=<STEEM_USERNAME> \
    steemit_account_postkey=<STEEM_POSTKEY> \
    steemit_account_activekey=STEEM_ACTIVEKEY> \
    docker-compose up --build steemit-database

Proxy

Set your browser proxy settings to connect to the services rabbitmq and neo4j via the following url:

socks5://localhost:9050`

RabbitMQ

Once the proxy is installed goto http://rabbitmq:15672 and login with username guest and password guest. The created exchange is steemit.api and the queue is steemit.api.votes.

Neo4j

Once the proxy is installed goto http://neo4j:7474 and query the database and generate beautiful screenshots :)

Issues

Have fun and please contribute or report issue's in Github on
https://github.com/marcelmaatkamp/steemit-data-analysis-platform



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Your contribution cannot be approved yet. See the Utopian Rules. Please edit your contribution to reapply for approval.

Please update and include install package suggestion for prerequisites. ex: sudo apt-get install docker-compose

Also instruct on how to set the account variables
You may want to remove hard coded named volume

WARNING: The steemit_account_name variable is not set. Defaulting to a blank string.
WARNING: The steemit_account_key_post variable is not set. Defaulting to a blank string.
WARNING: The steemit_account_key_active variable is not set. Defaulting to a blank string.
ERROR: Named volume "nodepki-certs-rabbitmq:/certs/rabbitmq:rw" is used in service "rabbitmq" but no declaration was found in the volumes section.

You may edit your post here, as shown below:

You can contact us on Discord.
[utopian-moderator]

Excellent suggestions! I will make an even better installer in the form of a docker-container of this application pushed automatically to the docker hub after each release so that a user doesn't even need to have all the build-tools in the form of gradle and java available on his or her system, only docker and docker-compose are needed to run every aspect of this setup.

I will modify the documentation accordingly and I will add screenshots on how to get and set the environment variables needed to connect to the steem network.

Thanks for evaluating!

Hey @helo, I just gave you a tip for your hard work on moderation. Upvote this comment to support the utopian moderators and increase your future rewards!

Thank you for the contribution. It has been approved.

I'm looking forward to the updates.

You can contact us on Discord.
[utopian-moderator]

@helo: Added the explanation how to install with just docker and docker-compose and removed the volume, seems to install and run fine now, thanks for the help!

Hey @marcelmaatkamp I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • This is your first accepted contribution here in Utopian. Welcome!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.033
BTC 70586.26
ETH 3763.77
USDT 1.00
SBD 3.79