Kudos for thinking about this!
I diid a project like this years ago for a Ruby on Rails (ROB) and web app and its "Relational" SQL DB. This was because being a newbie to the company, I didn't understand the DB and there was no documentation of our DB. Some obsolete tables were still left in the DB (with zero rows), because we were undergoing rapid development and schema changes.
I walked the meta data by using SQL commands, so that I got a list of Tables and Column names. Because of the naming convention used with ROR, I could connect the primary key to a referring Table. I gather all the columns and calculated things like number of nulls, types, averages, SD, count of zeroes, number of row, etc.
With this data, I created a CSV file that matched the names of the tables with a Table names and their column names with a text description.
Then I wrote a program that combined this CSV and the meta data scraped from the SQL DB and dumped the result into a HTML table with hyperlinks connecting the tables.
I don't think it would be such a hard thing to create a similar thing in Neo4J. I suppose it would be trickier since a node an have multiple (or even zero) Labels, and nodes can have a many to many typed relationships with other nodes. And relationships can have properties.
I would rerun the schema extractor daily and the HTML table would get loaded in our local web server. The schema extractor would alert me whenever it couldn't find a documentation in my CSV file for a Table and/or column, which is how I kept track of the need to update the CSV file of documentation.
My boss was grateful I did this, as my schema tool/table uncovered some discrepancies in the data for him.
There are various APOC functions to start a similar tool but for Neo4J:
and lots of APOC schema related functions
The potentially tricky part is marrying the text documentation to the elements. Of course, keeping the documentation up to date is a chore!
I might give this a go sometime and recreate what I had done earlier. It was a fun project.