## Worker System - Role-agnostic workers that can handle any task type - Pod-based architecture with StatefulSet (5-15 pods, 5 workers each) - Custom pod names (Aethelgard, Xylos, Kryll, etc.) - Worker registry with friendly names and resource monitoring - Hub-and-spoke visualization on JobQueue page ## Stealth & Anti-Detection (REQUIRED) - Proxies are MANDATORY - workers fail to start without active proxies - CrawlRotator initializes on worker startup - Loads proxies from `proxies` table - Auto-rotates proxy + fingerprint on 403 errors - 12 browser fingerprints (Chrome, Firefox, Safari, Edge) - Locale/timezone matching for geographic consistency ## Task System - Renamed product_resync → product_refresh - Task chaining: store_discovery → entry_point → product_discovery - Priority-based claiming with FOR UPDATE SKIP LOCKED - Heartbeat and stale task recovery ## UI Updates - JobQueue: Pod visualization, resource monitoring on hover - WorkersDashboard: Simplified worker list - Removed unused filters from task list ## Other - IP2Location service for visitor analytics - Findagram consumer features scaffolding - Documentation updates 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
72 lines
2.8 KiB
JavaScript
72 lines
2.8 KiB
JavaScript
import React from 'react';
|
|
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
|
|
import { AuthProvider } from './context/AuthContext';
|
|
import Header from './components/findagram/Header';
|
|
import Footer from './components/findagram/Footer';
|
|
import AuthModal from './components/findagram/AuthModal';
|
|
|
|
// Pages
|
|
import Home from './pages/findagram/Home';
|
|
import Products from './pages/findagram/Products';
|
|
import ProductDetail from './pages/findagram/ProductDetail';
|
|
import Deals from './pages/findagram/Deals';
|
|
import Brands from './pages/findagram/Brands';
|
|
import BrandDetail from './pages/findagram/BrandDetail';
|
|
import Categories from './pages/findagram/Categories';
|
|
import CategoryDetail from './pages/findagram/CategoryDetail';
|
|
import DispensaryDetail from './pages/findagram/DispensaryDetail';
|
|
import About from './pages/findagram/About';
|
|
import Contact from './pages/findagram/Contact';
|
|
import Login from './pages/findagram/Login';
|
|
import Signup from './pages/findagram/Signup';
|
|
import Dashboard from './pages/findagram/Dashboard';
|
|
import Favorites from './pages/findagram/Favorites';
|
|
import Alerts from './pages/findagram/Alerts';
|
|
import SavedSearches from './pages/findagram/SavedSearches';
|
|
import Profile from './pages/findagram/Profile';
|
|
|
|
function App() {
|
|
return (
|
|
<AuthProvider>
|
|
<Router>
|
|
<div className="flex flex-col min-h-screen">
|
|
<Header />
|
|
|
|
<main className="flex-grow">
|
|
<Routes>
|
|
{/* Public Routes */}
|
|
<Route path="/" element={<Home />} />
|
|
<Route path="/products" element={<Products />} />
|
|
<Route path="/products/:id" element={<ProductDetail />} />
|
|
<Route path="/deals" element={<Deals />} />
|
|
<Route path="/brands" element={<Brands />} />
|
|
<Route path="/brands/:slug" element={<BrandDetail />} />
|
|
<Route path="/categories" element={<Categories />} />
|
|
<Route path="/categories/:slug" element={<CategoryDetail />} />
|
|
<Route path="/dispensaries/:slug" element={<DispensaryDetail />} />
|
|
<Route path="/about" element={<About />} />
|
|
<Route path="/contact" element={<Contact />} />
|
|
|
|
{/* Auth Routes */}
|
|
<Route path="/login" element={<Login />} />
|
|
<Route path="/signup" element={<Signup />} />
|
|
|
|
{/* Dashboard Routes */}
|
|
<Route path="/dashboard" element={<Dashboard />} />
|
|
<Route path="/dashboard/favorites" element={<Favorites />} />
|
|
<Route path="/dashboard/alerts" element={<Alerts />} />
|
|
<Route path="/dashboard/searches" element={<SavedSearches />} />
|
|
<Route path="/dashboard/settings" element={<Profile />} />
|
|
</Routes>
|
|
</main>
|
|
|
|
<Footer />
|
|
<AuthModal />
|
|
</div>
|
|
</Router>
|
|
</AuthProvider>
|
|
);
|
|
}
|
|
|
|
export default App;
|