A tool that visualizes your professional network by analyzing your calendar meetings and email interactions.
- Interactive network visualization with real-time progress tracking
- Search and filter connections
- View meeting history with connections
- Edit and store contact information
- Secure Google OAuth2 authentication
- Persistent graph storage between sessions
- FastAPI
- PostgreSQL
- Redis
- Google Gmail API
- Server-Sent Events (SSE) for real-time progress updates
- Next.js 13
- React
- TypeScript
- Tailwind CSS
- Force Graph for network visualization
- EventSource API for real-time updates
- Docker and Docker Compose (recommended for easy setup)
- Python 3.11+ (if running without Docker)
- Node.js 18+ (if running without Docker)
- PostgreSQL
- Redis
- Google Cloud Platform account with Gmail API enabled
- Create a project in the Google Cloud Console
- Enable the Gmail API
- Configure the OAuth consent screen
- Create OAuth 2.0 credentials (Web application type)
- Add authorized redirect URIs:
http://localhost:8000/api/auth_callback
http://localhost:3000
- Create a root
.env
file:
GOOGLE_CLIENT_ID=your_client_id_here
GOOGLE_CLIENT_SECRET=your_client_secret_here
- Create a frontend
.env.local
file:
NEXT_PUBLIC_GOOGLE_CLIENT_ID=your_client_id_here
NEXT_PUBLIC_API_URL=http://localhost:8000
The easiest way to run the application is using Docker Compose:
# Build and start all services
make dev
# Or step by step:
make build
make run
This will start:
- PostgreSQL database
- Redis cache
- FastAPI backend on http://localhost:8000
- Next.js frontend on http://localhost:3000
-
Clone the repository
-
Backend setup:
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
- Frontend setup:
cd frontend
npm install --legacy-peer-deps
-
Start PostgreSQL and Redis
-
Start the backend:
cd backend
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
- Start the frontend:
cd frontend
npm run dev
- Visit http://localhost:3000 in your browser
- Sign in with your Google account
- The application will automatically generate your network graph on first login
- You'll see a progress bar indicating the graph generation status
- Once complete, you can:
- Search for contacts
- Click on nodes to view contact details
- Edit contact information
- Regenerate the graph as needed
- Progress bar stuck: If the progress bar gets stuck, try refreshing the page. The application will reconnect to the progress stream.
- Authentication errors: Ensure your Google API credentials are correctly set up and the redirect URIs match your environment.
- Empty graph: If your graph is empty, you may not have enough email interactions in your Gmail account, or the permissions might be insufficient.
# View backend logs
make backend-logs
# View frontend logs
make frontend-logs
# Access database shell
make db-shell
# Restart all services
make restart
# Clean up all containers and volumes
make clean
This project is licensed under the MIT License - see the LICENSE file for details