Skip to content

Commit 8b5dffc

Browse files
committed
feat: setup GitHub Pages hosting and TypeScript type fixes
- Added gh-pages configuration and deployment scripts - Set base path for Vite to /OEM-Inventory-Health/ - Created GitHub Actions workflow for automatic deployment - Fixed TypeScript type errors and icon tooltips - Updated README with deployment instructions - All dependencies installed and project ready for production
1 parent 1872c42 commit 8b5dffc

14 files changed

Lines changed: 3381 additions & 1 deletion

.github/workflows/deploy.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
jobs:
10+
build-and-deploy:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v3
16+
17+
- name: Setup Node.js
18+
uses: actions/setup-node@v3
19+
with:
20+
node-version: '18'
21+
22+
- name: Install dependencies
23+
run: npm install
24+
25+
- name: Build
26+
run: npm run build
27+
28+
- name: Deploy to GitHub Pages
29+
uses: peaceiris/actions-gh-pages@v3
30+
with:
31+
github_token: ${{ secrets.GITHUB_TOKEN }}
32+
publish_dir: ./dist
33+
cname: '' # Remove if you have a custom domain

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
node_modules/
2+
dist/
3+
.env
4+
.env.local
5+
.DS_Store
6+
*.log

README.md

Lines changed: 87 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,87 @@
1-
# OEM-Inventory-Health
1+
# OEM Inventory Health Dashboard
2+
3+
A strategic **Days Sales of Inventory (DSI)** optimization platform for automotive OEM supply chain management. This interactive dashboard enables executives to monitor global fleet health, identify capital-locked inventory, and execute real-time reallocation strategies across regional channels.
4+
5+
## Features
6+
7+
- 📊 **Real-Time DSI Monitoring** – Calculates Days Sales of Inventory metrics across vehicle segments
8+
- 🎯 **Capital Leakage Detection** – Identifies at-risk inventory (DSI > 60 days) prone to depreciation
9+
- 🔄 **Inventory Redirection Simulation** – Model 30% capital reallocation with 6% liquidation loss vs. 15% holding-cost savings
10+
- 📈 **Multi-Segment Analytics** – Track Luxury, Volume, EV, and SUV categories simultaneously
11+
- 💰 **Liquidity Tracking** – Real-time recaptured capital display for reinvestment decisions
12+
- 📋 **Executive Case Study** – Comprehensive narrative on OEM inventory challenges and solutions
13+
14+
## Built With
15+
16+
- **React** 18.2 – UI framework
17+
- **TypeScript** – Type-safe development
18+
- **Tailwind CSS** 3.3 – Utility-first styling
19+
- **Vite** 5.0 – Lightning-fast build tool
20+
- **Lucide React** – Premium icon library
21+
22+
## Quick Start
23+
24+
```bash
25+
# Install dependencies
26+
npm install
27+
28+
# Start development server
29+
npm run dev
30+
31+
# Build for production
32+
npm run build
33+
```
34+
35+
The app will open at `http://localhost:5173` with:
36+
- **Case Study** tab – Educational narrative on inventory optimization frameworks
37+
- **Live Dashboard** tab – Interactive inventory health simulator with Hyundai/Genesis product lineup
38+
39+
## Deployment
40+
41+
### GitHub Pages (Automatic)
42+
43+
This project is configured for automatic deployment to GitHub Pages. Every push to `main` branch triggers the deployment workflow.
44+
45+
**To set up:**
46+
47+
1. Ensure the repository is public or has GitHub Pages enabled
48+
2. Go to **Settings****Pages** → set source to "Deploy from a branch" (gh-pages)
49+
3. The site will be live at: `https://privatejoel.github.io/OEM-Inventory-Health/`
50+
51+
### Manual Deployment
52+
53+
```bash
54+
# Deploy to GitHub Pages
55+
npm run deploy
56+
```
57+
58+
This runs the build and deploys the `dist` folder to the `gh-pages` branch.
59+
60+
## Use Case
61+
62+
**Scenario:** A global OEM (Hyundai Motor Group) manages a multi-billion-dollar vehicle pipeline across luxury (Genesis G80), volume (Venue, Elantra), and EV segments (IONIQ 5). High-DSI luxury models accumulate holding costs while volume segments suffer from stockouts. This dashboard provides the decision-support layer to:
63+
64+
1. **Detect** – Identify which regional channels have stagnant capital
65+
2. **Model** – Simulate inventory redirection and capital recapture scenarios
66+
3. **Execute** – Approve strategic liquidation with transparent ROI calculations
67+
68+
## Data Model
69+
70+
The dashboard tracks 6 vehicle models with realistic metrics:
71+
72+
| Model | Segment | Stock | Monthly Sales | Unit Cost | Category |
73+
|-------|---------|-------|---|---|---|
74+
| Genesis G80 | Luxury Sedan | 14 | 3.2 | $56,000 | Luxury |
75+
| Hyundai Venue | Compact SUV | 58 | 62 | $19,800 | Volume |
76+
| Hyundai IONIQ 5 | EV SUV | 32 | 38 | $45,000 | EV |
77+
| Hyundai Santa Fe | Mid-size SUV | 24 | 28 | $36,000 | SUV |
78+
| Hyundai Elantra | Sedan | 42 | 55 | $21,500 | Volume |
79+
| Hyundai Palisade | Full-size SUV | 18 | 5.5 | $48,000 | Luxury |
80+
81+
## Disclaimer
82+
83+
This project is **for educational purposes only**. It is not affiliated with, endorsed by, or representative of Hyundai Motor Group or its subsidiaries. All data, scenarios, and optimization models are simulated to demonstrate product planning and analytical frameworks.
84+
85+
## Author
86+
87+
Joel Johnson – OEM Product Strategy Portfolio

index.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<title>OEM Inventory Health | Hyundai Global Operations</title>
8+
</head>
9+
<body>
10+
<div id="root"></div>
11+
<script type="module" src="/src/main.tsx"></script>
12+
</body>
13+
</html>

0 commit comments

Comments
 (0)