Ứng dụng giúp chuyển đổi ảnh tiếng Anh sang file pdf tiếng Việt. Các bước bao gồm:
- Người dùng tải một số ảnh văn bản tiếng Anh lên hệ thống;
- Hệ thống chuyển đổi ảnh thành văn bản tiếng Anh;
- Hệ thống dịch văn bản tiếng Anh sang tiếng Việt;
- Hệ thống tạo các file pdf tiếng Việt tương ứng;
- Hệ thống trả về file zip chứa các file pdf cho người dùng.
- ⚛️ React
- 📦 axios
- 🎨 TailwindCSS
- 🔔 Next.js
- 🚀 Node.js
- ⚡ Express.js
- 📡 Apache Kafka
- 🐰 RabbitMQ
- 📝 pdfkit
- 📤 multer
- 🔍 Tesseract
- 🌐 CORS
- 🈶 open-google-translator
- ⚙️ pm2
Cài đặt trước ở hệ điều hành của bạn :
- Node.js
- Tesseract, bạn có thể cài đặt tại đây Tesseract
- RabbitMQ (với phiên bản dùng message queue là rabbitMQ)
- Apache Kafka( với phiên bản dùng Kafka để làm queue)
- pm2 (để quản lý các tiến trình của các consumer, filter)
Sau khi download, giải nén, di chuyển tới thư mục vừa giải nén, mở 1 terminal, chạy zookeeper:
$ bin/zookeeper-server-start.sh config/zookeeper.propertiesMở 1 terminal khác:
$ bin/kafka-server-start.sh config/server.propertiesLưu ý: không tắt terminal, đây là broker message. Bạn có thể khởi chạy Kafka bằng Docker images của nó. Chi tiết xem tại đây
Khởi tạo các topics cần thiết đóng vai trò như queue trong Kafka, mở 1 terminal khác(vẫn ở thư mục kafka):
$ bin/kafka-topics.sh --create --topic ocr --bootstrap-server localhost:9092
$ bin/kafka-topics.sh --create --topic translate --bootstrap-server localhost:9092
$ bin/kafka-topics.sh --create --topic pdf --bootstrap-server localhost:9092# clone the project
$ git clone https://github.com/thinhuet2022/ITTP.git
# install dependencies
$ npm installVới Kafka, uncomment trong file app.js từ dòng 1 tới 150, comment từ dòng 152:
# chạy backend trong thư mục gốc(cấu hình mặc định là OCR Filter chạy 3 consumer
# có thể thay đổi trong file pm2.config.js)
$ npm startVới RabbitMQ, uncomment trong file app.js từ dòng 152, comment từ dòng 1 tới 150:
# chạy backend với RabbitMQ
$ npm run start-rabbitTruy cập localhost:5000 để sử dụng ứng dụng
Sau khi chạy xong, bạn có thể xóa các tiến trình của các consumer, filter bằng lệnh:
# xóa message trong queue RabbitMQ
$ npm run purge
# xóa các tiến trình của các consumer hay các filter
$ npm run delete