Repository for https://replit.com/@LucasMatheus54/Epstein-Brasil-Map
Overview
This is an investigative data visualization application called "Epstein Brasil Map" that maps and visualizes connections between Jeffrey Epstein's network and locations across Brazil. The app features an interactive map with location markers, a network graph showing relationships between people and places, a timeline of events, statistical charts, and PDF export functionality. The visual design follows a dark cyberpunk/neon aesthetic with glassmorphism effects and particle backgrounds. Preferred communication style: Simple, everyday language. The project follows a monorepo pattern with three top-level code directories: - — React SPA (Single Page Application) - — Express.js backend API - — Code shared between client and server (database schema, route definitions, types) - : React with TypeScript, built with Vite - : Uses wouter (lightweight router). Two routes: / (Home with map) and /connections (network graph) - : TanStack React Query for server state management.
README
Epstein Brasil Map
Overview
This is an investigative data visualization application called “Epstein Brasil Map” that maps and visualizes connections between Jeffrey Epstein’s network and locations across Brazil. The app features an interactive map with location markers, a network graph showing relationships between people and places, a timeline of events, statistical charts, and PDF export functionality. The visual design follows a dark cyberpunk/neon aesthetic with glassmorphism effects and particle backgrounds.
User Preferences
Preferred communication style: Simple, everyday language.
System Architecture
Full-Stack Structure
The project follows a monorepo pattern with three top-level code directories:
client/— React SPA (Single Page Application)server/— Express.js backend APIshared/— Code shared between client and server (database schema, route definitions, types)
Frontend (client/src/)
- Framework: React with TypeScript, built with Vite
- Routing: Uses
wouter(lightweight router). Two routes:/(Home with map) and/connections(network graph) - State/Data: TanStack React Query for server state management. Custom hooks in
client/src/hooks/fetch data from the API - UI Components: shadcn/ui component library (new-york style) with Radix UI primitives. Components live in
client/src/components/ui/ - Styling: Tailwind CSS with CSS variables for theming. Dark mode by default with neon purple (
#b026ff) and neon green (#00ff9d) accent colors. Custom glassmorphism utility class (.glass) - Key Libraries:
react-leaflet+leafletfor interactive maps (CartoDB DarkMatter tiles)vis-network(loaded via CDN inindex.html) for the connection graph visualizationrechartsfor pie charts in statistics modalframer-motionfor animations@tsparticles/reactfor particle background effectsjspdf+jspdf-autotablefor PDF report generationlucide-reactfor icons
Backend (server/)
- Framework: Express.js running on Node.js with TypeScript (executed via
tsx) - Entry Point:
server/index.tscreates an HTTP server, registers routes, and serves static files in production or sets up Vite dev middleware in development - API Routes: Defined in
server/routes.ts, following patterns fromshared/routes.ts. Three main endpoints:GET /api/locations— Returns all locations with their categories and sourcesGET /api/locations/:id— Returns a single location with detailsGET /api/timeline— Returns timeline eventsGET /api/stats— Returns computed statistics (locations grouped by state)
- Storage Layer:
server/storage.tsimplements aDatabaseStorageclass with aseedData()method that populates the database on first run. Uses Drizzle ORM for all database operations.
Database
- ORM: Drizzle ORM with PostgreSQL dialect
- Schema (
shared/schema.ts): Five tables:locations— Cities/places with coordinates (lat/lng), name, type, descriptioncategories— Tags like “recruitment”, “financial” with iconslocation_categories— Many-to-many join table between locations and categoriestimeline_events— Year-based events optionally linked to a locationsources— Reference links/URLs tied to locations
- Migrations: Managed via
drizzle-kit push(schema push approach, not migration files) - Connection: Uses
pgPool withDATABASE_URLenvironment variable
Build System
- Development:
tsx server/index.tswith Vite dev server middleware for HMR - Production Build: Custom
script/build.tsthat runs Vite build for client and esbuild for server. Output goes todist/(server) anddist/public/(client static assets) - Path Aliases:
@/maps toclient/src/,@shared/maps toshared/,@assets/maps toattached_assets/
Shared Code (shared/)
schema.ts— Drizzle table definitions and Zod insert schemas (viadrizzle-zod)routes.ts— API route definitions with paths, methods, and Zod response schemas. Used by both server (route registration) and client (query keys, type-safe fetching)
External Dependencies
- PostgreSQL — Primary database, connected via
DATABASE_URLenvironment variable. Required for the app to start. - CartoDB DarkMatter Tiles — Map tile provider (
https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png), free public CDN - vis-network CDN — Network graph library loaded from
https://unpkg.com/vis-network/standalone/umd/vis-network.min.js - Google Fonts — Inter, Rajdhani, DM Sans, Fira Code, Geist Mono, Architects Daughter fonts
- Unsplash — Used as fallback image source for location drawer hero images (
source.unsplash.com) - Replit Plugins —
@replit/vite-plugin-runtime-error-modal,@replit/vite-plugin-cartographer,@replit/vite-plugin-dev-banner(dev-only, Replit-specific)
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add 1uc4sm4theus/epstein-brasil-map