> π€ A multilingual (English & Yoruba) AI chatbot for YABATECH students with login, semantic search, and mobile app support.
# π YabatechEduBot
**YabatechEduBot** is a multilingual AI-powered chatbot built for students of **Yaba College of Technology**. It answers questions about school life, departments, course forms, directions, admission, and more β in **English and Yoruba**.
It comes with:
- π Secure login system
- π Language selector (English/Yoruba)
- π§ Semantic intent matching (understands new/unseen questions)
- π¬ Chat history tracking
- π± Mobile app support via REST API
- βοΈ Web frontend using Streamlit
---
## π§ How It Works
- Uses SentenceTransformers for semantic matching
- Automatically detects intents from questions using vector similarity
- Falls back to predefined responses if no match is found
- Stores chat history and users in a lightweight SQLite database
---
## ποΈ Project Structure
βββ app.py # Streamlit web app
βββ chatbot.py # Chat logic with AI + DB
βββ flask_api.py # API endpoint for mobile app
βββ train.py # Builds embeddings from intents.json
βββ intents.json # Multilingual intents and responses
βββ chatbot.db # SQLite DB (users, FAQ, history)
βββ requirements.txt # Required Python packages
βββ .gitignore # Excludes /models/ from Git
βββ models/ # (Generated during deployment)
yaml
Copy code
---
## π Deployment (on Render)
### Prerequisites:
- Python 3.9+
- `sentence-transformers` and `streamlit`
### Render Setup:
1. Push this repo to GitHub
2. Create a new Web Service at render.com
3. Use this Start Command:
```bash
python train.py && python flask_api.py
Done! Your API will be available at:
arduino
Copy code
your-subdomain.onrender.com
π§ͺ Testing the API
Send a POST request like:
json
Copy code
POST /chat
{
"message": "Where is YABATECH?",
"user": "student123",
"language": "en"
}
Response:
json
Copy code
{
"response": "YABATECH is in Yaba, Lagos."
}
π± Mobile App (FlutterFlow)
A FlutterFlow project file is available here to build a no-code mobile chatbot app that connects directly to this API.
π¨βπ» Admin Login
Default test user for loca β¦