# hoax.ly technical architecture

### **Indexing/Saving data**

In general we are using the ELK Stack ([Elasticsearch, Logstash, and Kibana](https://qbox.io/blog/welcome-to-the-elk-stack-elasticsearch-logstash-kibana)), with Elasticsearch as the heart of it.

Elasticsearch is a highly scalable open-source full-text search and analytics engine. It allows you to store, search, and analyze big volumes of data quickly and in near real time. It is generally used as the underlying engine/technology that powers applications that have complex search features and requirements

Elastic's open source solutions solve a growing list of search, log analysis, and analytics challenges across virtually every industry.

Elasticsearch stores data as documents, this suits well for our use case. Documents are expressed in [JSON](http://json.org/) (JavaScript Object Notation) which is an ubiquitous internet data interchange format and widely used.

Furthermore, Elasticsearch is using standard RESTful APIs and is providing clients for all types of programming languages.

Documentation for ElasticSearch can be found here: <https://www.elastic.co/products/elasticsearch>

### **Scraping**

For Scraping we use [Scrapy](https://scrapy.org/), one of the most-used scraping technology out there.

We also use [Portia](https://scrapinghub.com/portia): Portia lets you scrape web sites without any programming knowledge required.

### Hosting

We don't use SaaS and host all of our tools on our own. Our main server is currently rented at Hetzner, a well-known German hosting provider. All servers are running Ubuntu and Nginx or Apache.

### **Deployment and Packaging**

During development we used our own gitlab instance. However, after release all software will be available on github. We rely heavily on docker, for developing locally and also on production. Every repository is providing its own docker container, files or images.

### API

You can find the swagger docu for the hoaxly API here: <https://api.hoax.ly/api>

### **Browser Extension**

The [browser extension](https://github.com/hoaxly/hoaxly_browser_extension) is done in typescript and [vue.js](https://vuejs.org/), a popular JavaScript framework. Currently it is only available for chrome.

### ChatBots

For the Chatbots we use [Botman](https://botman.io/), a popular PHP chat framework. It relies on Symfony and Laravel (BotMan Studio).

The webchat frontend is done with [vue.js](https://vuejs.org/), a popular JavaScript framework.

### DebunkCMS

The Website Installation Package is built using a Drupal 8 installation profile and will be published on github.com and drupal.org. It is based on [Thunder](https://thunder.org/), a Drupal distribution for professional publishers.

We use the Composer Drupal template on github, so all the components of the Drupal site including Drupal, contributed modules and themes, as well as external libraries can be pulled in via [Composer](https://getcomposer.org/): <https://github.com/drupal-composer/drupal-core>

A documentation how to build Drupal 8 installation profiles can be found here:[https://www.drupal.org/docs/8/creating-distributions/how-to-write-a-drupal-8-installation-profile<br>](https://www.drupal.org/docs/8/creating-distributions/how-to-write-a-drupal-8-installation-profile)
