Neo4j Project Database
Problem:
The existing project data was stored in Excel sheets, which, although structured, made it difficult to represent the relationships and dependencies between various projects. My project manager identified the need to transition to a graph database platform like Neo4j to improve data visualization, enhance project tracking, and enable better decision-making, but he needed someone with a computer science background to bring his vision to life.
Solution:
I explored Neo4j's capabilities, researched its advantages over traditional relational databases, and investigated various ways to integrate it into a more user-friendly system. I then created a custom web app using Python and Flask to provide a flexible interface for interacting with Neo4j, allowing for better visualization of project dependencies. Additionally, I worked on importing the existing project data from Excel into Neo4j and developed a schema that could efficiently represent project relationships.
Technical Approach
With no prior background in web development or database management systems, I began by researching Neo4j, a graph database, and comparing its features to traditional relational databases. After building some familiarity, I explored platform tools like Neo4j Browser and Neo4j Bloom, to evaluate their potential for our use case. Realizing the need for more customization, I developed a Python-Flask web app to offer a more tailored user interface. Along the way, I also identified Neo4j plugins to automate updates and data synchronization, ensuring efficient data management.
My Contributions
> Researched and evaluated Neo4j's capabilities and Cypher query language, enabling efficient data querying and manipulation.
> Designed a graph database schema to represent project dependencies, locations, and other relationships.
> Developed a Python-Flask web app as a proof-of-concept to provide a customizable interface for interacting with Neo4j, replacing the need for a generic visualization tool.
> Created and implemented data import pipelines to migrate project data from Excel to Neo4j, ensuring data integrity during the transfer process.
> Identified and integrated Neo4j plugins to automate updates and manage project data dependencies in real time.
> Delivered comprehensive research reports and a final presentation to executives, providing insight into the benefits of a graph-based approach and influencing ongoing adoption of Neo4j.
Impact
My research and prototype web app helped guide future decisions on database architecture, offering a more scalable approach to managing complex project data. The tools and plugins I identified also improved data updating and maintenance, ensuring the database could evolve with the company’s needs. I continued to maintain the project on a part-time basis, and it was continued after my tenure.