Coder Social home page Coder Social logo

vndee / visee Goto Github PK

View Code? Open in Web Editor NEW
8.0 4.0 0.0 101.5 MB

Just a typical search engine in this universe :fire::fire::fire:

Dockerfile 1.18% Python 20.38% Shell 2.52% Go 0.05% HTML 3.52% JavaScript 14.25% CSS 2.15% CMake 0.45% C++ 55.49%
visual-search elasticsearch python kafka flask docker crawler e-commerce django

visee's Introduction

forthebadge CI CodeFactor DepShield Badge

VISEE is a system that combine both full-text search and visual search (base on image) together. Our system focus on Vietnam e-commerce product, which was collected from Tiki, Lazada, Shopee, Sendo. VISEE is completely dockerization.

Installation

Requirements

  • docker, docker-dompose, nvidia-docker

Quickstart

To run all containers and services:

./dev.sh up

Stop all services:

./dev.sh down

You can use docker-compose command alternatively. Especially when a service is running, its code were mount directly from host machine to docker container. So just edit your code and restart container, you will see your changes.

Configurations

List of environment variables can be use to config VISEE. All variables define in .env.

Variable Description Deafult value
API_KEY Authorization key for REST API h$+wt&%3BtH*6rA^KfPzMKDm**GdH_wQaQebd&X9!h=nNVjrt+pn8GNB5%-_ug-U
API_HOST REST API host binding (docker internal network) 0.0.0.0
API_PORT REST API port binding (docker internal network) 7070
KAFKA_HOSTS Kafka hosts [visee_kafka:9092]
KAFKA_USER Kafka user None
KAFKA_PASSWORD Kafka password None
KAFKA_NUM_PARTITION Kafka number of partitions 10
KAFKA_LINK_TOPIC Kafka topic for links scraper Link item
KAFKA_CONSUMER_GROUP Kafka consumer group default
REDIS_HOST Redis host (docker internal network) visee_redis
REDIS_PASSWORD Redis password None
REDIS_CATEGORIES_DB Redis database for website categories 0
REDIS_LINK2SCRAPE_DB Redis database for link to scraper 1
REDIS_DB_IDX_FIRST Redis first database for DualRedisConnector 2
REDIS_DB_IDX_SECOND Redis second database for DualRedisConnector 3
MILVUS_HOST Milvus host (docker internal network) visee_milvus
MILVUS_PORT Milvus port 19530
MILVUS_TABLE_NAME Milvus table name visee
ELASTIC_HOSTS Elasticearch hosts (docker internal network) [visee_elasticsearch]
ELASTIC_PORT Elasticsearch port 9200
ELASTIC_USER Elasticsearch username elastic
ELASTIC_PASSWORD Elasticsearch password changeme
ELASTIC_INDEX Elasticsearch index visee
EFFNET_WEIGHT EfficientNet weights path (in container) /visee/static/eff_b7.pth
CHROME_DRIVER_PATH Path to chrome driver (in container) /visee/static/chromedriver
IMAGE_SIZE Image downloaded size 1000
DOWNLOAD_IMAGE Download image or not True

Libraries and frameworks

  • Crawler: Selenium, BeatifulSoup, Apache Kafka, Redis.
  • Indexer: PyTorch, Apache Kafka, Redis.
  • Search Engine: Elasticsearch, Milvus.
  • RESTful Services: Flask, Nginx, Gunicorn.
  • User Interface: NodeJS, Nginx, HTML + CSS + JS.
  • Logging System: ELK+ Stack (Elasticsearch, Logtash, Kibana, Beats).

System Architecture and Technical Stack

Developers: Duy V. Huynh, Hoang N. Truong, Linh Q. Tran

visee's People

Contributors

hoangperry avatar snyk-bot avatar tql247 avatar vndee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

visee's Issues

Click link event

  • Click vào title của item không mở tab mới mà redirect ngay tab hiện tại

Image search

  • Layout xấu, browse mất một bên border, không ngay giữa.
  • Biểu tượng lạ ở giữa khung crop.

Không bấm được textbox

  • Chỉ có vùng màu đỏ là bấm vô được, còn lại không bấm được.
  • Bấm nhưng không có phản ứng gây trải nghiệm người dùng cực kì kém.

Layout again!!

  • So với result list thì thanh text box quá dài: Có 2 hướng giải quyết là kéo thanh text box lại hoặc kéo chiều ngang list result ra bằng text box ở trên.

Không crawl lại link cũ

Có thể dùng redis hoặc db nào đó lưu lại mã hash của link đã crawl, khi nhận link mới thì check xem link đó đã crawl hay chưa.

Link title

  • Thêm link vào title để click vào title cũng redirect sang trang khác
  • Mở một tab mới redirect chứ không redirect từ tab hiện tại, như thao tác bấm chuột giữa

Alignment

  • Thanh search và filter lệch:
  • Logo không ngay giữa khoảng trống mà quá sát góc
  • Thanh kết quả cũng không thẳng hàng với ở trên

  • Số trang cũng không thẳng hàng nốt

Pop up xem ảnh

  • Bấm vào ảnh hiện pop-up zoom ảnh và xem ảnh của sản phẩm.
  • Expected:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.