A web-based platform serving as a "Bloomberg terminal for early-stage investing" with deal pipeline management, real-time sentiment analysis, and CRM integrations.
- Kanban Pipeline Board: Drag-and-drop deal management with automation rules
- Sentiment Analysis: Real-time monitoring of founders' public posts
- CRM Integration: Import/export capabilities with Airtable, Notion, and HubSpot
- Real-time Dashboard: Charts, alerts, and notifications for pipeline changes
- Security: Environment-based configuration, JWT authentication, rate limiting
- Next.js 14 with App Router
- TypeScript
- Tailwind CSS
- React DnD for drag-and-drop
- Recharts for data visualization
- Socket.io client for real-time updates
- Node.js/Express
- TypeScript
- Prisma ORM with PostgreSQL
- Socket.io for WebSocket connections
- Sentiment analysis with Natural NLP
- JWT authentication
- Node.js 18+
- PostgreSQL database
- API keys for social media platforms (optional)
- Clone the repository:
git clone <repository-url>
cd bloomberg-for-startups- Install dependencies:
npm run install:all- Configure environment variables:
Create .env files in both frontend and backend directories:
backend/.env:
DATABASE_URL="postgresql://user:password@localhost:5432/bloomberg_startups"
JWT_SECRET="your-secret-key-here"
PORT=5000
# Social Media APIs (optional)
GITHUB_TOKEN=""
TWITTER_BEARER_TOKEN=""
LINKEDIN_CLIENT_ID=""
LINKEDIN_CLIENT_SECRET=""
# CRM APIs (optional)
AIRTABLE_API_KEY=""
AIRTABLE_BASE_ID=""
NOTION_API_KEY=""
HUBSPOT_API_KEY=""frontend/.env.local:
NEXT_PUBLIC_API_URL="http://localhost:5000"
NEXT_PUBLIC_WS_URL="http://localhost:5000"- Set up the database:
cd backend
npx prisma generate
npx prisma migrate dev- Run the development server:
npm run devThe application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
bloomberg-for-startups/
├── frontend/ # Next.js frontend application
│ ├── app/ # App router pages and layouts
│ ├── components/ # React components
│ ├── lib/ # Utilities and API clients
│ └── types/ # TypeScript type definitions
├── backend/ # Express backend API
│ ├── src/
│ │ ├── controllers/ # Request handlers
│ │ ├── services/ # Business logic
│ │ ├── models/ # Data models
│ │ ├── routes/ # API routes
│ │ ├── middleware/ # Express middleware
│ │ └── utils/ # Utility functions
│ └── prisma/ # Database schema and migrations
└── package.json # Root package.json for monorepo
- POST
/api/auth/register- Register new user - POST
/api/auth/login- User login - POST
/api/auth/refresh- Refresh JWT token
- GET
/api/deals- List all deals - POST
/api/deals- Create new deal - PUT
/api/deals/:id- Update deal - DELETE
/api/deals/:id- Delete deal - PUT
/api/deals/:id/move- Move deal to different stage
- GET
/api/sentiment/:dealId- Get sentiment data for a deal - POST
/api/sentiment/analyze- Trigger sentiment analysis - GET
/api/sentiment/trends- Get sentiment trends
- POST
/api/crm/import- Import deals from CRM - POST
/api/crm/export- Export deals to CRM - GET
/api/crm/sync-status- Check sync status
- Connect your GitHub repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy
- Create a new project
- Connect GitHub repository
- Set environment variables
- Deploy backend service
- All API keys and secrets are stored in environment variables
- JWT tokens for authentication with refresh token rotation
- Rate limiting on API endpoints
- Input validation with Zod schemas
- CORS configuration for production
- Helmet.js for security headers
- SQL injection prevention with Prisma ORM
MIT