{"id":13530202,"url":"https://github.com/jimwebber/neo4j-tutorial","last_synced_at":"2025-04-01T17:32:10.794Z","repository":{"id":1286228,"uuid":"1225993","full_name":"jimwebber/neo4j-tutorial","owner":"jimwebber","description":"A koan-style tutorial in Java for Neo4j","archived":false,"fork":false,"pushed_at":"2015-03-26T13:59:39.000Z","size":383160,"stargazers_count":320,"open_issues_count":11,"forks_count":91,"subscribers_count":39,"default_branch":"master","last_synced_at":"2024-11-02T16:36:01.564Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jimwebber.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-01-06T10:34:13.000Z","updated_at":"2024-10-01T00:05:48.000Z","dependencies_parsed_at":"2022-08-16T12:55:17.643Z","dependency_job_id":null,"html_url":"https://github.com/jimwebber/neo4j-tutorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jimwebber%2Fneo4j-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jimwebber%2Fneo4j-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jimwebber%2Fneo4j-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jimwebber%2Fneo4j-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jimwebber","download_url":"https://codeload.github.com/jimwebber/neo4j-tutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246680391,"owners_count":20816689,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T07:00:45.637Z","updated_at":"2025-04-01T17:32:10.426Z","avatar_url":"https://github.com/jimwebber.png","language":"Java","funding_links":[],"categories":["Learn","Languages"],"sub_categories":["Other","Java"],"readme":"Neo4j Koans\n===========\n\n![\"New Daleks\"\"](http://static.bbc.co.uk/images/ic/qe/crop/946x532/doctorwho/monsters/daleks/d11/s01/galleries/new_dalek_gallery/37.jpg)\n\nThis set of Koans provides a hands-on tutorial for learning the Neo4j open source graph database. It's part of a more comprehensive tutorial often presented by the [authors](#authors) and other folks.\n\nWhat are Koans?\n---------------\n\nThe Koan idea was borrowed from the [Ruby Koans](http://rubykoans.com/) which provide a number of broken unit tests, and in fixing those tests increasingly advanced Ruby features are learned. The Koan model provides very rapid feedback and a structured learning path wrapped in a pre-configured environment for effective learning. \n\nThese are very desirable characteristics when it comes to learning Neo4j too, and so the Neo4j Koans have adopted the same model: there are a set of (broken) unit tests, and in fixing each of them we learn some aspect of using Neo4j. As we work through the Koans we'll learn increasingly sophisticated APIs, modeling and querying techniques, and become fluent in the Cypher query language. At the Koans we'll feel supremely confident about using Neo4j in production.\n\nPrerequisites\n-------------\n\nYou'll need to be familiar with the Java programming language for some of the early Koans and confident enough in Java to be able to run JUnit tests. If you like a particular IDE like Eclipse or IntelliJ, that's helpful but you can run these Koans from the command line too using an [Ant](http://ant.apache.org) script. All the Neo4j skills you'll need will be developed as part of completing the Koans.\n\nSetting up Koans\n----------------\n\nThe first step in setting up the koans is to clone this repository from github, or to download the latest tarball. To clone from github:\n\n    git clone git://github.com/jimwebber/neo4j-tutorial.git\n\nTo download the latest version of the koans as a zipfile, click on the following URI:\n\n[https://github.com/jimwebber/neo4j-tutorial/zipball/master](https://github.com/jimwebber/neo4j-tutorial/zipball/master)\n\nOnce you have cloned or downloaded and unzipped the koans, you're almost ready. You just need the Neo4j binary dependencies, which you can get by running the default Apache Ant target from the root directory:\n\n    ant \n\nWe use Apache Ivy for dependency resolution and for all the many wonderful benefits Ant and Ivy provide, speed isn't one of them so you might want to go fetch a cup of tea while you're waiting for (seemingly) most of the Internet to download. \n\nOnce the default Ant target has completed, you'll find it has dropped a set of libraries in the lib directory immediately under your Koan directory. It has also run the Koans and the unit tests that validate that everything's ready and will have left a report under:\n\n    target/koan/reports/output/index.html\n\nSince the Koans come complete with the answers, if you're going to benefit from following them, you'll need to delete those answers. Fortunately we've provided a sed script that does this for you. From the root directory of your Koan download, run: \n\n    src/main/scripts/remove_snippets.sh\n\nSorry to Windows users, you'll have to run this with [Cygwin](http://www.cygwin.com/) for now.\n\nThe sed script removes all lines between\n\n    //SNIPPET_START\n    //SNIPPET_END\n\nin the Koans, leaving them compiling but in a failing state. \n\nIf you want to run individual Koans (rather than all of them) then just type the specific Koan's target on the command line. For example to run Koan 5:\n\n   ant run.koan05\n\nand to run all of Koan 8 (which has many parts):\n\n   ant run.koan08\n\nIf you'd prefer to use an IDE, you can of course just use your favourite development environment to run the Koans too.\n\nI want my IDE\n-------------\n\nIf you'd like some help in setting up the Koans in your IDE, the Ant script contains a target called generate.eclipse.project. By issuing the command:\n\n    ant generate.eclipse.project\n\nan Eclipse project will be created in the Koan directory. This can be opened easily with Eclipse or Intellij where you can run individual koans as JUnit tests as normal.\n\n\nWhere are my Koans?\n-------------------\n\nThe Koans themselves are in the root directory under:\n\n    src/koan/java\n\nand you'll see that they're numerically increasing in number. Start with *Koan01.java* and run it. If you're running the Koans in your IDE, then you can run Koan01.java as a unit test and verify that a Neo4j database can be created and populated with Doctor Who data, and that you have your IDE project set up properly.\n\nNow that you're at this point, you're ready to move to *Koan02.java* and really start hacking on Neo4j.\n\nLive Sessions\n-------------\n\nThis tutorial is presented around the world. If you're interested in participating in a class, then it'll be taught at:\n\n* Quarterly at [Skillsmatter](http://skillsmatter.com/course/nosql/neo4j-tutorial) London, UK\n* Regularly at conferences around the world. Check the [Neo Technology calendar](http://www.neotechnology.com/calendar/) for more information\n\nAuthors \u003ca name=\"authors\"\u003e\n-------\n\n[Ian Robinson](http://iansrobinson.com), [@iansrobinson](http://twitter.com/iansrobinson)\n\n[Jim Webber](http://jimwebber.org/), [@jimwebber](http://twitter.com/jimwebber)\n   \nContributors \u003ca name=\"contributors\"\u003e\n-------\n\n[Stefan Armbruster](http://blog.armbruster-it.de/), [darthvader42](https://twitter.com/darthvader42)\n\n[Glen Ford](http://usersource.net/), [@glen_ford](http://twitter.com/glen_ford)\n\nAlistair Jones, [@apcj](http://twitter.com/apcj)\n\n[Tobias Lindaaker](http://www.thobe.org/), [@thobe](http://twitter.com/thobe)\n\nPeter Neubauer, [@peterneubauer](http://twitter.com/peterneubauer)\n\n[Michael Peterson](http://thornydev.blogspot.com/), [@midpeter444](http://twitter.com/midpeter444)\n\nAndres Taylor, [@andres_taylor](http://twitter.com/andres_taylor)\n\nNiklas Uhrberg\n\n[Aleksa Vukotic](http://aleksavukotic.com), [@aleksavukotic](http://twitter.com/aleksavukotic)\n\nLinks\n-----\nAs well as being a contributor, [Michael Peterson](http://thornydev.blogspot.com/) has written a blog post on setting up the Koans from the point of view of a first-time user. You can find Michael's posting [here](http://thornydev.blogspot.com/2011/11/neo4j-koans-how-do-i-begin.html).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjimwebber%2Fneo4j-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjimwebber%2Fneo4j-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjimwebber%2Fneo4j-tutorial/lists"}