hexabot/frontend
Mohamed Marrouchi bab2e3082f feat: implement nlp based blocks prioritization strategy
feat: add weight to nlp entity schema and readapt

feat: remove commented obsolete code

feat: restore settings

feat: apply feedback

fix: re-adapt unit tests

feat: priority scoring re-calculation & enabling weight modification in builtin nlp entities

fix: remove obsolete code

feat: refine unit tests, apply mr coderabbit suggestions

fix: minor refactoring

feat: add nlp cache map type

feat: refine builtin nlp entities weight updates

feat: add more test cases and refine edge case handling

feat: add weight validation in UI

fix: apply feedback

feat: add a penalty factor & fix unit tests

feat: add documentation

fix: correct syntax

fix: remove stale log statement

fix: enforce nlp entity weight restrictions

fix: correct typo in docs

fix: typos in docs

fix: fix formatting for function comment

fix: restore matchNLP function previous code

fix: remove blank line, make updateOne asynchronous

fix: add AND operator in docs

fix: handle dependency injection in chat module

feat: refactor to use findAndPopulate in block score calculation

feat: refine caching mechanisms

feat: add typing and enforce safety checks

fix: remove typo

fix: remove async from block score calculation

fix: remove typo

fix: correct linting

fix: refine nlp pattern type check

fix: decompose code into helper utils,  add nlp entity dto validation, remove type casting

fix: minor refactoring

feat: refactor current implementation
2025-05-12 07:29:56 +01:00
..
public feat: implement nlp based blocks prioritization strategy 2025-05-12 07:29:56 +01:00
src feat: implement nlp based blocks prioritization strategy 2025-05-12 07:29:56 +01:00
.dockerignore
.eslintrc-staged.js
.eslintrc.js feat(frontend): introduce ESLint no-multiple-empty-lines rule 2025-02-09 12:21:26 +01:00
.gitignore
.prettierrc
Dockerfile
global.d.ts
next.config.mjs
package.json build: v2.2.6 2025-05-07 07:21:53 +01:00
README.md
tsconfig.json

Hexabot UI Admin Panel

The Hexabot UI Admin Panel is a React/Next.js application that serves as the admin interface for managing chatbot configurations, workflows, and interactions. The admin panel allows users to easily create and manage chat flows, monitor analytics, manage content, handle NLU (Natural Language Understanding) datasets, and configure system settings.

Key Features

  • Visual Editor: An intuitive drag-and-drop interface for managing chat flows, including text messages, quick replies, carousels, and more.
  • Multi-Channel Management: Configure and manage multiple communication channels (e.g., web, mobile, social media) from a single interface.
  • Analytics Dashboard: Track user interactions, messages sent, and retention rates through detailed analytics.
  • NLU (Natural Language Understanding) Management: Manage datasets for training machine learning models for intent detection and language recognition.
  • Knowledge Base: Seamlessly integrate and manage content such as product catalogs, lists of stores, or any dynamic content needed by the chatbot.
  • User, Roles, and Permissions: Administer user access controls, roles, and permissions to ensure secure and appropriate access to different parts of the system.

Directory Structure

  • app-components/: Reusable components that are used across the admin panel.
  • components/: Components organized by the page where they are being used.
  • hooks/: Hooks defined.
  • pages/: The core of the Next.js application, defining different routes for the admin panel.
  • services/: API service calls to interact with the Hexabot API.
  • types/: Defines the typescript interfaces, types, and enums used.
  • styles/: Global and component-specific styles for the application.
  • utils/: Utility functions and helpers used throughout the frontend.

Run

The Hexabot project is structured as a monorepo using npm workspaces to manage multiple packages. The packages in the monorepo include:

  • frontend: The admin interface for managing the chatbot system.
  • widget: An embeddable live chat widget that can be integrated into any website. Note: The API is not part of the monorepo and is managed separately.

To run the different UI components in development mode, execute the following commands at the project root level:

  • Run the Admin Interface:
npm run dev:frontend

The admin interface will be accessible at http://localhost:8081.

  • Run the Live Chat Widget:
npm run dev:widget

The live chat widget will be accessible at http://localhost:5173.

Contributing

We welcome contributions from the community! Whether you want to report a bug, suggest new features, or submit a pull request, your input is valuable to us.

Feel free to join us on Discord

License

This software is licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:

  1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
  2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).