BACKEND : https://github.com/crossben/osig-backend
Open Source Intelligence Gathering - A modern, production-ready web application for ethical OSINT investigations.
OSIG is a powerful open source intelligence gathering platform that helps researchers, investigators, and security professionals discover publicly available information about emails, usernames, domains, and phone numbers using ethical OSINT techniques.
- π Multi-Target Scanning - Email, username, domain, and phone number investigations
- π Relationship Mapping - Interactive graph visualization of data connections
- π Progress Tracking - Real-time scan monitoring with detailed module breakdowns
- π Professional Reports - Generate PDF and JSON reports for documentation
- π― Risk Assessment - Automatic risk flag identification and severity levels
- π Dark Mode - Beautiful UI with seamless light/dark theme switching
- π± Responsive Design - Optimized for desktop and mobile devices
- π Secure Authentication - JWT-based auth with automatic token refresh
- β‘ Next.js 16 - React framework with App Router
- π TypeScript 5 - Type-safe development
- π¨ Tailwind CSS 4 - Utility-first styling
- π§© shadcn/ui - Accessible component library built on Radix UI
- π Heroicons - Beautiful icon set
- π Framer Motion - Smooth animations
- π next-themes - Dark mode support
- π» Zustand - Lightweight state management
- π TanStack Query - Server state synchronization
- π‘ Axios - HTTP client with interceptors
- π Recharts - Beautiful charts and analytics
- πΈοΈ React Flow - Interactive relationship graphs
- π TanStack Table - Powerful data tables
- π£ React Hook Form - Performant forms
- β Zod - TypeScript-first validation
- Node.js 18+ or Bun 1.0+
- FastAPI Backend running on port 8000
-
Clone the repository:
git clone <repository-url> cd osig/frontend
-
Install dependencies:
bun install # or npm install -
Configure environment:
cp .env.example .env.local
-
Update environment variables in
.env.local:NEXT_PUBLIC_API_URL=http://localhost:8000/api/v1 NEXT_PUBLIC_APP_URL=http://localhost:3000 NEXT_PUBLIC_APP_NAME=OSIG
-
Start development server:
bun run dev # or npm run dev -
Open your browser: Navigate to http://localhost:3000
src/
βββ app/ # Next.js App Router
β βββ page.tsx # Main app with hash-based routing
βββ components/ # React components
β βββ ui/ # shadcn/ui components
β βββ layout/ # Layout components (dashboard, etc.)
β βββ error-boundary.tsx # Global error handling
β βββ providers.tsx # App-wide providers
βββ features/ # Feature-specific components
β βββ auth/ # Login, register, profile
β βββ scans/ # Scan creation, history, details
β βββ reports/ # Report generation and list
β βββ graph/ # Relationship graph visualization
β βββ home/ # Landing home page
βββ hooks/ # Custom React hooks
β βββ use-api.ts # React Query API hooks
β βββ use-toast.ts # Toast notifications
βββ lib/ # Utilities and configuration
β βββ api.ts # API service layer
β βββ api-client.ts # Axios client with interceptors
β βββ env.ts # Environment configuration
β βββ utils.ts # Helper functions
βββ store/ # Zustand state stores
β βββ auth-store.ts # Authentication state
βββ types/ # TypeScript type definitions
βββ index.ts # Shared types
| Variable | Description | Default |
|---|---|---|
NEXT_PUBLIC_API_URL |
FastAPI backend URL | http://localhost:8000/api/v1 |
NEXT_PUBLIC_APP_URL |
Frontend app URL | http://localhost:3000 |
NEXT_PUBLIC_APP_NAME |
Application name | OSIG |
NEXT_PUBLIC_SCAN_POLLING_INTERVAL |
Scan refresh interval (ms) | 3000 |
NEXT_PUBLIC_TOKEN_REFRESH_THRESHOLD |
Token refresh threshold (s) | 300 |
The frontend communicates with a FastAPI backend via REST API:
POST /auth/register- Create new accountPOST /auth/login- Login with credentialsGET /auth/me- Get current userPOST /auth/refresh- Refresh access token
GET /scans- List all scansPOST /scans- Create new scanGET /scans/{id}- Get scan detailsGET /scans/{id}/details- Get detailed scan resultsGET /scans/{id}/graph- Get relationship graph
GET /reports- List all reportsPOST /reports- Generate new reportGET /reports/{id}/download- Download report file
The API client automatically:
- Injects JWT tokens in request headers
- Refreshes tokens before expiration
- Logs out user if refresh fails
- Retries failed requests with new token
- Professional introduction to OSIG
- Feature highlights and how it works
- Legal & ethical usage information
- Login/Register CTAs
- Registration - Create account with email, username, password
- Login - JWT-based authentication
- Profile - View and update user information
- Select target type (email, username, domain, phone)
- Choose scan depth (quick or deep)
- Confirm legitimate use
- Real-time progress tracking
- View all past and active scans
- Filter by status, type, date range
- Quick access to scan details
- Loading skeletons and empty states
- Real-time progress monitoring
- Module-by-module breakdown
- Results categorization
- Risk flag identification
- Action buttons (generate report, view graph)
- Interactive node visualization
- Drag and zoom functionality
- Node inspection panel
- Connection highlighting
- Risk level color coding
- Generate PDF or JSON reports
- View report list with status
- Download completed reports
- Track generation progress
bun run devRuns on http://localhost:3000 with hot reload
bun run build
bun startbun x tsc --noEmitbun run lint- Register new account
- Login with credentials
- View profile page
- Logout successfully
- Create quick scan
- Create deep scan
- View scan progress in real-time
- Access completed scan details
- View relationship graph
- Interact with graph nodes
- Inspect node details
- Generate PDF report
- Generate JSON report
- Download completed report
- Switch between light/dark themes
- Navigate via sidebar menu
- Hash-based routing works correctly
- Mobile responsive layout
- No Mock Data - All endpoints connect to real backend API
- JWT Authentication - Secure token-based auth
- Auto Token Refresh - Seamless session management
- HTTPS Ready - Prepared for production deployment
- Input Validation - Zod schema validation on forms
- XSS Protection - React's built-in protection
- CSRF Protection - Via backend implementation
- Mobile First - Optimized for mobile devices
- Tablet Support - Adaptive layouts
- Desktop Enhanced - Full feature set on large screens
- Touch Friendly - Mobile gestures supported
Built with shadcn/ui, includes:
- Forms (Input, Select, Checkbox, Switch)
- Feedback (Toast, Alert, Progress, Skeleton)
- Overlays (Dialog, Sheet, Popover, Tooltip)
- Navigation (Dropdown, Tabs, Breadcrumb)
- Data Display (Table, Card, Badge, Avatar)
- Layout (Separator, Scroll Area, Resizable Panels)
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
This project is licensed under the MIT License.
- Built with modern React ecosystem
- UI components from shadcn/ui
- Icons from Heroicons
- Charts from Recharts
- Graph visualization from React Flow
For support or questions, please open an issue on GitHub.
Built with β€οΈ for the OSINT community π‘οΈ