[{"data":1,"prerenderedAt":319},["ShallowReactive",2],{"navigation":3,"\u002Fblog\u002Fautomotive-supply-chain-neo4j-capstone":67,"\u002Fblog\u002Fautomotive-supply-chain-neo4j-capstone-surround":314},[4,54],{"title":5,"path":6,"stem":7,"children":8,"page":53},"Blog","\u002Fblog","blog",[9,13,17,21,25,29,33,37,41,45,49],{"title":10,"path":11,"stem":12},"Analyzing a Healthcare Knowledge Graph with Cypher and Graph Data Science","\u002Fblog\u002Fanalyzing-a-healthcare-knowledge-graph-with-cypher-and-gds","blog\u002Fanalyzing-a-healthcare-knowledge-graph-with-cypher-and-gds",{"title":14,"path":15,"stem":16},"Navigating the Web: Prioritizing Supply Chain Risk with Neo4j","\u002Fblog\u002Fautomotive-supply-chain-neo4j-capstone","blog\u002Fautomotive-supply-chain-neo4j-capstone",{"title":18,"path":19,"stem":20},"My First AWS Adventure: Building a Sentiment Analysis System on a Budget","\u002Fblog\u002Faws-sentiment-analysis-journey","blog\u002Faws-sentiment-analysis-journey",{"title":22,"path":23,"stem":24},"Building a Hybrid Movie Recommender with Neo4j and Graph Data Science","\u002Fblog\u002Fbuilding-a-hybrid-movie-recommender-with-neo4j-and-gds","blog\u002Fbuilding-a-hybrid-movie-recommender-with-neo4j-and-gds",{"title":26,"path":27,"stem":28},"Designing and Building a Neo4j Knowledge Graph from Relational Data","\u002Fblog\u002Fdesigning-and-building-a-neo4j-knowledge-graph-from-relational-data","blog\u002Fdesigning-and-building-a-neo4j-knowledge-graph-from-relational-data",{"title":30,"path":31,"stem":32},"Developing a GraphRAG Research Chatbot with Neo4j","\u002Fblog\u002Fdeveloping-a-graphrag-research-chatbot-with-neo4j","blog\u002Fdeveloping-a-graphrag-research-chatbot-with-neo4j",{"title":34,"path":35,"stem":36},"From Code to Insights: My Journey from Software Development to Data Analytics","\u002Fblog\u002Ffrom-code-to-insights-journey","blog\u002Ffrom-code-to-insights-journey",{"title":38,"path":39,"stem":40},"Predicting Hospital Readmissions: A Machine Learning Journey","\u002Fblog\u002Fhospital-readmissions","blog\u002Fhospital-readmissions",{"title":42,"path":43,"stem":44},"My First Steps into Graph Databases: Learning Neo4j Fundamentals","\u002Fblog\u002Fneo4j-graph-databases-fundamentals","blog\u002Fneo4j-graph-databases-fundamentals",{"title":46,"path":47,"stem":48},"Building a Serverless ETL Pipeline on AWS: From Raw Data to Interactive Dashboards","\u002Fblog\u002Fserverless-etl-pipeline-aws","blog\u002Fserverless-etl-pipeline-aws",{"title":50,"path":51,"stem":52},"From Traffic Violations to Safety Culture: My Data Analytics Framework","\u002Fblog\u002Ftraffic-violation-analytics-framework","blog\u002Ftraffic-violation-analytics-framework",false,{"title":55,"path":56,"stem":57,"children":58,"page":53},"Publications","\u002Fpublications","publications",[59,63],{"title":60,"path":61,"stem":62},"PCT-led early warning vital sign escalation","\u002Fpublications\u002Fpct-led-early-warning-escalation","publications\u002Fpct-led-early-warning-escalation",{"title":64,"path":65,"stem":66},"Reducing Phlebotomy Redraws Through Pre-Analytic SOPs: Training, Fidelity, and Outcome Metrics from a Community Hospital","\u002Fpublications\u002Freducing-phlebotomy-redraws-pre-analytic-sops","publications\u002Freducing-phlebotomy-redraws-pre-analytic-sops",{"id":68,"title":14,"author":69,"body":73,"date":299,"description":300,"extension":301,"image":302,"meta":303,"minRead":311,"navigation":218,"path":15,"seo":312,"stem":16,"__hash__":313},"blog\u002Fblog\u002Fautomotive-supply-chain-neo4j-capstone.md",{"name":70,"avatar":71},"Peter Mangoro",{"src":72,"alt":70},"\u002Fprofile.jpg",{"type":74,"value":75,"toc":289},"minimark",[76,93,98,105,117,121,124,151,155,173,180,184,235,239,266,270,281],[77,78,79,80,84,85,88,89,92],"p",{},"Modern automotive supply chains are less like a line and more like a ",[81,82,83],"strong",{},"web",": one weak link can cascade through tiers of bill-of-materials (BOM) relationships. At capstone scale—tens of thousands of products and ",[81,86,87],{},"87,000+"," BOM dependency edges—relational “recursive join” thinking starts to fight you. Graphs match the problem shape: ",[81,90,91],{},"hop directly"," along dependencies instead of repeatedly stitching tables.",[94,95,97],"h2",{"id":96},"team-context","Team context",[77,99,100,101,104],{},"This capstone was completed ",[81,102,103],{},"as a group",". Team members  were:",[106,107,108,112,114],"ul",{},[109,110,111],"li",{},"Bekithemba Nkomo",[109,113,70],{},[109,115,116],{},"Masheia Dzimba",[94,118,120],{"id":119},"what-we-set-out-to-do","What we set out to do",[77,122,123],{},"Build a Neo4j-backed analytics story that:",[106,125,126,133,140],{},[109,127,128,129,132],{},"Makes ",[81,130,131],{},"multi-tier BOM risk"," visible (concentration, fragile corridors, single-point pressure).",[109,134,135,136,139],{},"Uses ",[81,137,138],{},"graph algorithms"," to prioritize where to act first when time and budget are finite.",[109,141,142,143,146,147,150],{},"Contrasts ",[81,144,145],{},"graph traversal"," with the performance and mental overhead of deep ",[81,148,149],{},"recursive joins"," in relational designs.",[94,152,154],{"id":153},"how-the-graph-helps","How the graph helps",[106,156,157,163],{},[109,158,159,162],{},[81,160,161],{},"PageRank (node criticality)"," highlights high-influence chokepoints—often OEM-adjacent facilities or hubs that sit on many dependency paths—so resilience work targets nodes that actually move the needle.",[109,164,165,168,169,172],{},[81,166,167],{},"Leiden community detection"," collapses thousands of SKUs into ",[81,170,171],{},"coherent modules"," (for example powertrain vs. interior groupings in the narrative visualization), which is useful for monitoring, simulation scoping, and communication with non-graph stakeholders.",[77,174,175,176,179],{},"Together, these outputs support ",[81,177,178],{},"faster disruption triage",": a ranked view of what matters most instead of treating every edge as equally urgent.",[94,181,183],{"id":182},"demo-walkthrough","Demo walkthrough",[185,186,195,196,195,219],"section",{"className":187,"ariaLabel":194},[188,189,190,191,192,193],"not-prose","my-8","mb-14","w-full","shrink-0","clear-both","Capstone demo video","\n  ",[197,198,206,207,195],"div",{"className":199,"style":205},[200,191,201,202,203,204],"relative","overflow-hidden","rounded-lg","border","border-default","aspect-ratio: 16 \u002F 9;","\n    ",[208,209],"iframe",{"src":210,"title":211,"className":212,"allow":217,"allowFullScreen":218},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fx0dg0TjjiPI","Automotive supply chain Neo4j capstone — demo walkthrough",[213,214,215,191,216],"absolute","inset-0","h-full","border-0","accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",true,[77,220,206,225,234],{"className":221},[222,223,224],"mt-3","text-sm","text-muted",[226,227,233],"a",{"href":228,"target":229,"rel":230},"https:\u002F\u002Fyoutu.be\u002Fx0dg0TjjiPI","_blank",[231,232],"noopener","noreferrer","Open on YouTube","\n    if the player does not load.\n  ",[94,236,238],{"id":237},"artifacts","Artifacts",[106,240,241,256],{},[109,242,243,246,247],{},[81,244,245],{},"Code and notebooks",": ",[226,248,251,252],{"href":249,"target":229,"rel":250},"https:\u002F\u002Fgithub.com\u002FPeterMangoro\u002Fneo4j\u002Ftree\u002Fmain\u002FfinalProject",[231,232],"GitHub — ",[253,254,255],"code",{},"finalProject",[109,257,258,246,261],{},[81,259,260],{},"Written submission (PDF)",[226,262,265],{"href":263,"target":229,"rel":264},"\u002Fneo4j\u002FAutomotiveSupplyChain.pdf",[231],"Automotive Supply Chain — group written submission (PDF)",[94,267,269],{"id":268},"what-i-learned","What I learned",[77,271,272,273,276,277,280],{},"Graph analytics shines when the ",[81,274,275],{},"question is inherently path- and neighborhood-shaped","—supply risk, propagation, and “what breaks if this node fails?” are exactly that. On our team, the hard part was not only running algorithms, but ",[81,278,279],{},"curating the projection",": which relationships matter as undirected risk vs. directed flow, and how communities align with real operational units.",[77,282,283,284,288],{},"If you are exploring similar work, start from a crisp definition of BOM semantics (multiplicity, direction, and what an edge ",[285,286,287],"em",{},"means","), then let PageRank and community detection stress-test whether your graph tells the same story the business tells.",{"title":290,"searchDepth":291,"depth":291,"links":292},"",2,[293,294,295,296,297,298],{"id":96,"depth":291,"text":97},{"id":119,"depth":291,"text":120},{"id":153,"depth":291,"text":154},{"id":182,"depth":291,"text":183},{"id":237,"depth":291,"text":238},{"id":268,"depth":291,"text":269},"2026-05-14","Group capstone: modeling automotive BOM dependencies in Neo4j and using PageRank and Leiden community detection to surface chokepoints and modular risk—plus demo video and full submission.","md","\u002Fneo4j\u002Finfographic.png",{"tags":304},[305,306,307,308,309,310],"Neo4j","Graph Data Science","Supply Chain","PageRank","Leiden","Capstone",9,{"title":14,"description":300},"9fT6swuSKnIjP58VA-h-kQQqZ7InAdNQe7Tg0PGwzo0",[315,317],{"title":10,"path":11,"stem":12,"description":316,"children":-1},"How I explored a FAERS-style healthcare graph, moved from Cypher EDA to GDS workflows, and turned graph results into practical analytical insights.",{"title":18,"path":19,"stem":20,"description":318,"children":-1},"From zero to production-ready: How I built a full-stack sentiment analysis platform entirely within AWS Free Tier, exploring serverless architecture, cost optimization, and creative problem-solving along the way.",1778765947876]