Taha Tahviyeh Telegram Bot is a Go-based chatbot designed to help Taha Tahviyeh agents recommend and manage products efficiently. This bot allows agents to search for products, view details, and manage product inventory via a Telegram interface. Built with modern technologies, the bot provides an intuitive experience for both customers and administrators.
- Overview
- Table Of Content
- Features
- Tech Stack
- Project Structure
- Installation & Setup
- Usage
- Contributing
- License
- Contact
- 🔍 Search for products by title or metadata (brand & product type)
- 📄 View Product Details
- 📂 Access Product Files
- ❓ Browse FAQs
- 📖 Get Help Information
- 📞 Contact Support
- ➕ Add, Edit, Remove Products
- 🔄 Manage Product Types & Brands
- 📝 Modify FAQs, About, and Help Texts
- 📦 Update Product Files & Metadata
- 🟦 Go
- GORM - ORM for PostgreSQL/Supabase
- Telegram Bot API - Telegram bot framework
- Fiber - Web framework for handling API requests
- MinIO - Object storage for product files
- 🐳 Docker (for containerization)
- 🛠️ Makefile (for automation)
.
├── app/ # Core application logic
├── build/ # Docker-related configurations
├── cmd/ # Entry point (main.go)
├── config/ # Configuration management
├── internal/ # Business logic
├── pkg/ # Utilities, database, and bot-related helpers
├── server/ # Telegram bot server
├── README.md # Documentation
├── LICENSE # License file
├── Makefile # Build automation
└── go.mod # Go dependencies
Ensure you have the following installed:
- Go
- Docker & Docker Compose
- PostgreSQL (or Supabase for cloud-based storage)
- MinIO (or an S3-compatible object storage)
- Clone the repository:
git clone https://github.com/your-repo/taha-tahviyeh-bot.git cd taha-tahviyeh-bot
- Set up configuration:
- Copy
config.sample.json
toconfig.json
- Update database credentials, Telegram bot token, and MinIO settings
- Update the
.env
file in thebuild/minio
directory with your credentials:MINIO_ROOT_USER=<your-root-user> MINIO_ROOT_PASSWORD=<your-root-password>
- Run the application:
- Start services:
make up
- Start services with logs:
make uplog
- Stop services:
make down
- View logs:
make logs
- Build services:
make build
- Rebuild and restart:
make rebuild
- Deploy:
make deploy
- Stop deployed services:
make deploy-down
- View deployment logs:
make deploy-logs
- View logs for a specific container:
make deploy-log
- Build deployment services:
make deploy-build
- Start services:
- Add the bot to your Telegram contacts.
- Use
/start
to begin interaction. - Admins can manage products using inline commands or menus.
Contributions are welcome! Feel free to fork the repository and submit pull requests.
This project is licensed under the MIT License.
For any inquiries or support, contact Taha Tahviyeh or open an issue in the repository.