Buznav Bot

an in-progress project for a simple menu-based chatbot that provides minimal responses and feedback with files and images for clients.

BuzNav Bot is a menu-based chatbot application designed to serve various types of information related to businesses. It supports the delivery of media files and link previews, thanks to a custom-built Flask-based REST API. The application allows for configurable chat flows and offers a flexible interface for engaging users with the information they need.

Features

  • Configurable Chatflows: Easily set up and customize chatflows to serve different kinds of information.
  • Link Previews: The chatbot can generate and display link previews, enhancing the user experience.
  • Media Support: Supports the delivery of media files such as images, documents, and more.
  • REST API Integration: Integrates with a custom REST API built with Flask, which powers the link preview feature through web scraping.
  • Responsive UI: Clean and minimal UI designed with user experience in mind.

Configurable Chatflow

One of the key highlights of the BuzNav Bot is its Configurable Chatflow feature. This allows you to design and manage multiple chat interactions effortlessly, without needing complex machine learning models. You can define specific responses, options, and actions for various stages of the conversation. This feature enables easy customization and ensures the chatbot can handle a wide range of user inquiries.

Example Chatflow Configuration

The chatflow is defined using a simple JSON structure. Below is an example configuration that showcases different interactions within a furniture assistance bot:

{
  "Home": {
    "response": "Hello! I'm your Furniture Solutions assistant. How can I assist you?",
    "options": ["Main Menu", "Learn More", "Contact"]
  },
  "Main Menu": {
    "response": "We offer a range of furniture solutions. How can I assist you?",
    "options": ["Product Catalog", "Order Status", "Delivery Information"]
  },
  "Product Catalog": {
    "response": "Explore our latest furniture products.",
    "options": ["Living Room", "Bedroom", "Dining Room"]
  },
  "Order Status": {
    "response": "Check the status of your order.",
    "options": ["Track Order", "Main Menu"]
  },
  "Contact": {
    "response": "Get in touch with us.",
    "options": ["Phone", "Email"]
  }
}
 

This JSON structure demonstrates how you can customize the bot's responses, guide the user through a conversation, and track user interactions without the need for complex algorithms or AI models.

REST API Documentation

The BuzNav Bot uses a custom REST API to generate link previews. This API is built using Flask and provides an efficient and fast way to fetch and display preview data for any given URL.

API Endpoints

  • GET /prelink/<path:url>: Generates a link preview; returns JSON with title, description, image_url, and url.
  • GET /: Health check; returns "Hello World" (200).
  • POST /create-response: Echoes back JSON data with status code 201.

Example Response

For the URL http://donkycong.org, the API might return the following:

{
  "description": "Play the classic Donkey Kong game online. No fuss, 100% free.",
  "image_url": "https://turbo.freevideogames.org/core-images/menu/pacman-game-logo-180.png",
  "title": "Donkey Kong - Play Game Instantly!",
  "url": "https://freekong.org/"
}

Tech Stack

  • Frontend: React.js
  • Backend: Flask (Python)
  • API: Custom REST API with web scraping capabilities
  • Styling: TailwindCSS

Contributors

  • Kutullo20: Partnered with me to develop the project and provided key guidance.