This is an end-to-end graph-based reporting sample built on Neo4j for tracking and measuring meetup group membership statistics over time.
JavaScript HTML CSS
Switch branches/tags
Nothing to show
Clone or download
Latest commit 568c923 Mar 1, 2015

README.md

Neo4j meetups reporting sample

A graph-based reporting platform to track and measure meetup.com groups growth over time. Identify community trends and see what people are meeting about in the world.

Meetup Reporting Dashboard

Check out a demo of the dashboard: Meetup Reporting NoSQL Dashboard

Documentation

Read the full project documentation here: Graph-based Reporting Platform Docs

Architecture

Graph-based Reporting System Diagram

  • Front-end web-based dashboard in Node.js and bootstrap
  • REST API via Neo4j Swagger in Node.js
  • Data import services in Node.js
  • Data storage in Neo4j graph database

Prerequisites

Usage

Follow the directions below for each component of the platform.

Database

  • Extract the Neo4j store files located in neo4j/data.zip to your Neo4j data directory neo4j/data
  • Start the Neo4j server at http://localhost:7474

REST API

  • From the terminal, go to the api directory of the project and run npm install, after node_modules are installed, run node app. The reporting REST API will be started at http://localhost:3000

Reporting Dashboard

  • From the terminal, go to the dashboard directory of the project and run npm install, after node_modules are installed, run node app. The reporting dashboard will be started at http://localhost:5000

Data Import Scheduler

  • From the terminal, go to the scheduler directory of the project and run npm install, after node_modules are installed, run node app. The Meetup group import scheduler will be started at http://localhost:3001. It will run once a day 5 minutes after midnight PST.

Specifications

You can find the project specifications as a GraphGist project app at Neo4j for Graph Analytics: Meetup.com Example

Feedback

Feedback is welcome. Reach out to me on Twitter @kennybastani if you are interested in contributing to this project.