An AI-powered assistant for recommending internships and job opportunities for students, designed to help users find the perfect internship or job placement.
- AI Chat Interface: Modern, responsive chat interface with real-time communication
- Job Scraping: Automated scraping of job offers from multiple sources (PWR, Nokia, SII)
- Location Services: GPS integration for location-aware responses
- Student-Focused: Specialized recommendations for student internships
- Real-time Updates: Live data scraping and vector search
- Modern UI/UX: Clean, aesthetic design with smooth animations
The project consists of three main components:
- API Server: FastAPI-based REST API
- AI Agent: LangChain-powered conversational AI
- Data Scraping: Automated job offer collection from multiple sources
- Vector Database: PostgreSQL with pgvector for semantic search
- Data Management: Efficient storage and retrieval of job offers
- Modern UI: React 18 with TypeScript and Tailwind CSS
- Responsive Design: Mobile-first approach with smooth animations
- Real-time Chat: WebSocket-like experience with streaming responses
- Audio Integration: Text-to-speech and voice input capabilities
- Toast Notifications: User-friendly feedback system
- Vector Storage: Semantic search capabilities
- Job Offers: Structured storage of scraped opportunities
- Metadata: Rich information about each job posting
- FastAPI: Modern Python web framework
- LangChain: AI agent framework
- PostgreSQL: Primary database
- pgvector: Vector similarity search
- Docker: Containerization
- React 18: UI framework
- TypeScript: Type safety
- Vite: Build tooling
- Tailwind CSS: Styling
- Axios: HTTP client
- Lucide React: Icons
- Docker and Docker Compose
- Node.js 18+ (for local development)
- Python 3.9+ (for local development)
-
Clone the repository:
git clone <repository-url> cd InternBot
-
Start with Docker Compose:
# Production setup docker-compose up --build # Development setup with hot reload docker-compose -f docker-compose.dev.yml up --build
-
Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Database: localhost:5432
cd backend
pip install -e .
uvicorn intern_bot.api.api:app --reload --host 0.0.0.0 --port 8000cd frontend
npm install
npm run devInternBot/
โโโ backend/ # FastAPI backend
โ โโโ src/intern_bot/
โ โ โโโ agent/ # AI agent implementation
โ โ โโโ api/ # API routes and models
โ โ โโโ data_scraper/ # Web scraping modules
โ โ โโโ data_manager/ # Database operations
โ โ โโโ settings/ # Configuration
โ โโโ Dockerfile
โ โโโ pyproject.toml
โโโ frontend/ # React frontend
โ โโโ src/
โ โ โโโ components/ # Reusable UI components
โ โ โโโ views/ # Page components
โ โ โโโ services/ # API services
โ โ โโโ lib/ # Utilities
โ โโโ Dockerfile
โ โโโ package.json
โโโ postgres/ # Database schema
โโโ docker-compose.yml # Production setup
โโโ docker-compose.dev.yml # Development setup
โโโ README.md
- Frontend: Deploy to Vercel with automatic builds
- Backend: Deploy to Railway or Render
- Database: Use managed PostgreSQL with pgvector
- Frontend: Deploy to Netlify
- Backend: Deploy to DigitalOcean App Platform
- Database: Managed PostgreSQL droplet
- VPS: Deploy entire stack on a VPS
- Cloud: Use cloud providers (AWS, GCP, Azure)
- Orchestration: Docker Swarm or Kubernetes
DB_HOST=your-db-host
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=your-password
DB_NAME=internbotVITE_BACKEND_URL=https://your-backend-url.com
VITE_NODE_ENV=productionThe system scrapes job offers from:
- PWR (Politechnika Wrocลawska): Academic job board
- Nokia: Corporate career portal
- SII: IT consulting company
POST /agent/invoke- Chat with AI agentPOST /agent/stream- Stream chat responsesPOST /scrape/data- Trigger data scraping
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
For support and questions:
- Create an issue in the repository
- Check the documentation in each component's README
- Review the API documentation at
/docswhen running the backend
- Real-time notifications
- Advanced filtering and search
- User authentication and profiles
- Mobile app (React Native)
- Multi-language support
- Advanced analytics dashboard
- Integration with more job boards
- Machine learning for job matching