A knowledge graph application for exploring corporate structures, subsidiaries, and business relationships using SEC filing data.
- Node.js 24+ (see
.nvmrc) - Bun package manager
- Google Cloud Platform account (for authentication)
git clone <repository-url>
cd /home/bun/Documents/Repo/financial-graph/shared
bun install
bun run build
cd ../backend
bun install
bunx playwright install chromium
pipx runpip marker-pdf install \
--upgrade \
--force-reinstall \
torch torchvision torchaudio \
--index-url https://download.pytorch.org/whl/cu124The application uses Google OAuth for secure authentication.
-
Follow the detailed setup guide: https://www.instantdb.com/docs/auth/google-oauth?method=web-google-button
-
Configure environment variables:
# Repo root cp .env.example .env # Edit .env and add your Google Client ID + Resend settings
# Start frontend
cd frontend
bun run dev
# Start backend (in another terminal)
cd backend
bun run devVisit http://localhost:5173 and sign in with Google.
- Google OAuth Integration: Secure authentication using Google accounts
- Session Management: Persistent sessions with profile display (sign-in/out handled via InstantDB auth hooks)
- React 19 with TypeScript
- Vite for development and building
- InstantDB for real-time data and authentication
- Tailwind CSS for styling
- Node.js with TypeScript
- SEC filing parsers for extracting corporate data
- InstantDB for data storage
- LLM integration for data enrichment and fallbacks
- Jobs & pipelines for SEC data ingest:
- See job details in
backend/README.md.
- See job details in
- Common types and utilities
- InstantDB schema definitions
- Validation logic
- Interactive graphs showing parent-subsidiary relationships
- Jurisdiction mapping with geographic visualization
- Treemap views for hierarchical data exploration
- Search functionality for finding specific companies
- SEC Exhibit 21 filings (subsidiary lists)
- SEC company metadata (CIK, tickers, names)
- S&P 500 company classifications
- Jurisdiction normalization (ISO country codes)
- Real-time collaboration via InstantDB
- Mobile-responsive design
- Keyboard shortcuts for power users
- Export capabilities (CSV, Excel)
financial-graph/
βββ frontend/ # React application
βββ backend/ # Node.js API and parsers
βββ shared/ # Common code and types
βββ docs/ # Documentation
βββ tools/ # Development utilities
# Install dependencies
bun install
# Development
bun run dev # Start frontend
cd backend && bun run dev # Start backend
# Building
bun run build # Build frontend
cd backend && bun run build # Build backend
# Testing
bun run test # Run testsVITE_INSTANTDB_APP_ID=your-instantdb-app-id
VITE_GOOGLE_CLIENT_ID=your-google-client-id.apps.googleusercontent.com
VITE_GOOGLE_CLIENT_NAME=google-web
RESEND_API_KEY=your-resend-api-key
CONTACT_SENDER_EMAIL=notifications@yourdomain.com
CONTACT_TO_EMAIL=you@yourdomain.comINSTANTDB_ADMIN_TOKEN=your-instantdb-admin-token
# Additional backend configuration...- Google OAuth Setup - Complete authentication setup guide
- Project Documentation - Technical documentation and architecture
- API Documentation - Backend API reference
- Data Sources - Information about SEC filing formats
- "redirect_uri_mismatch": Check Google Cloud Console redirect URIs
- "invalid_client": Verify Google Client ID in environment variables
- Session not persisting: Check browser localStorage and console errors
- Port conflicts: Frontend runs on 5173, backend on 3000
- CORS errors: Ensure backend is running and accessible
- Build failures: Check Node.js version (requires 24+)
- Check browser console for error messages
- Review the setup guides in
/docs - Test authentication with
window.authTestutilities - Check InstantDB dashboard for data and auth logs
- Configure production OAuth credentials
- Set production environment variables
- Build and deploy frontend
- Deploy backend services
- Configure InstantDB for production
See SETUP.md for setup and deployment instructions.
[License information]
[Contributing guidelines]
Last Updated: January 2026 Authentication: Google OAuth Status: Active development