Revolutionizing supplier risk management through intelligent automation, real-time analysis, and interactive mapping
The Supplier Risk Detector is a comprehensive AI-powered platform designed for Walmart's supply chain operations, featuring advanced risk assessment capabilities, real-time analytics, and geospatial visualization. Built for the Walmart Hackathon 2025, this solution addresses critical supply chain challenges through intelligent automation and data-driven insights.
- π€ AI-Powered Risk Assessment: Advanced RAG (Retrieval-Augmented Generation) system using LangGraph and OpenAI
- πΊοΈ Interactive Geospatial Analytics: Real-time mapping with 50 Walmart centers and 100+ supplier locations
- ποΈ Voice-Enabled Interactions: Natural language processing for hands-free operation
- π Real-Time Dashboard: Comprehensive analytics with risk metrics and alerts
- π Automated Web Scraping: Intelligent data collection from supplier websites
- π Enterprise Security: Clerk authentication with role-based access control
graph TB
subgraph "Frontend Layer"
A[Next.js 15 Dashboard]
B[Streamlit Map App]
C[Real-time Chat Interface]
end
subgraph "API Layer"
D[FastAPI Backend]
E[LangGraph Agent System]
F[Voice Processing API]
end
subgraph "AI/ML Layer"
G[OpenAI GPT-4]
H[Pinecone Vector Store]
I[Firecrawl Web Scraper]
end
subgraph "Data Layer"
J[PostgreSQL Database]
K[Prisma ORM]
L[SQLite Development]
end
A --> D
B --> L
C --> D
D --> E
E --> G
E --> H
E --> I
D --> J
J --> K
graph TD
A[Next.js 15.3.4] --> B[React 18]
A --> C[TypeScript 5.x]
A --> D[Tailwind CSS 3.4.17]
E[Authentication] --> F[clerk/nextjs 6.22.0]
F --> G[User Management]
F --> H[Session Handling]
I[UI Components] --> J[headlessui/react 1.7.18]
I --> K[heroicons/react 2.1.1]
I --> L[lucide-react 0.525.0]
M[Animations] --> N[framer-motion 10.16.5]
O[Data Visualization] --> P[chart.js 4.5.0]
O --> Q[recharts 2.8.0]
R[Content Rendering] --> S[react-markdown 9.0.1]
R --> T[remark-gfm 4.0.0]
U[HTTP Client] --> V[axios 1.6.2]
W[Notifications] --> X[react-hot-toast 2.4.1]
Y[Utilities] --> Z[clsx 2.0.0]
Y --> AA[date-fns 2.30.0]
style A fill:#000,stroke:#fff,stroke-width:3px,color:#fff
style F fill:#4338ca,stroke:#fff,stroke-width:2px,color:#fff
style P fill:#10b981,stroke:#fff,stroke-width:2px,color:#fff
style V fill:#ef4444,stroke:#fff,stroke-width:2px,color:#fff
graph TD
A[FastAPI 0.104+] --> B[uvicorn 0.24+]
A --> C[python-dotenv 1.0+]
A --> D[python-multipart]
E[AI Framework] --> F[langgraph 0.2.16+]
E --> G[langchain 0.2.16+]
E --> H[langchain-core 0.2.39+]
E --> I[langchain-openai 0.1.25+]
E --> J[langchain-community 0.0.20]
K[OpenAI Services] --> L[openai 1.45+]
L --> M[GPT-4 API]
L --> N[Whisper API]
L --> O[Text-to-Speech]
P[Web Scraping] --> Q[firecrawl-py 0.0.20]
P --> R[requests 2.31+]
P --> S[beautifulsoup4 4.12.2+]
P --> T[lxml 4.9.0+]
U[Data Processing] --> V[pandas 2.0+]
U --> W[numpy 1.24+]
X[Vector Database] --> Y[pinecone 3.2.2]
Z[Database ORM] --> AA[prisma 0.11+]
Z --> BB[psycopg2]
CC[Async Support] --> DD[asyncio 3.4.3]
CC --> EE[aiohttp 3.9.0]
FF[Validation] --> GG[pydantic 2.5.0]
style A fill:#009688,stroke:#fff,stroke-width:3px,color:#fff
style F fill:#673ab7,stroke:#fff,stroke-width:2px,color:#fff
style L fill:#ff9800,stroke:#fff,stroke-width:2px,color:#fff
style Y fill:#e91e63,stroke:#fff,stroke-width:2px,color:#fff
style AA fill:#2196f3,stroke:#fff,stroke-width:2px,color:#fff
graph TD
A[Streamlit 1.28+] --> B[Interactive Web App]
A --> C[Real-time Updates]
D[Mapping Core] --> E[folium]
D --> F[streamlit-folium]
F --> G[Map Rendering]
F --> H[User Interactions]
I[Geospatial] --> J[Distance Calculations]
I --> K[Path Routing]
I --> L[Coordinate Processing]
M[Database] --> N[SQLite Local]
M --> O[PostgreSQL Production]
O --> P[Neon Cloud]
Q[Data Processing] --> R[pandas]
Q --> S[numpy]
T[Environment] --> U[python-dotenv]
V[Database Setup] --> W[setup_database.py]
V --> X[setup_neon.py]
Y[Core Features] --> Z[Risk Visualization]
Y --> AA[Center-Supplier Mapping]
Y --> BB[Interactive Filtering]
Y --> CC[Distance Analytics]
style A fill:#ff4b4b,stroke:#fff,stroke-width:3px,color:#fff
style E fill:#2e8b57,stroke:#fff,stroke-width:2px,color:#fff
style O fill:#1e88e5,stroke:#fff,stroke-width:2px,color:#fff
style Z fill:#ff6b35,stroke:#fff,stroke-width:2px,color:#fff
- Automated Website Scraping: Advanced Firecrawl integration for comprehensive data extraction
- Multi-depth Analysis: Configurable crawling depth for thorough supplier evaluation
- Real-time Processing: Asynchronous processing for rapid risk assessment
- Content Normalization: Smart URL handling and content standardization
- Multi-factor Analysis: Financial, operational, compliance, and sustainability metrics
- Dynamic Risk Classification: High/Medium/Low risk categorization with detailed explanations
- Contextual Recommendations: Actionable insights based on identified risk factors
- Historical Trend Analysis: Pattern recognition for predictive risk modeling
- 50 Walmart Distribution Centers: Complete network visualization with hierarchical display
- 100+ Supplier Locations: Comprehensive supplier network with risk-based color coding
- Smart Path Visualization: Purple routing lines to nearest Walmart centers with real-time distance calculations
- Interactive Risk Filtering: Dynamic filtering by risk levels (High/Medium/Low)
- Nearest Center Calculation: Automated routing to closest Walmart distribution center
- Distance Analytics: Real-time distance display directly on map paths (km measurements)
- One-Click Analysis: Instant supplier analysis with path visualization on marker selection
- Multi-style Mapping: OpenStreetMap, CartoDB Positron, and Dark Matter themes
- Speech-to-Text Processing: OpenAI Whisper integration for natural voice input
- Text-to-Speech Output: AI-generated audio responses for hands-free operation
- Multilingual Support: Global supplier communication capabilities
- Context-Aware Responses: Supplier-specific conversation history and insights
- RAG-Enhanced Responses: Vector store integration for accurate, contextual answers
- Supplier-Specific Context: Personalized conversations based on analysis history
- Real-time Query Processing: Instant responses to complex supplier inquiries
- Source Attribution: Transparent citation of information sources
- Risk Metrics Overview: High-level KPIs with trend indicators
- Alert Management System: Proactive risk notifications and escalations
- Historical Analysis Tracking: Complete audit trail of supplier assessments
- Comparative Risk Analysis: Side-by-side supplier risk comparisons
- Multi-tab Navigation: Organized access to Overview, Suppliers, and Risk Analysis
- Dynamic Filtering: Real-time data filtering and sorting capabilities
- Export Functionality: Comprehensive reporting and data export options
- User Management: Role-based access control with Clerk authentication
# Core Framework
Next.js 15.3.4 # React-based web framework
TypeScript 5.x # Type-safe JavaScript
Tailwind CSS 3.4.17 # Utility-first CSS framework
# UI Components & Libraries
@clerk/nextjs 6.22.0 # Authentication & user management
@headlessui/react 1.7.18 # Accessible UI components
@heroicons/react 2.1.1 # Beautiful SVG icons
framer-motion 10.16.5 # Smooth animations
lucide-react 0.525.0 # Additional icon library
# Data Visualization
chart.js 4.5.0 # Chart rendering
recharts 2.8.0 # React chart components
react-markdown 9.0.1 # Markdown rendering
remark-gfm 4.0.0 # GitHub Flavored Markdown
# Geospatial Mapping (Streamlit App)
streamlit 1.28+ # Interactive web apps
folium # Interactive maps
streamlit-folium # Streamlit-Folium integration# Core Framework
FastAPI 0.104+ # Modern Python web framework
uvicorn 0.24+ # ASGI server
python-dotenv 1.0+ # Environment management
# AI & Machine Learning
langgraph 0.2.16+ # Advanced AI agent workflows
langchain 0.2.16+ # LLM application framework
langchain-core 0.2.39+ # Core LangChain components
langchain-openai 0.1.25+ # OpenAI integration
openai 1.45+ # OpenAI API client
# Web Scraping & Data Processing
firecrawl-py 0.0.20 # Advanced web scraping
requests 2.31+ # HTTP client
beautifulsoup4 4.12.2+ # HTML parsing
pandas 2.0+ # Data manipulation
numpy 1.24+ # Numerical computing
# Vector Database & Storage
pinecone 3.2.2 # Vector database for embeddings
langchain-community 0.0.20 # Community integrations# Database Systems
PostgreSQL 13+ # Production database
SQLite 3.x # Development database
prisma 0.11+ # Modern database toolkit
psycopg2 # PostgreSQL adapter
# Database Management
@prisma/client 6.11.0 # Prisma client for TypeScript
prisma-client-py # Prisma client for Python# Containerization
Docker # Container platform
Docker Compose # Multi-container orchestration
# Development Tools
ESLint 8.x # JavaScript linting
TypeScript 5.x # Static type checking
PostCSS 8.4+ # CSS processing
Autoprefixer 10.4+ # CSS vendor prefixing# Required Software
Node.js 18+ (with npm/yarn)
Python 3.8+
PostgreSQL 13+ (or SQLite for development)
Docker & Docker Compose (optional)
Git- Clone the Repository
git clone https://github.com/prash08484/Supplier-Risk-Detector2.git
cd Supplier-Risk-Detector2- Environment Configuration
# Create environment file
cp .env.example .env
# Configure required variables
OPENAI_API_KEY=your_openai_api_key
FIRECRAWL_API_KEY=your_firecrawl_api_key
PINECONE_API_KEY=your_pinecone_api_key
PINECONE_INDEX_NAME=supplier-risk-index
DATABASE_URL=postgresql://user:password@localhost:5432/supplier_risk_db
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key# Start all services
docker-compose up -d
# Access applications
Frontend Dashboard: http://localhost:3000
Backend API: http://localhost:8000
API Documentation: http://localhost:8000/docsBackend Setup:
cd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Database setup
prisma generate
prisma db push
# Start backend server
uvicorn main:app --reload --host 0.0.0.0 --port 8000Frontend Setup:
cd frontend
# Install dependencies
npm install
# Start development server
npm run devGeospatial Map Application:
cd map
# Install Python dependencies
pip install -r requirements.txt
# Configure database (choose one)
# Option 1: PostgreSQL (Production)
python setup_neon.py
# Option 2: SQLite (Development)
python setup_database.py
# Launch Streamlit app
streamlit run app.pyπ― Main Dashboard (http://localhost:3000)
- Overview Tab: Risk metrics, recent alerts, and supplier summaries
- Suppliers Tab: Supplier management and new analysis forms
- Risk Analysis Tab: Detailed risk assessment interface with AI chat
- Interactive Map: 50 Walmart centers + 100+ suppliers with risk visualization
- Path Analytics: Real-time routing to nearest distribution centers
- Risk Filtering: Dynamic filtering by risk levels
- Distance Calculations: Precise measurements displayed on map paths
π§ API Documentation (http://localhost:8000/docs)
- Interactive API Explorer: Complete FastAPI documentation
- Real-time Testing: Built-in API testing interface
- Schema Validation: Comprehensive request/response schemas
The core analysis engine leverages advanced AI to evaluate supplier websites:
# Example analysis workflow
supplier_data = await analyze_supplier({
"url": "https://supplier-website.com",
"include_links": True,
"max_depth": 2
})
# Returns comprehensive risk assessment
{
"supplier_name": "Example Corp",
"risk_score": 75,
"risk_level": "Medium",
"key_findings": [
"Strong financial performance",
"Limited ESG reporting",
"Compliance gaps in data privacy"
],
"recommendations": [
"Request detailed ESG metrics",
"Verify GDPR compliance status",
"Establish quarterly financial reviews"
]
}Interactive mapping with real-time risk visualization:
# Map features showcase
- πͺ 50 Walmart Distribution Centers (Blue markers)
- π¬ 100+ Supplier Locations (Risk-coded: Red/Yellow/Green)
- π£οΈ Smart routing to nearest centers (Purple paths)
- π Real-time distance calculations (Kilometers)
- π― One-click supplier analysis
- π¨ Multiple map themes (OpenStreetMap, CartoDB, etc.)Natural language interaction with supplier data:
// Voice + Text chat capabilities
const chatResponse = await sendChatMessage({
url: "supplier-url",
question: "What are the main compliance risks?",
chat_history: previousMessages
});
// Returns AI-generated insights
{
"answer": "Based on analysis, main compliance risks include...",
"sources": ["website-section-1", "website-section-2"],
"confidence": 0.92
}model Supplier {
id String @id @default(cuid())
url String? @unique
name String @default("Unknown Supplier")
riskScore String @default("0")
summary String @default("")
flags String[] @default([])
analysisData Json?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
chats ChatLog[]
}
model ChatLog {
id String @id @default(cuid())
url String?
question String
answer String
sources String[]
createdAt DateTime @default(now())
supplier Supplier? @relation(fields: [url], references: [url])
}- Clerk Integration: Enterprise-grade authentication
- Role-Based Access: Hierarchical permission system
- Session Management: Secure token handling
- API Security: JWT-based API authentication
- Environment Variables: Secure configuration management
- Database Encryption: Encrypted data at rest
- HTTPS Enforcement: Secure data transmission
- Input Validation: Comprehensive request sanitization
# Backend Testing
cd backend
pytest tests/ -v --cov=.
# Frontend Testing
cd frontend
npm test
npm run test:e2e
# Integration Testing
docker-compose -f docker-compose.test.yml up --abort-on-container-exit- Async Processing: Non-blocking operations throughout
- Vector Store Caching: Optimized similarity searches
- Database Indexing: Strategic database optimization
- CDN Integration: Fast static asset delivery
- Health Check Endpoints: Comprehensive system monitoring
- Performance Metrics: Real-time performance tracking
- Error Tracking: Detailed error reporting and analysis
- Usage Analytics: User behavior insights
# Production environment
docker-compose -f docker-compose.prod.yml up -d
# SSL/HTTPS configuration
# Configure reverse proxy (nginx/caddy)
# Set up domain and certificates- Frontend: Vercel, Netlify, AWS Amplify
- Backend: Railway, Render, AWS ECS, Google Cloud Run
- Database: Neon, Supabase, AWS RDS, Google Cloud SQL
- Vector Store: Pinecone (managed service)
- Fork & Clone: Fork the repository and clone locally
- Branch Strategy: Create feature branches from
main - Code Standards: Follow ESLint/Prettier configurations
- Testing: Ensure comprehensive test coverage
- Documentation: Update relevant documentation
- Pull Request: Submit detailed pull requests
# Frontend linting
npm run lint
npm run format
# Backend formatting
black backend/
flake8 backend/
mypy backend/- Automated Risk Assessment: 90% reduction in manual analysis time
- Proactive Risk Mitigation: Early warning system prevents costly supply chain disruptions
- Operational Efficiency: Streamlined supplier onboarding and monitoring
- Data-Driven Insights: AI-powered recommendations for supplier selection
- Real-Time Risk Monitoring: Continuous assessment of supplier health
- Geospatial Intelligence: Location-based risk analysis and optimization
- Global Supply Chain Support: Multi-language and multi-region capabilities
- AI-First Architecture: Cutting-edge technology stack for future expansion
- Open Integration: API-first design for seamless third-party integrations
- π Speed: Real-time analysis vs. traditional weeks-long assessments
- π― Accuracy: AI-powered insights vs. manual subjective evaluations
- π Comprehensiveness: Multi-dimensional risk analysis vs. single-metric approaches
- πΊοΈ Visualization: Interactive geospatial analytics vs. static reports
- π¬ Accessibility: Natural language interface vs. complex dashboards
- π Documentation: Project Wiki
- π Bug Reports: Issue Tracker
- π¬ Discussions: GitHub Discussions
- π§ Contact: Project Team
Walmart Hackathon 2025 Team
- π― Project Lead: SupritR21
- π€ Collaborator: Prash08484
- π€ Collaborator: Ashutosh123
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ for Walmart Hackathon 2025
π Live Demo β’ π Documentation β’ π Quick Start β’ π€ Contributing