Skip to content

ArangoDB-Community/ArangoBnB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ArangoBnB

This web app is being created to showcase the GeoJSON functionality of ArangoSearch and to provide an example of ArangoDB being used in a JavaScript stack.

To get started:

Some goals for the project include:

  • Search an AirBnB dataset to find rentals nearby a specified location
  • Filter these based on keywords, date, and number of guests
  • Natural language search (Ex: Houses in Florida with pools.)
  • Index data using ArangoSearch Views
  • Use AQL for all queries

We would enjoy having anyone from the community participate in the project development! If you have any suggestions or features that you would like to be added start a discussion or open an issue.

Contributing

Project Setup

Currently, there are a couple ways to get started:

Using Docker Compose

  • First you need to download the most up to date dump of the DB from here
  • Extract the content inside the folder database/dumps. Its should looks like
dumps
|_ arangobnb.view.json
|_ arangobnb.view.json:Zone.Identifier
...

Using NPM and Self-Installed ArangoDB

ArangoDB Installation

This project uses features from the upcoming 3.8 version of ArangoDB. To get started you will need the nightly build version of ArangoDB. For more information on how to get a nightly build please see the nighly builds page.

Currently, the changes are in 3.8.0 so make sure to use the 3.8.0-nightly build. For example, if you are using docker:

docker pull arangodb/arangodb-preview:3.8.0-nightly

docker run -d -e ARANGO_ROOT_PASSWORD="test" -p 8529:8529 arangodb/arangodb-preview:3.8.0-nightly

Backend

npm run install-backend

npm run serve-backend

You should receive the following message:

ArangoBnb API Backend listening on :5000

Note that either the server_config.js file or .env file in the backend folder must be updated with your ArangoDB depolyment information.

Dependency Management

Each frontend maintains its own package.json for dependencies. The root package.json handles the installation of packages for whichever package you choose to install. Running npm install will install both sets of packages for Vue and React.

If you would like to only install the individual packages append the framework name. ie: npm run install-vue

Environment Variables

This project uses .env and .env.local for the various environment variables needed, see the Vue docs for more info. You will mostly need to pay attention to and update the variables in .env.local.

Since .env.local will not be included in PR's, this list should be updated when a PR adds to these variables.

Currently, these are the needed variables.

.env

VUE_APP_API_ENDPOINT

.env.local

Vue Project Setup

From the project root directory run:

npm install
# or
npm run install-vue

Vue Compiles and hot-reloads for development

npm run serve

Vue Compiles and minifies for production

npm run build

Vue Lints and fixes files

npm run lint

Customize configuration

See Configuration Reference.

React Project Setup

From the project root directory run:

npm install
# or
npm run install-react

Serve the react fronted

npm run serve-react