Giter VIP home page Giter VIP logo

books-finder's Introduction

Books Finder

A simple search engine for books.

Used Technologies

  • Java v8
  • Spring v5
  • Spring Boot v2.2.1
  • Angular v8.2.2
  • Gradle v5.6.4
  • Docker v19.03.4
  • docker-compose v1.22.0
  • Elsticsearch & Kibana v7.4.2
  • Git v2.17.1
  • Python v3.6.8

Setting up the project

Cloning the repository

git clone https://github.com/bilalelhoudaigui/books-finder.git
cd books-finder

Running Elasticsearch and Kibana (No Logstash for the moment)

docker-compose up

The version can be changed in the .env file.

Building and Running the App

To build the app, run:

gradlew assemble

The command above will build a standalone jar that you can run by typing:

java -jar backend/build/libs/backend-0.1.jar

Or you can simply do both at the same time:

./gradlew assemble && java -jar backend/build/libs/backend-0.1.jar

Loading the data

  • CSV file is located in data directory.
  • A python script is used to load the data into ES

How to

Python version used is 3.6.8, if you have both puthon 2.x and 3.x on your OS, use python3 instead of python (e.g. python3 -m venv venv)

Create a virtualenv:

cd scripts
python -m venv books-venv

If you're on Ubuntu, you may need to install python3-env, if it's not already installed (sudo apt-get install python3-venv)

Then Activate it:

source venv/bin/activate

Or on Windows cmd:

py -3 -m venv venv
venv\Scripts\activate.bat

Install dependencies:

pip install -r requirements.txt

Finally run the script by typing:

python load_csv.py

Aknowledgment and useful links

TODO

Improvments

Data

FIX ERROR: Logstash in docker-compose not reaching elasticsearch
  • Download Logstash zip and verify the config file ===> it worked using Logstash outside docker-compose!
  • Then verify docker compose ===> pfff it didn't, got: Logstash giving Elasticsearch Unreachable error
  • Test docker elk AIO ===> More complicated see the first answer of the error above.
  • Create bash/python script which convert the csv to a bulk file ===> DONE!
    • add how to to the README
OTHERS
  • Try ingesting data using logstash ? (See FIX ERROR above)
  • Check out this bigger dataset: goodbooks-10k

Backend

  • TODO: Add api/v1/book-suggestion endpoint.

  • TODO: Add Swagger.

  • BUG: Fix null values when calling api/v1/book.

  • IDEA: Add neo4j and sql bd.

  • IDEA: Add user profile (use Spring Security).

Frontend

  • ...

IDEA

  • CRUD fav book of a user

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.