Problem
Students can ask repeated computer-science department questions, but not every question fits a predefined button. This chatbot explored a local web interface that could handle both preset questions and open-ended text through intent matching.
Features
- Flask backend for receiving chatbot messages and returning responses.
- SQLite-backed response data for department-question content.
- spaCy setup for local NLP intent matching.
- Frontend chatbot widget for predefined and open-ended question flows.
My Contribution
I built the Flask response flow, connected the chatbot interface to backend intent handling, set up the SQLite response data, and documented local dependency installation, including the spaCy model setup. The work is attributed as an independent learning project.
Technologies
Python, Flask, SQLite, spaCy, HTML, JavaScript, and CSS.
Architecture
Hybrid chatbot pipeline
The browser widget sends messages to Flask, which checks predefined options and spaCy similarity before returning a response.
No production usage or measured NLP accuracy is claimed.
Screenshot
Chatbot sample
A safe recreated conversation showing predefined prompts and an open-ended question path.
Flask backend
SQLite responses
spaCy setup
Visual uses safe sample data created for this portfolio page.
What I Learned
Knowledge assistants need clear boundaries. When an app combines predefined responses with NLP matching, the implementation and public description should make that constraint visible instead of implying broad generative behavior.