VendorConnect is a comprehensive digital platform designed to solve the raw material sourcing problems faced by street food vendors across India. The platform connects vendors with verified suppliers, offers group ordering for bulk discounts, provides real-time price alerts, and includes an intelligent chatbot with voice interface support for low-literacy users.
Street food vendors in India struggle with:
- Finding trusted and affordable raw material suppliers
- Managing quality, pricing, and availability independently
- Accessing bulk discounts due to small order sizes
- Language barriers and low digital literacy
- Lack of price transparency and market insights
- Peer-rated and verified suppliers with hygiene ratings
- Filter by distance, pricing, and verification status
- Real vendor feedback and ratings
- Real-time price comparison across suppliers
- Historical price trends and market insights
- Area-based pricing recommendations
- Multiple vendors can pool orders for wholesale rates
- Progress tracking and participant management
- Automatic price optimization
- Contextual Responses: Understands user intent and provides relevant information
- Multilingual Support: Available in English, Hindi, Bengali, and Tamil
- Voice Input: Speech recognition for hands-free interaction using Web Speech API
- Quick Actions: Pre-defined buttons for common tasks
- Session Management: Maintains conversation context across sessions
- Real-time Communication: Instant responses with typing indicators
- Accessibility: Full keyboard navigation and screen reader support
- Support for Hindi, Bengali, Tamil, and English
- Voice search using Web Speech API
- Inclusive design for low-literacy users
- Map-based delivery updates
- Offline sync for patchy internet connectivity
- Real-time status notifications
- Daily price alerts for key ingredients
- Market trend notifications
- Weather-based price forecasting
- Monthly spending tracking
- Savings calculation from group orders
- Financial records for microfinance access
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Backend: Python Flask
- Database: SQLite (with SQLAlchemy ORM)
- APIs: Web Speech API, Weather API integration
- Hosting: Compatible with Netlify, Vercel, Heroku
- Python 3.8 or higher
- pip (Python package installer)
git clone <repository-url>
cd VendorConnectpip install -r requirements.txtpython app.pyOpen your browser and navigate to:
http://localhost:5000
- Registration: Create an account with your business details
- Browse Products: View available raw materials with real-time prices
- Voice Search: Use voice commands to search products in your preferred language
- Chatbot Assistant: Get instant help with platform navigation and common tasks
- Group Orders: Join or create group orders for bulk discounts
- Price Alerts: Receive notifications about price changes and market trends
- Digital Ledger: Track your monthly expenses and savings
- Verification: Get verified through the platform
- Product Listing: Add your products with competitive pricing
- Order Management: Handle individual and group orders
- Analytics: Track sales and customer feedback
The chatbot recognizes and responds to the following intents:
- Greetings - Hello, Hi, Namaste, etc.
- Suppliers - Finding suppliers, supplier information
- Orders - Placing orders, order management
- Delivery - Tracking deliveries, delivery status
- Pricing - Price information, price alerts
- Help - Support, FAQ, assistance
- Account - Profile management, settings
- English (EN) - Default language
- Hindi (हिं) - हिंदी support
- Bengali (বাং) - বাংলা support
- Tamil (தமிழ்) - தமிழ் support
Users can speak commands in their preferred language:
- "Find suppliers near me"
- "Place an order for tomatoes"
- "Track my delivery"
- "Set up price alerts"
The chatbot provides quick action buttons for common tasks:
- Find Suppliers - Browse verified suppliers
- Place Order - Start ordering process
- Track Delivery - Check delivery status
- Price Alerts - Set up price notifications
- Responsive Design: Works seamlessly on desktop, tablet, and mobile
- Modern UI: Clean, intuitive interface with Material Design principles
- Dark Mode Support: Automatically adapts to user's theme preference
- Smooth Animations: Engaging user experience with smooth transitions
- Accessibility: Voice interface and multi-language support
- Offline Capability: Works with patchy internet connectivity
- Progressive Web App: Can be installed on mobile devices
POST /vendor/login- Vendor loginPOST /vendor/register- Vendor registration
GET /api/products- Get all productsGET /api/suppliers- Get verified suppliersGET /api/products?category=vegetables- Filter products by category
GET /api/group-orders- Get active group ordersPOST /api/create-group-order- Create new group orderPOST /api/join-group-order- Join existing group order
GET /api/vendor/orders- Get vendor's order historyPOST /api/place-order- Place new orderGET /api/price-alerts- Get price alerts
POST /api/chatbot/message- Handle chatbot messages and provide intelligent responsesPOST /api/chatbot/language- Handle language changes for the chatbot
{
"message": "I need help finding suppliers",
"language": "en",
"context": {},
"session_id": "session_123"
}{
"message": "I can help you find suppliers! Here are some options:",
"context": {"intent": "suppliers"},
"actions": [
{"action": "view-suppliers", "label": "View All Suppliers"},
{"action": "filter-suppliers", "label": "Filter by Location"}
]
}- vendors: Vendor information and authentication
- suppliers: Supplier details and verification status
- products: Product catalog with pricing
- orders: Order management and tracking
- group_orders: Group order coordination
- order_items: Individual order items
VendorConnect-main/
├── templates/
│ ├── chatbot.html # Standalone chatbot page
│ ├── index.html # Main page with chatbot integration
│ ├── vendor_dashboard.html # Dashboard with chatbot integration
│ ├── vendor_login.html # Vendor login page
│ └── vendor_register.html # Vendor registration page
├── static/
│ ├── css/
│ │ ├── chatbot.css # Chatbot-specific styles
│ │ └── styles.css # Main application styles
│ ├── js/
│ │ ├── chatbot.js # Chatbot functionality
│ │ └── main.js # Main application JavaScript
│ └── images/ # Product and UI images
├── instance/
│ └── vendorconnect.db # SQLite database
├── app.py # Main Flask application
├── requirements.txt # Python dependencies
└── README.md # This file
- Trust-Based System: Peer-verified suppliers with real feedback
- Inclusive Design: Voice interface and multi-language support
- Intelligent Assistant: AI-powered chatbot for seamless navigation
- Economic Empowerment: Group ordering for bulk discounts
- Financial Inclusion: Digital ledger for microfinance access
- Real-World Adaptation: Offline sync and patchy internet support
- Market Intelligence: AI-based price forecasting
- 500+ Active Vendors: Currently serving street food vendors
- 50+ Verified Suppliers: Quality-assured raw material providers
- ₹2.5L Monthly Savings: Collective savings through group orders
- 4.8★ Vendor Rating: High satisfaction among users
- AI Price Forecasting: Machine learning for price prediction
- Blockchain Integration: Transparent supply chain tracking
- Mobile App: Native iOS and Android applications
- Payment Integration: Digital payments and UPI support
- Logistics Network: Delivery partner integration
- AI Integration: Connect to external AI services for more intelligent responses
- Offline Support: Work without internet connection
- Push Notifications: Real-time notifications for important updates
- Analytics: Usage analytics and insights
- Custom Themes: User-customizable chatbot appearance
- WebSocket Support: Real-time bidirectional communication
- File Upload: Support for image and document sharing
- Rich Media: Support for cards, carousels, and interactive elements
To add the chatbot to any page, include these elements before the closing </body> tag:
<!-- Chatbot Integration -->
<div id="chatbot-container" class="chatbot-container">
<!-- Chatbot HTML structure -->
</div>
<!-- Chatbot Toggle Button -->
<button id="chatbot-toggle" class="chatbot-toggle">
<i class="fas fa-comments"></i>
<span class="notification-badge" id="notification-badge">1</span>
</button>
<!-- Chatbot Styles -->
<link rel="stylesheet" href="{{ url_for('static', filename='css/chatbot.css') }}">
<!-- Chatbot Script -->
<script src="{{ url_for('static', filename='js/chatbot.js') }}"></script>The chatbot can be customized by modifying:
-
CSS Variables in
chatbot.css::root { --primary-color: #667eea; --secondary-color: #764ba2; --success-color: #28a745; --error-color: #dc3545; }
-
Response Templates in
app.py:def get_custom_response(language, vendor): # Add custom response logic pass
-
Quick Actions in the HTML:
<button class="quick-action-btn" data-action="custom-action"> <i class="fas fa-custom-icon"></i> Custom Action </button>
// Initialize chatbot
const chatbot = new VendorConnectChatbot();
// Send a message programmatically
chatbot.sendMessage("I need help with orders");
// Change language
chatbot.changeLanguage('hi');
// Toggle chatbot visibility
chatbot.toggleChatbot();// Listen for chatbot events
document.addEventListener('chatbot:message', (event) => {
console.log('New message:', event.detail);
});
// Custom quick action handler
document.addEventListener('click', (e) => {
if (e.target.classList.contains('quick-action-btn')) {
const action = e.target.dataset.action;
// Handle custom action
}
});- Visit
/chatbotfor standalone testing - Test on main page (
/) and dashboard (/vendor/dashboard) - Try different languages and voice input
- Test responsive design on mobile devices
// Test chatbot initialization
test('Chatbot initializes correctly', () => {
const chatbot = new VendorConnectChatbot();
expect(chatbot.isOpen).toBe(false);
});
// Test message sending
test('Sends message to backend', async () => {
const chatbot = new VendorConnectChatbot();
const response = await chatbot.sendToBackend('Hello');
expect(response.message).toBeDefined();
});-
Voice Input Not Working
- Check browser permissions for microphone access
- Ensure HTTPS connection for speech recognition
- Verify browser support for Web Speech API
-
Language Not Changing
- Clear browser cache and reload
- Check if language files are loaded correctly
- Verify API endpoint is responding
-
Chatbot Not Appearing
- Check if CSS and JS files are loaded
- Verify no JavaScript errors in console
- Ensure proper HTML structure
Enable debug mode by adding this to the console:
window.chatbot.debug = true;- No Sensitive Data: Chatbot doesn't store sensitive user information
- Session Management: Secure session handling
- Input Validation: All user inputs are validated and sanitized
- Local Storage: Conversation history stored locally
- No Tracking: No user behavior tracking
- GDPR Compliant: Follows privacy best practices
- Clone the repository
- Install dependencies:
pip install -r requirements.txt - Run the application:
python app.py - Visit
http://localhost:5000/chatbothttps://vendorconnect-gkhy.onrender.comto test
- Follow PEP 8 for Python code
- Use ESLint for JavaScript
- Maintain consistent CSS naming conventions
- Write comprehensive comments and documentation
This project is developed for educational and hackathon purposes.
For issues and questions:
- Check the troubleshooting section above
- Review the code comments and documentation
- Create an issue in the project repository
- Contact the development team
Built with ❤️ for India's Street Food Vendors
Made By:
- Karthik Janardhan | GitHub | LinkedIn
- Anushka Kotal | GitHub | LinkedIn
- Riya Vishwakarma | GitHub | LinkedIn
- Stash Lopes | GitHub | LinkedIn
"Empowering the backbone of India's food culture through technology"