Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seadmustafa/jobboard
React, ReactiveSearch, Elasticsearch, Kibana
https://github.com/seadmustafa/jobboard
Last synced: 5 days ago
JSON representation
React, ReactiveSearch, Elasticsearch, Kibana
- Host: GitHub
- URL: https://github.com/seadmustafa/jobboard
- Owner: seadmustafa
- Created: 2023-03-10T22:28:56.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-03-10T23:11:39.000Z (over 1 year ago)
- Last Synced: 2023-08-09T16:38:53.764Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 189 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Job Finder using React, Reactivesearch, Elasticsearch, Kibana and Docker
![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)
![ElasticSearch](https://img.shields.io/badge/-ElasticSearch-005571?style=for-the-badge&logo=elasticsearch)
![Kibana](https://img.shields.io/badge/Kibana-005571?style=for-the-badge&logo=Kibana&logoColor=white)
![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white)## Environment Setup
### ElasticSearch
1- Run the docker-compose.yml file.
```
version: '3.7'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
container_name: elasticsearch
restart: always
environment:
- xpack.security.enabled=false
- TAKE_FILE_OWNERSHIP=true
- discovery.type=single-node
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
cap_add:
- IPC_LOCK
volumes:
- elasticsearch-data-volume:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300kibana:
container_name: kibana
image: docker.elastic.co/kibana/kibana:8.6.2
restart: always
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- 5601:5601
depends_on:
- elasticsearchvolumes:
elasticsearch-data-volume:
driver: local```
2- Open Kibana Create an index called jobboard.```
PUT /jobboard/
{
"settings": {
"number_of_shards": 1
},
"mappings": {
"properties": {
"jobTitle": { "type": "text" },
"company": { "type": "text" },
"city": { "type": "text" },
"description": { "type": "text" }
}
}
}```
3- Insert some data manually. Make sure that all the types are ```text``` not keyword. Copy and paste bulkdata.json into [Dev Console](http://localhost:5601/app/dev_tools#/console) .
Optional: Check if the records are inserted successfully [here](http://localhost:9200/jobboard/_search/?size=1000&pretty).
4- Add the following lines into elasticsearch.yml .
* Create a local file ``elasticsearch.yml``. Copy the snippet below, save it and then copy it to the elasticsearch container.
``` sh
sh-5.0$ cat config/elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.cors.enabled : true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: X-Requested-With,X-Auth-Token,Content-Type,Content-Length
http.cors.allow-credentials: truesh-5.0$ ^C
```
5- Check the changes by using ```cat config/elasticsearch.yml``` and then restart the container.
### React
6- Install dependencies by using ```npm i``` command.
7- Run the project by using ```npm start``` command.