Creating Graphville: Learn Neo4j & Cypher Through Stories


Graph educational platform with Neo4j courses to teach Cypher to beginners


My name is Vlad, and I am a Neo4j graph enthusiast. What does it mean? I love to solve problems using graphs, I write about graphs in the Neo4j blog, and I consult and collaborate with other engineers across the globe.

Recently I launched an EdTech project for Neo4j beginners, called Graphville. And here is my story.

Season 1, Episode 1: Welcome to Graphville

Graphville is a graph educational platform for engineers to learn Neo4j Database and Cypher query language.

The project was in a passive development for the last three years. I know the pain of working on something for a long time, and it’s always in the “not finished yet” state. In this article, I want to summarize the most important aspects of the development process and share my story with other engineers. I want to motivate people like me to build and release more indie projects.

Don’t be afraid to invest your time into something new. Creating a unique thing — is a privilege.

The Idea

In May 2019 I started learning Neo4j through the “One Month Graph Challenge.” For one month, I learned something new every single day and wrote a short article about it. After my initial stage of learning, I ended up with 30 articles.

The most insightful stories about Omgchallenge – Medium

These two short stories became an inspiration for Graphville — a small virtual town with its own citizens and problems that can be solved using graphs.

From idea to implementation

You probably know that Neo4j, Cypher, and APOC were inspired by the “Matrix” movie. You also might remember that once Thomas Anderson became Neo he could learn anything just in a few seconds: Kung Fu, how to drive a helicopter, or the Dijkstra Shortest Path algorithm. What you probably don’t know yet is that in Graphville you can learn graph theory, Neo4j basics, and level up your Cypher skills within quite a short period of time! (Not in a few seconds, of course, but you will enjoy the process.)

Know Your Audience

Later on, I wrote quite a popular article, “Learn Cypher in 30 minutes,” based on the materials from my Neo4j workshop in Bangkok. At the end of the tutorial, I asked readers to solve several practical Cypher tasks. I was pleased with the rather large number of participants, many of whom solved all the tasks correctly!

Learn Neo4j Cypher basics in 30 minutes

I received 81 responses (the number grew still), and these provide useful insights into the learning curve. Sure, it’s a very small dataset, but it still gave me enough of a signal to act.

The majority of engineers from various software development fields want to learn graph technologies to expand their knowledge and skills. In most, they want to learn basic concepts, how to do data modeling, how to write queries, and be aware of the most popular graph algorithms. This is how I can formulate the mission of Graphville:

The mission of Graphville is to help engineers to enter the field of graph technologies.

Key Principles

Once you establish a mission, it’s time to build up a philosophy for your project. The philosophy of Graphville’s educational platform is based on three key principles: teach the right things, teach in a fun way, and set challenging problems.

Educate

Graphville theory meets the guidelines from the official documentation. The explanations are simple and easy to understand. Query examples follow naming conventions and best practices. Each lesson is focused on a single topic and includes Tests and Tasks for a better understanding of learning materials.

Graphville, Task View

Engaging UX

Reading documentation can be boring. How to make it fun for engineers? Create a joyful learning process by mixing theory and practice. User experience should be the same compared to official tools like Bloom or Neo4j Browser.

With Graphville, you don’t need to install anything, no need to prepare a dataset, or do a setup for your local machine. Open Graphville, select a topic, and jump into the theory and practice.

Bloom
Neo4j Browser
Graphville GraphUI

Seasons and Episodes

Graphville is something like a Netflix series with several seasons. Every lesson is an episode in a small story with a plot and heroes. Stories have unique illustrations that help you to turn on your imagination and have some extra fun with the learning process.

Mr. Hank Teasle, Sheriff of Graphville

Challenge

How can you gain stronger knowledge? Tasks and Tests. Combining theory and practice, Graphville lessons ask students to explore graphs, answer questions, and write a bunch of Cypher queries. Tasks are not complex, but also not trivial. I strongly believe that challenge is a required part of any learning process.

Without a challenge, you will not fully enjoy a result.

Team

Now I want to talk about the importance of a team. The big project is a marathon, not a sprint. Sooner or later you will need help, you will need extra energy, ideas, and motivation to move on. These people impact the project and change it in a better way. Without these people and their contributions, Graphville would be an absolutely different story.

Graphville Team

Alena

She is my sister and a hardworking frontend engineer, and she is an expert in HTML and CSS. She learned D3.js from scratch and built her own GraphUI: clickable, zoomable, and draggable graph. Decent result!

Graphville, Page View

Irina

Graphville illustrator and author of all visual materials. She has fantastic taste and always understands how to bring the best ideas alive. With her help, Graphville has its own visual style. And as proof, just take a look at this beauty!

Season 1, Episode 2, Page 1.5: Fantastic Beasts and Where to Find Their Owners

Rob

This Neo4j expert literally lives on the opposite side of the world (we have a 12-hour time difference). Rob joined Graphville as a lesson author and helps to create tests, tasks, and content for lessons. He is a creative person who changed Graphville’s structure from a plain Storybook into a conceptual series of Seasons and Episodes.

MATCH (e:Episode)-[:CREATED_BY]->(a:Author)
WHERE a.name = "Rob"
RETURN e.title

Masha

The creator of Graphville teaser for YouTube, Masha helped at a very early stage, when there was nothing at all. The video is no longer in use, but the Graphville teaser was the first “done” thing.

Season 1, Episode 2: S.O.A.P.

Welcome to Graphville

Graphville officially launched on September 1, 2022. The first season is released. Some episodes are already published, and some episodes are still under construction.

Season 1

Episode 1: Welcome to Graphville
Episode 2: S.O.A.P.
Episode 3: Summertime Calls
Episode 4: Furry Road
Episode 5: Graph Detective 🚧
Episode 6: Leaving Zombieville 🚧

Here is several important checkpoints from the three-year roadmap of the project:

Graphville Roadmap 2019–2022

Community and Sponsors

Graphville growth is only possible with the growth of the Graphville Community. Enroll in the episode, share your experience, and provide feedback. We are happy to hear your suggestions on how to improve the quality of learning materials and lessons.

Graphville is created for engineers who loves modern technologies and creative education. Do you like Graphville and want to try more episodes? You’re welcome to join Graphville ❤️ Sponsorship at GitHub Sponsors. Sponsors of Graphville have early access to new episodes and participate in a content creation process — new lessons and stories.

Season 1, Episode 1, Page 4.5: Welcome to Graphville

Outro

Thank you for reading. I hope you found this piece useful and inspiring. Also, I hope that Graphville will find sponsorship for many seasons and spark the hearts of many software engineers wanting to learn graph technologies.

Cheers.


Creating Graphville was originally published in Neo4j Developer Blog on Medium, where people are continuing the conversation by highlighting and responding to this story.