This is a proof-of-concept for a modern, responsive, and bilingual banking website with an offline-first chatbot that supports text and voice.
- 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.
- Frontend: React, Vite, TypeScript, Tailwind CSS, Three.js
- Backend: Node.js, Express, TypeScript
- ML Service: Python, FastAPI, FAISS, Sentence Transformers
- Docker
- Docker Compose
-
Build and run the services:
docker-compose up --build
-
Access the application:
- Frontend:
http://localhost:3000 - Backend API:
http://localhost:8000 - ML Service:
http://localhost:9000
- Frontend:
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.pyTo use an online LLM like OpenAI, you need to:
- Set
USE_OFFLINE=falsein the.envfile. - Add your OpenAI API key to the
.envfile. - Restart the application.
.
├── 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