Skip to content

Level-6: Touqeer Hamdani#519

Open
TouqeerHamdani wants to merge 2 commits into
Life-Atlas:masterfrom
TouqeerHamdani:level-6-Touqeer-Hamdani
Open

Level-6: Touqeer Hamdani#519
TouqeerHamdani wants to merge 2 commits into
Life-Atlas:masterfrom
TouqeerHamdani:level-6-Touqeer-Hamdani

Conversation

@TouqeerHamdani
Copy link
Copy Markdown
Contributor

Submission Level

Level: 6

What I Did

Built a production-ready Neo4j graph using an idempotent Python seeding script.
Designed a 6-page Streamlit dashboard with custom dark-mode KPIs and Plotly charts.
Implemented OLS regression to forecast Week 9 load and identify critical bottlenecks.
Engineered a graph-aware engine for smart, cross-trained worker reassignment suggestions.
Automated verification with a Self-Test suite to ensure 100% requirement compliance.

Checklist

  • [ X] I read the README and CONTRIBUTING guide
  • [ X] My PR title follows the format: level-X: Your Name
  • [ X] I tested my changes locally before submitting

Signed-off-by: Touqeer Hamdani(touqeerhamdani26@gmail.com)

Copilot AI review requested due to automatic review settings May 12, 2026 16:36
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a Level 6 submission that seeds a Neo4j factory knowledge graph and provides a multi-page Streamlit dashboard (plus Level 5 written artifacts) for analysis, forecasting, and automated verification.

Changes:

  • Introduces an end-to-end Neo4j seeding script (constraints + nodes/relationships + aggregations).
  • Adds a 6-page Streamlit dashboard with KPI styling, charts, forecasting, and a self-test suite.
  • Adds submission documentation, dependency list, and deployed dashboard URL.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
submissions/Touqeer-Hamdani/level6/seed_graph.py Neo4j seeding script: constraints, ingestion from CSVs, and computed aggregations.
submissions/Touqeer-Hamdani/level6/app.py Streamlit dashboard UI and Cypher-powered analytics pages (incl. forecast + self-test).
submissions/Touqeer-Hamdani/level6/requirements.txt Python dependencies for seeding + dashboard.
submissions/Touqeer-Hamdani/level6/README.md Setup/run instructions and dashboard documentation.
submissions/Touqeer-Hamdani/level6/.env.example Example Neo4j environment configuration.
submissions/Touqeer-Hamdani/level6/DASHBOARD_URL.txt Deployed Streamlit URL reference.
submissions/Touqeer-Hamdani/level5/schema.md Mermaid schema diagram for the graph model.
submissions/Touqeer-Hamdani/level5/answers.md Level 5 written answers describing the model and rationale.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +1 to +3
NEO4J_URI = "neo4j+s://xxxxx.databases.neo4j.io"
NEO4J_USER = "neo4j"
NEO4J_PASSWORD = "your-password" No newline at end of file
```
l6-factory-dashboard/
├── seed_graph.py # CSV → Neo4j (idempotent, uses MERGE)
├── app.py # Streamlit dashboard (5 pages)
"CREATE CONSTRAINT IF NOT EXISTS FOR (s:Station) REQUIRE s.station_code IS UNIQUE",
"CREATE CONSTRAINT IF NOT EXISTS FOR (w:Worker) REQUIRE w.worker_id IS UNIQUE",
"CREATE CONSTRAINT IF NOT EXISTS FOR (wk:Week) REQUIRE wk.week_id IS UNIQUE",
"CREATE CONSTRAINT IF NOT EXISTS FOR (prod:Product) REQUIRE prod.product_type IS UNIQUE",
Comment on lines +41 to +45
| **Project Overview** | All 8 projects with planned/actual hours, variance %, and products |
| **Station Load** | Interactive bar chart — hours per station per week, overloads in red |
| **Capacity Tracker** | Stacked capacity bars + demand line, deficit weeks highlighted |
| **Worker Coverage** | Coverage matrix + SPOF (single-point-of-failure) station detection |
| **Self-Test** | Automated 6-check verification (20 pts) |
Comment on lines +19 to +30
DATA_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "data")


# ── Helpers ──────────────────────────────────────────────────────────────────

def read_csv(filename):
"""Read a CSV file from the data/ directory and return a list of dicts."""
filepath = os.path.join(DATA_DIR, filename)
with open(filepath, newline="", encoding="utf-8-sig") as f:
return list(csv.DictReader(f))


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants