hoax.ly technical architecture

Indexing/Saving data

In general we are using the ELK Stack (Elasticsearch, Logstash, and 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 (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, one of the most-used scraping technology out there.

We also use 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 is done in typescript and vue.js, a popular JavaScript framework. Currently it is only available for chrome.

ChatBots

For the Chatbots we use Botman, a popular PHP chat framework. It relies on Symfony and Laravel (BotMan Studio).

The webchat frontend is done with vue.js, 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, 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://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