Astera Support Desk is a customer-service chatbot for ecommerce support teams. It is designed to handle common customer queries such as order tracking, delivery delays, refunds, payment issues, address changes, and account-access problems through a polished web interface and a lightweight NLP-style intent engine.
This project was built to demonstrate practical product thinking, backend API design, frontend execution, and applied NLP fundamentals in a way that feels closer to a real support tool than a classroom prototype.
Astera Support Desk is a polished full-stack chatbot project that demonstrates:
- applied NLP fundamentals through intent detection and fuzzy matching
- backend API design with Flask
- frontend product thinking through a branded, responsive support interface
- realistic business use cases in ecommerce customer support
This is the kind of project that is easy to discuss in interviews because it combines technical implementation with clear product value.
- Solves a real business problem by reducing repetitive customer-support workload
- Combines backend logic, UI design, and conversational experience in one project
- Uses explainable intent detection instead of a black-box model, making it easy to discuss in interviews
- Presents the chatbot as a believable product with clean branding and realistic support flows
- Shows readiness for future scaling into live APIs, CRM systems, and ML-based classification
Astera Support Desk acts as a first-line digital support associate. A customer can open the chat interface, ask a natural question, and receive immediate guidance for common support cases.
Examples:
- "Where is my order?"
- "My payment failed but money was deducted."
- "Can I change my delivery address?"
- "My coupon is not working."
- "I forgot my password."
The chatbot identifies the most likely user intent, returns a relevant answer, and suggests useful follow-up questions to keep the conversation moving.
- Rule-based chatbot with fuzzy intent matching
- Responsive support-desk style frontend
- Flask backend with a dedicated
/chatAPI endpoint - Intent detection using keyword overlap and string similarity
- Support for realistic ecommerce issues such as refunds, payment failures, delayed delivery, and account help
- Quick action suggestions for smoother user interaction
- Graceful fallback responses for unsupported questions
- Greeting
- Order tracking
- Shipping information
- Delivery delays
- Refund policy
- Return process
- Order cancellation
- Payment methods
- Payment failures
- Account help
- Address change
- Product availability
- Promo code issues
- Store hours
- Contact support
- Goodbye
- Python
- Flask
- HTML
- CSS
- JavaScript
difflib.SequenceMatcherfor lightweight fuzzy matching
The frontend provides a modern support-chat experience with:
- branded hero section
- conversational chat layout
- avatar-based message styling
- quick-action suggestion chips
- responsive design for desktop and mobile
The Flask server:
- serves the main UI
- accepts chat messages through a JSON API
- routes user messages to the chatbot engine
- returns structured responses with reply text, detected intent, confidence score, and follow-up suggestions
The chatbot engine:
- normalizes user input
- compares it against predefined intent patterns
- scores matches using keyword overlap and fuzzy similarity
- selects the best intent above a confidence threshold
- falls back gracefully when no strong match is found
Astera Support Desk/
|-- app.py
|-- chatbot_engine.py
|-- requirements.txt
|-- README.md
|-- static/
| |-- style.css
| `-- script.js
|-- templates/
`-- index.html
- The chatbot is framed as a usable support experience, not just a technical demo
- The interface and conversation design were shaped around realistic customer needs
- Clean separation between UI, API, and chatbot logic
- Structured JSON responses between frontend and backend
- Intent matching logic that is simple, explainable, and extensible
- Visually polished interface
- Smooth chat interaction with suggestions and typing feedback
- Mobile-friendly responsive layout
- Easy to connect to order databases or courier APIs
- Easy to replace the rule-based engine with an ML or LLM-based classifier later
If you want to use a short description in the GitHub repository "About" field, use:
Polished Flask-based customer support chatbot with rule-based NLP, fuzzy intent matching, and a responsive ecommerce help desk UI.
python -m venv .venv.venv\Scripts\activatepip install -r requirements.txtpython app.pyhttp://127.0.0.1:5000
As of April 17, 2026, the easiest free option for this Flask project is PythonAnywhere.
Why this is the best fit:
- PythonAnywhere still offers a free
Beginneraccount - it supports Flask directly
- it is simpler for this project than converting the app to serverless hosting
- it does not require the
gunicornstartup flow used by platforms like Render
Important free-plan limits:
- 1 web app
- 1 web worker
- 512 MiB disk space
- 2 consoles
- 1 month expiry on the free web app
Official sources:
- PythonAnywhere free account features: https://help.pythonanywhere.com/pages/FreeAccountsFeatures
- PythonAnywhere pricing: https://www.pythonanywhere.com/pricing/
- Flask setup guide: https://help.pythonanywhere.com/pages/Flask
- Create a free PythonAnywhere account.
- Open the
Webtab. - Click
Add a new web app. - Choose
Manual configurationand select Python 3. - Upload or clone this GitHub repo into your PythonAnywhere home folder.
- Open the WSGI configuration file from the
Webtab. - Replace its contents with the code from
pythonanywhere_wsgi.py, but change:
project_home = Path("/home/yourusername/Chatbot")to your real PythonAnywhere username and folder path.
- Reload the web app from the
Webtab.
- On PythonAnywhere, your Flask app is loaded through the WSGI file, not by running
python app.py. - The
if __name__ == "__main__":block inapp.pyis fine and will not run during PythonAnywhere import. - If you want, I can next simplify the repo for PythonAnywhere specifically and remove the Render-only files.
- Where is my order?
- My order is delayed.
- I want a refund.
- My payment failed but money was deducted.
- Can I change my delivery address?
- My coupon code is not working.
- I forgot my password.
- How can I contact support?
- Add real order-tracking integration
- Add customer authentication and profile history
- Store chat logs or support tickets in a database
- Add analytics for common support issues
- Upgrade intent detection with machine learning or LLM-based routing
- Deploy the app to Render, Railway, or another cloud platform
- Why a rule-based NLP system can be a strong first version for support automation
- How fuzzy matching improves intent detection over exact keyword matching
- Why support-chat UX matters as much as backend accuracy
- How this architecture can evolve into a production-ready support assistant
This project is open for educational and portfolio use.