The content of the following post was originally written by Andreas over at the Neo4j Blog.
The Neo4j Heroku Challenge
has closed, leaving a brilliant collection of projects to highlight
developing with Neo4j using a broad range of languages and frameworks.
With the challenge closed to entries, it is time for the voting! Let's
take a look at the challengers to see who deserves your support.
D3 Followers VisualizerNeography on Sinatra in Ruby
by Max de Marzi
Graph visualization doesn't have to be just circles and arrows, as Max demonstrates with this easily grokable project that uses the D3.js library to display a chord diagram of [:follows] relationships in the graph.
Read more about it in Max's blog post.
D3 Network VisualizerNeography on Sinatra in Ruby
by Max de Marzi
Following up with a more traditional graph representation, Max's Network Visualizer project shows how organic a graph visualization can be. With a color palette evocative of Gensen, Heroku and Neo4j, this sample could the official challenge flower.
Read more in Max's other blog post.
Flattr what?Neography on Sinatra in Ruby
by Simon Gate and Joel Hansson
The "Flattr what?" application is a super simple recommendation engine for Flattr users, a micro-payment/tipping system for bloggers and other content creators. The demo app starts with a user, then scrapes the Flattr API to recommend other things to flattr.
Read all the details at Simon's project repository.
FlavorwockyGrails in Groovy
by Luanne Misquitta
Flavor-what-now? This amusingly named app models ingredient pairs or flavor affinities, allowing you to search by ingredient and view complementary combinations. I didn't see "Bacon and Avocado" so a quick click of the "Add Pairing" button later and I've contributed to the crowd sourced edible wisdom.
Luanne has a great write-up that tells the whole story.
Frosty MugNeo4jPhp on Silex in PHP
by Josh Adell
Frosty Mug helps navigate the vast ocean of beers on tap at a proper brew pub. Start with a beer you like, then Frosty Mug will recommend similar beers. This app might need a mobile version UI so we can use it at Neo4j Meetups to help order beers in a graph-like way. Cheers.
Peruse the github repository to see under the covers.
LightbulbBulbs in Python
by James Thornton
A git-powered, Neo4j-backed blog engine running on Heroku. A headless application? Yes! With Lightbulb, you can use your favorite text editor, then push the content to Heroku, where Lightbulb will extract the entry metadata, save it to Neo4j, then serve it up in convenient chunks. By focusing on serving up custom data endpoints, a client-side application can easily incorporate the blog fragments.
The Bulbflow website has all the details.
NeoBlogPy2Neo on Flask in Python
by Matt Williams
Neo Blog is a simple blog engine written in Python, backed by Neo4j. This app demonstrates that your application doesn't have to be overtly graphy to benefit from developing with a graph database. A blog platform is so familiar, it's easy to forget the incredible connectedness of all the content, and the comments, and tag clouds.
Check out the implementation at the project repository.
Scala Plays with Neo4jNeo4j REST through Play in Scala
By Andy Petrella
With this through-the-web edited social graph, Andy demonstrates how easy it is to get access Neo4j from Scala while running on the Play framework. Down in the guts, he uses the Databinder Dispatch library to set up a Neo4jRestService which pipes all the data from the Neo4j server.
To go along with it, Andy has written a great series about Neo4j on his blog.
GraphtagNeocons on Ring in Clojure
By Aran Elkington
With Graphtag, Aran has created a Clojure application which monitors twitter mentions against a custom account "GraphTag" and inputs the content of those tweets into neo4j as a node. The individual that made the tweet is also stored in Neo4j and links are created from their node to any tweets they mention "GraphTag" in.
Without a distracting UI, Graphtag capably demonstrates how naturally Neo4j integrates with Clojure, providing a solid starting point for developing your own applications.
Read more about Graph tag at Aran's github repository.
NeoflixNeography on Sinatra in Ruby
by Max de Marzi
In a great spin on the classic (for Neo4j) dataset, Neoflix explores a movie database with great D3-powered visualizations to make recommendations about other films you might want to watch.
You should read everything Max writes, including a post about this project.
By Aseem Kishore
Node-Neo4j.js really seems like it could be named Relationship.js, doesn't it? Regardless, it's an easy to use library that lets Node.js developers work with a full Neo4j graph. Aseem's template project demonstrates the essential operations of working with Neo4j, implementing a social network with [:follows] relationships.
Read the details on Aseem's project website.
Python, Flask, Neo4j Demo AppPy2Neo on Flask in Python
by Carson McDonald
The app is a simple data explorer with bookmarking ability to show off some of the features of Neo4j. A subset of data from a Stack Exchange CC data dump, specifically Programers Stack Exchange, is used to populate a sample database. The bookmarking feature allows for weights to be added for later use in recommendations.
Neo4j Grails DemoGrails Neo4j plugin on Grails in Groovy
By Stefan Armbruster
When you want to get right to coding up your great application idea, having a clean project template with all the bits in place helps enormously to get you started. Stefan has provided that here for Grails developers.
Read more about Neo4j for Grails at the project repository and Stefan's blog about Grails Neo4j.
Neo4j or Bust.NET Neo4jClient in ASP.NET via Sinatra and Ruby proxy on Heroku
By Romiko Derbynew
Neo4j or Bust (aka FrictionFree.org) is an impressive integration of Heroku (to access Neo4j) and AppHarbor (to host the .NET application), to create a website that lets you discover and follow interesting people. This is classic social networking: based on who you know and driven by your interests, you use your network of connections to find new people.
Learn all of Romiko's secrets in his blog post about the project.
NeoQuoteSpring Data Neo4j on Sinatra in JRuby
By Tomás Müller
Assembling an ambitious stack of technology, NeoQuote delivers a stock-exchange symbol lookup application, with integrated voice search! Yes, I know you want to try it right away. Open a new window, we'll wait.
From idea to implementation, you can follow the step-by-step development in Tomás' blog post.
Scalatra Neo4jNeo4j REST on Scalatra in Scala
By Hannu Leinonen
Ruby's Sinatra has inspired many other lightweight web frameworks to take the stage. Scalatra is Scala's implementation. With Scalatra Neo4j, Hannu shows how to take that easy development style one step further to integrate with Neo4j, quick-stepping past boilerplate code to get right to dancing in your application domain.
Dig the details at Hannu's github repository.
Every Vote CountsA lot of creativity and love was poured into these projects. Now it's your turn to participate. After investigating the projects, you've got two ways to vote:
1. Cast your vote by tweeting #neo4jchallenge and the url to the project's github repository
2. Login to Gensen and add star rating to the project
Some deserving developer is going to get an iPad3 thanks to your support!
Want to learn more, or hear from the developer's themselves? We're having a "virtual meetup" voting party next week to hear from the project authors and vote. Authors and voters, join us.