AI-powered tender scraping, analysis, and bid management system for government procurement.
- π€ Automated Tender Scraping - Scrapes Telangana eProcurement portal
- π¬ AI Chat Assistant - RAG-based Q&A about tenders using Gemini
- π Bid Evaluation - Automated compliance and risk scoring
- π Smart Search - Vector-based tender search
- π Analytics Dashboard - Tender statistics and insights
Backend:
- FastAPI (Python)
- PostgreSQL
- Qdrant (Vector DB)
- LangGraph + Gemini AI
- Selenium (Web Scraping)
Frontend:
- React + Vite
- TailwindCSS
- Recharts
# Run the automated deployment script
.\deploy-railway.ps1That's it! The script will:
- Install Railway CLI
- Setup project and database
- Configure environment
- Deploy your app
- Initialize database
# Install Railway CLI
npm install -g @railway/cli
# Login and deploy
railway login
railway init
railway add --plugin postgresql
railway up
# Set environment variables
railway variables set GEMINI_API_KEY="your_key"
railway variables set SECRET_KEY="$(python -c 'import secrets; print(secrets.token_hex(32))')"
# Initialize database
railway run python backend/create_database.pySee DEPLOY_RENDER.md for step-by-step instructions.
- DEPLOY_NOW.md - Quick deployment decision guide
- DEPLOY_RAILWAY.md - Railway deployment (10 min)
- DEPLOY_RENDER.md - Render deployment (15 min)
- DEPLOYMENT_GUIDE.md - Complete deployment guide
- QUICK_START.md - Local development setup
- Python 3.9+
- Node.js 16+
- PostgreSQL 14+
- Docker (for Qdrant)
1. Backend:
cd backend
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt
# Copy and configure .env
copy .env.example .env
notepad .env # Add your GEMINI_API_KEY
# Start Qdrant
docker run -d -p 6333:6333 qdrant/qdrant
# Initialize database
python create_database.py
python seed_db.py
# Start server
.\start.ps12. Frontend:
cd frontend
npm install
.\start.ps1Access:
- Frontend: http://localhost:5173
- Backend: http://localhost:8000
- API Docs: http://localhost:8000/api/docs
- Go to https://makersuite.google.com/app/apikey
- Sign in with Google
- Create API key
- Add to
.envfile or deployment environment
# Create .env file with your keys
echo "GEMINI_API_KEY=your_key" > .env
# Start all services
docker-compose up -d
# Initialize database
docker-compose exec backend python create_database.pyAccess at http://localhost:5173
agentathon/
βββ backend/
β βββ app/
β β βββ agents/ # AI agents (LangGraph)
β β βββ routes/ # API endpoints
β β βββ services/ # Business logic
β β βββ models.py # Database models
β β βββ main.py # FastAPI app
β βββ requirements.txt
β βββ Dockerfile
βββ frontend/
β βββ src/
β β βββ pages/ # React pages
β β βββ components/ # React components
β β βββ services/ # API client
β βββ package.json
β βββ vite.config.js
βββ docker-compose.yml
βββ deployment guides...
# Backend tests
cd backend
python test_system.py
python test_api.py
# Frontend
cd frontend
npm test.\check-deployment.ps1Verifies your project is ready to deploy.
# Railway (recommended)
.\deploy-railway.ps1
# Or Linux/Mac
chmod +x deploy-railway.sh
./deploy-railway.sh- Automated scraping from Telangana portal
- Scheduled updates every 6 hours
- Manual trigger available
- Ask questions about tenders
- RAG-based responses using Gemini
- Context-aware answers
- Submit and track bids
- Automated compliance checking
- Risk assessment scoring
- Real-time statistics
- Tender analytics
- Activity logs
- Environment variables for secrets
- CORS protection
- Input validation
- SQL injection prevention
- Rate limiting (recommended for production)
For production use:
- Enable database connection pooling
- Add Redis for caching
- Use CDN for static assets
- Setup monitoring (Sentry, Datadog)
- Configure auto-scaling
See DEPLOYMENT_GUIDE.md for details.
Backend won't start:
- Check
.envfile exists with GEMINI_API_KEY - Verify PostgreSQL is running
- Check port 8000 is available
Frontend can't reach backend:
- Verify backend is running
- Check CORS settings
- Update API_URL in frontend
Database errors:
- Run
python create_database.py - Check DATABASE_URL format
- Verify PostgreSQL credentials
See troubleshooting guides in deployment docs.
Backend (.env):
DATABASE_URL=postgresql://user:password@localhost:5432/procureai
GEMINI_API_KEY=your_gemini_api_key
SECRET_KEY=your-secret-key
DEBUG=True
CORS_ORIGINS=http://localhost:5173
QDRANT_HOST=localhost
QDRANT_PORT=6333Frontend (.env):
VITE_API_URL=http://localhost:8000- Fork the repository
- Create feature branch
- Commit changes
- Push to branch
- Create Pull Request
This project is for educational/demo purposes.
- Check documentation in
/docs - Review deployment guides
- Check API docs at
/api/docs - Create an issue for bugs
- Deploy Now - Choose deployment option
- Railway Guide - Fastest deployment
- Render Guide - Free deployment
- Local Setup - Development setup
- Full Guide - All options
Made with β€οΈ for Agentathon 2024
Ready to deploy? Start with DEPLOY_NOW.md