Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BankWeb - 3D Responsive Banking Website

This is a proof-of-concept for a modern, responsive, and bilingual banking website with an offline-first chatbot that supports text and voice.

Features

  • 3D Hero Scene: An interactive 3D landing page using Three.js.
  • Bilingual Support: Arabic (RTL) and English (LTR) language support.
  • Offline Chatbot: A chatbot that works without an internet connection, using a local language model.
  • Voice Commands: Support for speech-to-text and text-to-speech.
  • Dockerized: The entire application is containerized for easy deployment.

Tech Stack

  • Frontend: React, Vite, TypeScript, Tailwind CSS, Three.js
  • Backend: Node.js, Express, TypeScript
  • ML Service: Python, FastAPI, FAISS, Sentence Transformers

Getting Started

Prerequisites

  • Docker
  • Docker Compose

Running the Application

  1. Build and run the services:

    docker-compose up --build
  2. Access the application:

    • Frontend: http://localhost:3000
    • Backend API: http://localhost:8000
    • ML Service: http://localhost:9000

Building the Embeddings

Before running the application for the first time, you need to build the embeddings for the dataset:

docker-compose run ml-service python scripts/build_embeddings.py

Switching to an Online LLM

To use an online LLM like OpenAI, you need to:

  1. Set USE_OFFLINE=false in the .env file.
  2. Add your OpenAI API key to the .env file.
  3. Restart the application.

Project Structure

.
├── backend/         # Node.js/Express backend
├── dataset/         # Chatbot dataset
├── design/          # Design assets
├── docs/            # Project documentation
├── frontend/        # React/Vite frontend
├── ml-service/      # Python/FastAPI ML service
├── scripts/         # Utility scripts
├── tests/           # Tests
├── docker-compose.yml
└── README.md

Releases

Packages

Contributors

Languages