Congrats!

The winners have
been announced! Thanks to all contributors and to our friends at Heroku, the challenge was well met, and has concluded.

Challenge: Seed the Cloud

Join Neo4j on Heroku, then help others get started by creating a Heroku-ready template or demo application using Neo4j.

The best project templates will win recognition and prizes. Use any language, any framework, with Neo4j!

  • 1Create a Project using the Neo4j Add-on
  • 2Share the Project as a Template on Gensen
  • 3Win a place in the clouds (and cool prizes)
product

Getting Started

In General

  1. Join Heroku, then prepare your developer environment
  2. Create a new Heroku app, using the Neo4j Add-on:
    // Create the application
    heroku apps:create {app name}
    // Include the Neo4j Add-on
    heroku addons:add neo4j --app {app name}
  3. Pick a Neo4j REST driver (see the sidebar)
  4. Provide the NEO4J_REST_URL environment variable to the driver
  5. Get graphy with your application

Learn about Neo4j

Neo4j is a graph database, backing that most generic of data structures with a high-performance, transactional persistence engine. Within Neo4j, the model is a Property Graph — nodes and relationships with key-value properties on both. There is no schema, only structure and a convenient index facility for quick look-ups. Querying is performed through a traversal, using either Cypher or Gremlin. On Heroku, access to Neo4j is through its REST API.

Heroku with Gensen

Heroku makes it easy to deploy your application into the cloud. With Gensen, a new community is forming for sharing projects, like having all those example github projects in one place, easy to find, compare and evaluate. We love the idea so much that we're adopting it early, to water the little flower and help it grow. Hence this challenge.

Your Challenge

Choose your favorite programming language, framework and build tools. Create a simple, illustrative, and functional application that provides a perfect base for creating new projects. Then share it on Gensen. While there are drivers for many languages, some may only support embedded use, running on the JVM. Bonus points for cajoling or contributing REST support for those languages (win a super secret prize).

Neo4j Drivers

* Drivers should support Neo4j 1.6+REST. Did we miss one? Let us know in the comments.

Gensen - Project
Template Repository

Gensen is a repository of Heroku project templates. These fully working example applications include just enough code to demonstrate how to use a particular combination of Language, Framework and Add-ons.

After signing in, you can easily browse the available templates, rate them, or elect to share one of your own projects (which is what you'll want to do to participate in this challenge).

  • Any language: Ruby, Java, Python, Javascript
  • Popular frameworks: Rails, Spring, Django, Express
  • Every add-on: look for the one spelled N-E-O-4-J

All you need to get started is an account on Heroku.

book

use a template

  1. Go to Gensen, logging in to your Heroku account
  2. Select your preferred language, framework and other features
  3. (optional) Give a rating and leave comments about some templates
  4. Click the "clone" button next to the template that catches your eye

Congratulations! A fresh clone of the template project will be created for you, ready to use and easily customized for your own clever purposes.

share a project

  1. Go to Gensen, logging in to your Heroku account
  2. Follow the "Share your Applications" button
  3. Select one of your existing Heroku apps, hit "Share"
  4. Customize the "Share an App" form, then submit

Thanks! You will have very generously contributed to saving the planet by reducing the amount of energy wasted when starting a project from scratch. (See rules)

Prizes

The complex maths of determining who gets recognized for an outstanding contribution is explained fully on the rules page. The basic function is: (ratings + tweets) + panel. Winners will be recognized in each of these categories:

  • Photo

    Lightning: iPad 2

    Your air splintering brilliance has left us all blinking. Well done.

    • One single winner
    • Top overall score
    • iPad2 (or Apple Gift Cert)
  • photo

    Thunder: $100 @ ThinkGeek

    Rolling strong across the lands, everyone will hear you coming.

    • One winner per language
    • Top score within each
    • Gear up at Think Geek
  • Photo

    Rain: T-Shirts

    A thousand flowers will bloom from the work you've done. Thank you.

    • One for every participant!
    • Requires a qualified entry
    • Stylish one-of-a-kind shirts

Bonus: everyone who registers for participation will earn a Coderwall achievement badge

Pretty cool, right? Go get started!

Da Rulez

How to Enter

Do This...

  1. Register for the challenge
  2. Sign up for an account on Heroku
  3. Create a Heroku-deployable project using the Neo4j Add-on
  4. Share the project on Gensen
  5. Be sure to use neo4j-challenge as the Application Type
  6. Tweet your project's Git URL, plus hashtag #neo4jchallenge
  7. Convince friends to re-tweet and rate on Gensen

How many projects can I enter?

As many as you'd like, though each author will only be eligible to win once in each category (Lightning, Thunder and Rain).

How "real" does the project have to be?

We're not expecting Facebook, but the application should be functional. Think on the level of the classic "to-do" application that seems obligatory for javascript frameworks. Maybe even port one of those to use Neo4j and deploy to Heroku.

What is required of the project template?

The project must:

  • use the Neo4j Add-on
  • build and run locally
  • deploy correctly to Heroku
  • provide adequate documentation

The guest panel reserves the right to reject entries that do not satisfy these requirements.

Scoring

Variables

  • rating = average star rating on Gensen
  • tweets = total tweets (including re-tweets) of project's Git URL with #neo4jchallenge
  • panel = average star rating by guest panel
  • score = 0.5*(rating/5) + 0.3*(tweets/20) + 0.2*(panel/5)

Wait. Scoring seems weighted toward ratings, but tweets aren't capped. Can't I just..?

Yup, you totally can run the score up with an impressive Twitter campaign. Keep it real, but go for it.

What happens if there is a tie? That's possible, isn't it?

In the unlikely event of identical top scores for any category, we'll invoke tie-breaking procedures: conduct a poll for each tie in need of resolution, seeking the wisdom of the crowd.

I call foul.. on something. To whom can I turn?

If something in this challenge does not seem legit to you, let us know. We'll give serious consideration to complaints and suggestions, and will reach out to all participants before making any significant changes.

When does all this wrap up?

Project entries must be received by midnight on February 29th. However, voting will continue through the next week, ending on March 9th.

Voting

There are two ways to vote in support of an entry:

  • rate it - add star rating and comment on Gensen
  • tweet it - tweet the project's Git URL with #neo4jchallenge

Can I vote for more than one project?

Of course, feel free to spread the love to all your favorite projects.

What about ballot stuffing?

Don't go all spambot on the contest, but otherwise vote early, vote often!

When does all this wrap up?

Acceptance of project entries closed on February 29th. However, voting will continue through the next week, ending on March 9th. We're hosting a voting part at our virtual meetup, inviting all the authors to represent themselves. Join us.

Guest Panel

To Be Announced!

Why is there a guest panel?

The guest panel is in the mix to lend a trained eye for quality code, and guard the spirit of the challenge.

Registration

Ready to participate? Please share your email, and either twitter and/or github handle. The email will only be used for communication regarding this challenge, and the handle will be used for correlating your submissions. Also, these identifiers are used to properly award your Coderwall badge for participating in the challenge:

Discuss

blog comments powered by Disqus

Learn more about Neo4j out on the intertubes:

  • Twitter
  • Twitter
  • You Tube
  • Linked In

Contact us directly:

challenge@neo4j.org