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.
Check out a demo of the dashboard: Meetup Reporting NoSQL Dashboard
Documentation
Read the full project documentation here: Graph-based Reporting Platform Docs
Architecture
- 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
- An instance of Neo4j (
>=2.1
) running locally - http://www.neo4j.org/download - A Meetup.com API Key for running data import services - http://www.meetup.com/meetup_api/
- Installed
node.js
andnpm
on your machine
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 directoryneo4j/data
- Start the Neo4j server at
http://localhost:7474
REST API
- From the terminal, go to the
api
directory of the project and runnpm install
, afternode_modules
are installed, runnode app
. The reporting REST API will be started athttp://localhost:3000
Reporting Dashboard
- From the terminal, go to the
dashboard
directory of the project and runnpm install
, afternode_modules
are installed, runnode app
. The reporting dashboard will be started athttp://localhost:5000
Data Import Scheduler
- From the terminal, go to the
scheduler
directory of the project and runnpm install
, afternode_modules
are installed, runnode app
. The Meetup group import scheduler will be started athttp://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.